-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSimulator.py
More file actions
executable file
·67 lines (64 loc) · 2.05 KB
/
Simulator.py
File metadata and controls
executable file
·67 lines (64 loc) · 2.05 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
from Player import Player
import copy
class Simulator(Player):
def __init__(self, grid):
#super(Simulator, self).__init__()
self._original_grid = grid
self._grid = copy.deepcopy(grid)
def play(self):
pass
def execute(self, command):
if command == "move/0": # Move Up
for i in range(1, 4):
for j in range(0, 4):
value = self._grid[i][j]
for k in range(i, 0, -1):
if self._grid[k - 1][j] == 0:
self._grid[k - 1][j] = self._grid[k][j]
self._grid[k][j] = 0
elif self._grid[k - 1][j] == self._grid[k][j] and self._grid[k][j] == value:
self._grid[k - 1][j] += self._grid[k][j]
self._grid[k][j] = 0
else:
break
elif command == "move/1": # Move Right
for i in range(0, 4):
for j in range(2, -1, -1):
value = self._grid[i][j]
for l in range(j, 3):
if self._grid[i][l + 1] == 0:
self._grid[i][l + 1] = self._grid[i][l]
self._grid[i][l] = 0
elif self._grid[i][l + 1] == self._grid[i][l] and self._grid[i][l] == value:
self._grid[i][l + 1] += self._grid[i][l]
self._grid[i][l] = 0
else:
break;
elif command == "move/2": # Move Down
for i in range(2, -1, -1):
for j in range(0, 4):
value = self._grid[i][j]
for k in range(i, 3):
if self._grid[k + 1][j] == 0:
self._grid[k + 1][j] = self._grid[k][j]
self._grid[k][j] = 0
elif self._grid[k + 1][j] == self._grid[k][j] and self._grid[k][j] == value:
self._grid[k + 1][j] += self._grid[k][j]
self._grid[k][j] = 0
else:
break;
elif command == "move/3": # Move Left
for i in range(0, 4):
for j in range(1, 4):
value = self._grid[i][j]
for l in range(j, 0, -1):
if self._grid[i][l - 1] == 0:
self._grid[i][l - 1] = self._grid[i][l]
self._grid[i][l] = 0
elif self._grid[i][l - 1] == self._grid[i][l] and self._grid[i][l] == value:
self._grid[i][l - 1] += self._grid[i][l]
self._grid[i][l] = 0
else:
break
def reset(self):
self._grid = copy.deepcopy(self._original_grid)