-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGrid.java
More file actions
71 lines (58 loc) · 1.59 KB
/
Grid.java
File metadata and controls
71 lines (58 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package reversi;
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
public class Grid extends JPanel {
int color;
IController cont;
IModel model;
ArrayList<ArrayList<Square>> squares;
public Grid(int color, IController cont, IModel model) {
setLayout(new GridLayout(8, 8));
this.color=color;
this.cont=cont;
this.model=model;
squares = new ArrayList<ArrayList<Square>>();
if (color==1){
for (int i=0; i<model.getBoardWidth(); i++){
ArrayList<Square> inner = new ArrayList<Square>();
for (int j=0; j<model.getBoardHeight(); j++){
int c = model.getBoardContents(i, j);
Square s = new Square(1, j, i, cont);
if (c != 0)
s.addCounter(c);
add(s);
inner.add(s);
}
squares.add(inner);
}
}
//Invert the black grid
else if (color==2) {
for (int i=model.getBoardWidth()-1; i>=0; i--){
ArrayList<Square> inner = new ArrayList<Square>();
for (int j=model.getBoardHeight()-1; j>=0; j--){
Square s = new Square(2, j, i, cont);
int c = model.getBoardContents(i, j);
if (c != 0)
s.addCounter(c);
add(s);
inner.add(s);
}
squares.add(inner);
}
}
refresh();
}
public void refresh() {
for (ArrayList<Square> row : squares){
for (Square s : row){
int[] pos = s.getPos();
int col = model.getBoardContents(pos[0], pos[1]);
if (s.getCol()!=col)
s.addCounter(col);
}
}
revalidate();
}
}