Java Reference
In-Depth Information
19 JPanel p = new JPanel( new GridLayout( 3 , 3 , 0 , 0 ));
20 for ( int i = 0 ; i < 3 ; i++)
21 for ( int j = 0 ; j < 3 ; j++)
22 p.add(cells[i][j] = new Cell());
23
24 // Set line borders on the cells' panel and the status label
25 p.setBorder( new LineBorder(Color.red, 1 ));
26 jlblStatus.setBorder( new LineBorder(Color.yellow, 1 ));
27
28 // Place the panel and the label for the applet
29 add(p, BorderLayout.CENTER);
30 add(jlblStatus, BorderLayout.SOUTH);
31 }
32
33
/** Determine whether the cells are all occupied */
34
public boolean isFull()
{
check isFull
35
for ( int i = 0 ; i < 3 ; i++)
36
for ( int j = 0 ; j < 3 ; j++)
37
if (cells[i][j].getToken() == ' ' )
38
return false ;
39
40
return true ;
41 }
42
43
/** Determine whether the player with the specified token wins */
44
public boolean isWon( char token)
{
45 for ( int i = 0 ; i < 3 ; i++)
46 if ((cells[i][ 0 ].getToken() == token)
47 && (cells[i][ 1 ].getToken() == token)
48 && (cells[i][ 2 ].getToken() == token)) {
49
check rows
return true ;
50 }
51
52 for ( int j = 0 ; j < 3 ; j++)
53 if ((cells[ 0 ][j].getToken() == token)
54 && (cells[ 1 ][j].getToken() == token)
55 && (cells[ 2 ][j].getToken() == token)) {
56
check columns
return true ;
57 }
58
59 if ((cells[ 0 ][ 0 ].getToken() == token)
60 && (cells[ 1 ][ 1 ].getToken() == token)
61 && (cells[ 2 ][ 2 ].getToken() == token)) {
62
check major diagonal
return true ;
63 }
64
65 if ((cells[ 0 ][ 2 ].getToken() == token)
66 && (cells[ 1 ][ 1 ].getToken() == token)
67 && (cells[ 2 ][ 0 ].getToken() == token)) {
68
check subdiagonal
return true ;
69 }
70
71
return false ;
72 }
73
74
// An inner class for a cell
75
public class
Cell extends JPanel
{
inner class Cell
76
// Token used for this cell
77
private char token = ' ' ;
78
 
Search WWH ::




Custom Search