import java.awt.*; import java.applet.*; import java.awt.event.*; public class SudokuBoard extends Applet { private Panel options; private Button easy,medium,hard,help,solve; private Panel sudokuGrid; private TextField[][] grid; private String[][] gridEasy,gridMedium,gridHard; private int board; public SudokuBoard() { options=new Panel(); easy=new Button("Easy"); medium=new Button("Medium"); hard=new Button("Hard"); help=new Button("Help"); solve=new Button("Solve"); help.setEnabled(false); solve.setEnabled(false); easy.addActionListener(new EasyButtonListener()); medium.addActionListener(new MediumButtonListener()); hard.addActionListener(new HardButtonListener()); help.addActionListener(new HelpButtonListener()); solve.addActionListener(new SolveButtonListener()); options.add(easy); options.add(medium); options.add(hard); options.add(help); options.add(solve); sudokuGrid=new Panel(); sudokuGrid.setLayout(new GridLayout(9,9)); grid=new TextField[9][9]; for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { grid[i][j]=new TextField(1); sudokuGrid.add(grid[i][j]); } } add(options,BorderLayout.NORTH); add(sudokuGrid,BorderLayout.CENTER); } public class EasyButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { grid[0][0].setText("1"); grid[0][2].setText("3"); grid[0][3].setText("5"); grid[0][5].setText("8"); grid[0][8].setText("9"); grid[1][2].setText("8"); grid[1][4].setText("4"); grid[1][5].setText("7"); grid[1][6].setText("6"); grid[2][1].setText("4"); grid[2][2].setText("7"); grid[3][0].setText("2"); grid[3][1].setText("7"); grid[3][5].setText("3"); grid[3][6].setText("4"); grid[3][7].setText("9"); grid[4][3].setText("9"); grid[4][5].setText("2"); grid[5][1].setText("5"); grid[5][2].setText("9"); grid[5][3].setText("6"); grid[5][7].setText("2"); grid[5][8].setText("1"); grid[6][6].setText("2"); grid[6][7].setText("7"); grid[7][2].setText("2"); grid[7][3].setText("4"); grid[7][4].setText("9"); grid[7][6].setText("8"); grid[8][0].setText("3"); grid[8][3].setText("7"); grid[8][5].setText("1"); grid[8][6].setText("9"); grid[8][8].setText("4"); gridEasy[0][0]="1"; gridEasy[0][1]="9"; gridEasy[0][2]="3"; gridEasy[0][3]="5"; gridEasy[0][4]="6"; gridEasy[0][5]="8"; gridEasy[0][6]="7"; gridEasy[0][7]="4"; gridEasy[0][8]="2"; gridEasy[1][0]="5"; gridEasy[1][1]="2"; gridEasy[1][2]="8"; gridEasy[1][3]="1"; gridEasy[1][4]="4"; gridEasy[1][5]="7"; gridEasy[1][6]="6"; gridEasy[1][7]="3"; gridEasy[1][8]="9"; gridEasy[2][0]="6"; gridEasy[2][1]="4"; gridEasy[2][2]="7"; gridEasy[2][3]="2"; gridEasy[2][4]="3"; gridEasy[2][5]="9"; gridEasy[2][6]="1"; gridEasy[2][7]="5"; gridEasy[2][8]="8"; gridEasy[3][0]="2"; gridEasy[3][1]="7"; gridEasy[3][2]="1"; gridEasy[3][3]="8"; gridEasy[3][4]="5"; gridEasy[3][5]="3"; gridEasy[3][6]="4"; gridEasy[3][7]="9"; gridEasy[3][8]="6"; gridEasy[4][0]="4"; gridEasy[4][1]="3"; gridEasy[4][2]="6"; gridEasy[4][3]="9"; gridEasy[4][4]="1"; gridEasy[4][5]="2"; gridEasy[4][6]="5"; gridEasy[4][7]="8"; gridEasy[4][8]="7"; gridEasy[5][0]="8"; gridEasy[5][1]="5"; gridEasy[5][2]="9"; gridEasy[5][3]="6"; gridEasy[5][4]="7"; gridEasy[5][5]="4"; gridEasy[5][6]="3"; gridEasy[5][7]="2"; gridEasy[5][8]="1"; gridEasy[6][0]="9"; gridEasy[6][1]="1"; gridEasy[6][2]="4"; gridEasy[6][3]="3"; gridEasy[6][4]="8"; gridEasy[6][5]="6"; gridEasy[6][6]="2"; gridEasy[6][7]="7"; gridEasy[6][8]="5"; gridEasy[7][0]="7"; gridEasy[7][1]="6"; gridEasy[7][2]="2"; gridEasy[7][3]="4"; gridEasy[7][4]="9"; gridEasy[7][5]="5"; gridEasy[7][6]="8"; gridEasy[7][7]="1"; gridEasy[7][8]="3"; gridEasy[8][0]="3"; gridEasy[8][1]="8"; gridEasy[8][2]="5"; gridEasy[8][3]="7"; gridEasy[8][4]="2"; gridEasy[8][5]="1"; gridEasy[8][6]="9"; gridEasy[8][7]="6"; gridEasy[8][8]="4"; board=1; help.setEnabled(true); solve.setEnabled(true); } } public class MediumButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { board=2; help.setEnabled(true); solve.setEnabled(true); } } public class HardButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { board=3; help.setEnabled(true); solve.setEnabled(true); } } public class HelpButtonListener implements ActionListener { int run=1; public void actionPerformed(ActionEvent event) { if(board==1) { while(run!=0) { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grid[i][j].getText()!=gridEasy[i][j]) { grid[i][j].setText(gridEasy[i][j]); run=0; } } } } run=1; } if(board==2) { while(run!=0) { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grid[i][j].getText()!=gridMedium[i][j]) { grid[i][j].setText(gridMedium[i][j]); run=0; } } } } run=1; } if(board==3) { while(run!=0) { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grid[i][j].getText()!=gridHard[i][j]) { grid[i][j].setText(gridHard[i][j]); run=0; } } } } run=1; } } } public class SolveButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { if(board==1) { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grid[i][j].getText()!=gridEasy[i][j]) { grid[i][j].setText(gridEasy[i][j]); } } } } if(board==2) { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grid[i][j].getText()!=gridMedium[i][j]) { grid[i][j].setText(gridMedium[i][j]); } } } if(board==3) { for(int i=0;i<9;i++) { for(int j=0;j<9;j++) { if(grid[i][j].getText()!=gridHard[i][j]) { grid[i][j].setText(gridHard[i][j]); } } } } } } } }