Sudoku
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class sudoku implements ActionListener{
JTextField jtf[];
JLabel jlb;
public sudoku()
{
JFrame jfrm=new JFrame();
jfrm.setLayout(new GridLayout(10,1));
jfrm.setSize(400,400);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jtf=new JTextField[81];
for(int i=0; i<9; i++)
{
JPanel jpn=new JPanel();
for(int j=0; j<9; j++)
{
jtf[j+i*9]=new JTextField(3);
jpn.add(jtf[j+i*9]);
jfrm.add(jpn);
}
}
JPanel jpn=new JPanel();
JButton jbt=new JButton("Kontrol");
jbt.addActionListener(this);
jpn.add(jbt);
jlb=new JLabel("Durum");
JPanel jpn2=new JPanel();
jpn.add(jlb);
jfrm.add(jpn);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
int a=0;
for(int i=0; i<81; i++)
{
int b=i%9;
if(i%9==0 && i/9!=0)
{
a+=9;
}
for(int j=0; j<9; j++)
{
if(jtf[i].getText().equals(jtf[a+j].getText()) && i!=(a+j))
{
jlb.setText("Hatalı Satır"); //Satır kontrolü
return;
}
if(jtf[i].getText().equals(jtf[b+9*j].getText()) && i!=(b+9*j))
{
jlb.setText("Hatalı Sütun"); //Sütün kontrolü
return;
}
}
if(Integer.parseInt(jtf[i].getText())>9) { jlb.setText("Hata:9'dan büyük sayı"); } //Sayı kontrolü
}
int[] dizi=new int[10];
for(int satirBuyuk=0; satirBuyuk<3; satirBuyuk++){
for(int sutunBuyuk=0; sutunBuyuk<3; sutunBuyuk++){
for(int i=0; i<10; i++){
dizi[i] = 0; //dizi sıfırla
}
for(int satirKucuk=0; satirKucuk<3; satirKucuk++){
for(int sutunKucuk=0; sutunKucuk<3; sutunKucuk++){
int index = Integer.parseInt(jtf[satirBuyuk*27 + sutunBuyuk*3 + satirKucuk*9 + sutunKucuk*1].getText());
dizi[index]++;
if(dizi[index]>1){
jlb.setText("Hatalı Kutu"); //Kutu kontrolü
return;
}
}
}
}
}
jlb.setText("Doğru Çözüm");
}
public static void main(String[] args)
{
new sudoku();
}
}
import java.awt.event.*;
import javax.swing.*;
public class sudoku implements ActionListener{
JTextField jtf[];
JLabel jlb;
public sudoku()
{
JFrame jfrm=new JFrame();
jfrm.setLayout(new GridLayout(10,1));
jfrm.setSize(400,400);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jtf=new JTextField[81];
for(int i=0; i<9; i++)
{
JPanel jpn=new JPanel();
for(int j=0; j<9; j++)
{
jtf[j+i*9]=new JTextField(3);
jpn.add(jtf[j+i*9]);
jfrm.add(jpn);
}
}
JPanel jpn=new JPanel();
JButton jbt=new JButton("Kontrol");
jbt.addActionListener(this);
jpn.add(jbt);
jlb=new JLabel("Durum");
JPanel jpn2=new JPanel();
jpn.add(jlb);
jfrm.add(jpn);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
int a=0;
for(int i=0; i<81; i++)
{
int b=i%9;
if(i%9==0 && i/9!=0)
{
a+=9;
}
for(int j=0; j<9; j++)
{
if(jtf[i].getText().equals(jtf[a+j].getText()) && i!=(a+j))
{
jlb.setText("Hatalı Satır"); //Satır kontrolü
return;
}
if(jtf[i].getText().equals(jtf[b+9*j].getText()) && i!=(b+9*j))
{
jlb.setText("Hatalı Sütun"); //Sütün kontrolü
return;
}
}
if(Integer.parseInt(jtf[i].getText())>9) { jlb.setText("Hata:9'dan büyük sayı"); } //Sayı kontrolü
}
int[] dizi=new int[10];
for(int satirBuyuk=0; satirBuyuk<3; satirBuyuk++){
for(int sutunBuyuk=0; sutunBuyuk<3; sutunBuyuk++){
for(int i=0; i<10; i++){
dizi[i] = 0; //dizi sıfırla
}
for(int satirKucuk=0; satirKucuk<3; satirKucuk++){
for(int sutunKucuk=0; sutunKucuk<3; sutunKucuk++){
int index = Integer.parseInt(jtf[satirBuyuk*27 + sutunBuyuk*3 + satirKucuk*9 + sutunKucuk*1].getText());
dizi[index]++;
if(dizi[index]>1){
jlb.setText("Hatalı Kutu"); //Kutu kontrolü
return;
}
}
}
}
}
jlb.setText("Doğru Çözüm");
}
public static void main(String[] args)
{
new sudoku();
}
}
Yorumlar
Yorum Gönder