-
Notifications
You must be signed in to change notification settings - Fork 0
/
disks.py
55 lines (47 loc) · 1.86 KB
/
disks.py
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
from disk import Disk
class Disks:
"""A collection of disk"""
def __init__(self, WIDTH, HEIGHT, SIZE, game_controller):
self.SIZE = SIZE
self.SPACE = WIDTH/SIZE
self.DISKSIZE = self.SPACE - 5
self.disks = [[None]*self.SIZE for i in range(self.SIZE)]
self.black = 0
self.white = 0
self.gc = game_controller
def update(self):
"""Check if any part is win"""
if self.black + self.white == self.SIZE*self.SIZE:
if self.black > self.white:
self.gc.black_wins = True
elif self.white > self.black:
self.gc.white_wins = True
else:
self.gc.tie = True
self.gc.black_num = self.black
self.gc.white_num = self.white
def put(self, row, col, disk):
"""Put disk on the position the player click"""
if row < self.SIZE and col < self.SIZE:
self.disks[row][col] = disk
if disk.color == 255:
self.white += 1
else:
self.black += 1
def init_disk(self):
"""Put the initial four disk"""
self.put(self.SIZE/2-1, self.SIZE/2-1,
Disk(self.SIZE/2-1, self.SIZE/2-1, 255, self, self.DISKSIZE))
self.put(self.SIZE/2-1, self.SIZE/2,
Disk(self.SIZE/2-1, self.SIZE/2, 0, self, self.DISKSIZE))
self.put(self.SIZE/2, self.SIZE/2-1,
Disk(self.SIZE/2, self.SIZE/2-1, 0, self, self.DISKSIZE))
self.put(self.SIZE/2, self.SIZE/2,
Disk(self.SIZE/2, self.SIZE/2, 255, self, self.DISKSIZE))
def display(self):
"""Display the disks"""
self.update()
for i in range(self.SIZE):
for j in range(self.SIZE):
if self.disks[i][j] is not None:
self.disks[i][j].display()