-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTwoThousandFourtyEight.java
More file actions
115 lines (80 loc) · 2.39 KB
/
Copy pathTwoThousandFourtyEight.java
File metadata and controls
115 lines (80 loc) · 2.39 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
class TwoThousandFourtyEight{
//fields
private int[][] board;
TwoThousandFourtyEight(int x, int y) {
// Constructor
board = new int[y][x];
TwoDimensional2048.addNewValue(board);
}
TwoThousandFourtyEight(int[][] b) {
// Constructor
board = b;
}
public int[][] getBoard() {
return board;
}
public int getHighestTile() {
int high = 0;
for(int[] i: board){
for(int j : i){
if(j > high){
high = j;
}
}
}
return high;
}
public int getScore() {
int sum = 0;
for(int[] i : board){
for(int j: i){
//System.out.println(j);
//System.out.println(1-j);
if(j != 0)
sum+= -2*(1- j);
}
}
return sum;
}
public void printBoard() {
for(int i = 0; i < board.length; i++){
for(int j = 0; j < board[i].length; j++){
System.out.print(board[i][j] + ",");
}
System.out.println("");
}
}
public TwoThousandFourtyEight copy() {
return new TwoThousandFourtyEight(board);
}
public boolean up() {
int[][] b1 = board.clone();
this.board = TwoDimensional2048.up(this.board);
//if(!TwoDimensional2048.identicalBoard(b1, board))
TwoDimensional2048.addNewValue(board);
return TwoDimensional2048.numUnoccupied(board)!= 0;
}
public boolean down() {
int[][] b1 = board.clone();
this.board = TwoDimensional2048.down(this.board);
// if(!TwoDimensional2048.identicalBoard(b1, board))
TwoDimensional2048.addNewValue(board);
return TwoDimensional2048.numUnoccupied(board)!= 0;
}
public boolean left() {
//left action on board
int[][] b1 = board.clone();
this.board = TwoDimensional2048.left(this.board);
//if(!TwoDimensional2048.identicalBoard(b1, board))
TwoDimensional2048.addNewValue(board);
return TwoDimensional2048.numUnoccupied(board)!= 0;
}
public boolean right() {
//rigth action on board
int[][] b1 = board.clone();
this.board = TwoDimensional2048.right(this.board);
//if(!TwoDimensional2048.identicalBoard(b1, board))
TwoDimensional2048.addNewValue(board);
return TwoDimensional2048.numUnoccupied(board)!= 0;
}
}