toontown-just-works/toontown/safezone/ChineseCheckersBoard.py
2024-07-07 18:08:39 -05:00

807 lines
15 KiB
Python

class ChineseCheckersBoard:
def __init__(self):
self.squareList = []
for x in xrange(121):
self.squareList.append(CheckersSquare(x))
self.squareList[0].setAdjacent([None,
1,
2,
None,
None,
None])
self.squareList[1].setAdjacent([None,
3,
4,
2,
0,
None])
self.squareList[2].setAdjacent([1,
4,
5,
None,
None,
0])
self.squareList[3].setAdjacent([None,
6,
7,
4,
1,
None])
self.squareList[4].setAdjacent([3,
7,
8,
5,
2,
1])
self.squareList[5].setAdjacent([4,
8,
9,
None,
None,
2])
self.squareList[6].setAdjacent([None,
14,
15,
7,
3,
None])
self.squareList[7].setAdjacent([6,
15,
16,
8,
4,
3])
self.squareList[8].setAdjacent([7,
16,
17,
9,
5,
4])
self.squareList[9].setAdjacent([8,
17,
18,
None,
None,
5])
self.squareList[10].setAdjacent([None,
None,
23,
11,
None,
None])
self.squareList[11].setAdjacent([10,
23,
24,
12,
None,
None])
self.squareList[12].setAdjacent([11,
24,
25,
13,
None,
None])
self.squareList[13].setAdjacent([12,
25,
26,
14,
None,
None])
self.squareList[14].setAdjacent([13,
26,
27,
15,
6,
None])
self.squareList[15].setAdjacent([14,
27,
28,
16,
7,
6])
self.squareList[16].setAdjacent([15,
28,
29,
17,
8,
7])
self.squareList[17].setAdjacent([16,
29,
30,
18,
9,
8])
self.squareList[18].setAdjacent([17,
30,
31,
19,
None,
9])
(self.squareList[19].setAdjacent([18,
31,
32,
20,
None,
None]),)
self.squareList[20].setAdjacent([19,
32,
33,
21,
None,
None])
self.squareList[21].setAdjacent([20,
33,
34,
22,
None,
None])
self.squareList[22].setAdjacent([21,
34,
None,
None,
None,
None])
self.squareList[23].setAdjacent([None,
None,
35,
24,
11,
10])
self.squareList[24].setAdjacent([23,
35,
36,
25,
12,
11])
self.squareList[25].setAdjacent([24,
36,
37,
26,
13,
12])
self.squareList[26].setAdjacent([25,
37,
38,
27,
14,
13])
self.squareList[27].setAdjacent([26,
38,
39,
28,
15,
14])
self.squareList[28].setAdjacent([27,
39,
40,
29,
16,
15])
self.squareList[29].setAdjacent([28,
40,
41,
30,
17,
16])
self.squareList[30].setAdjacent([29,
41,
42,
31,
18,
17])
self.squareList[31].setAdjacent([30,
42,
43,
32,
19,
18])
self.squareList[32].setAdjacent([31,
43,
44,
33,
20,
19])
self.squareList[33].setAdjacent([32,
44,
45,
34,
21,
20])
self.squareList[34].setAdjacent([33,
45,
None,
None,
22,
21])
self.squareList[35].setAdjacent([None,
None,
46,
36,
24,
23])
self.squareList[36].setAdjacent([35,
46,
47,
37,
25,
24])
self.squareList[37].setAdjacent([36,
47,
48,
38,
26,
25])
self.squareList[38].setAdjacent([37,
48,
49,
39,
27,
26])
self.squareList[39].setAdjacent([38,
49,
50,
40,
28,
27])
self.squareList[40].setAdjacent([39,
50,
51,
41,
29,
28])
self.squareList[41].setAdjacent([40,
51,
52,
42,
30,
29])
self.squareList[42].setAdjacent([41,
52,
53,
43,
31,
30])
self.squareList[43].setAdjacent([42,
53,
54,
44,
32,
31])
self.squareList[44].setAdjacent([43,
54,
55,
45,
33,
32])
self.squareList[45].setAdjacent([44,
55,
None,
None,
34,
33])
self.squareList[46].setAdjacent([None,
None,
56,
47,
36,
35])
self.squareList[47].setAdjacent([46,
56,
57,
48,
37,
36])
self.squareList[48].setAdjacent([47,
57,
58,
49,
38,
37])
self.squareList[49].setAdjacent([48,
58,
59,
50,
39,
38])
self.squareList[50].setAdjacent([49,
59,
60,
51,
40,
39])
self.squareList[51].setAdjacent([50,
60,
61,
52,
41,
40])
self.squareList[52].setAdjacent([51,
61,
62,
53,
42,
41])
self.squareList[53].setAdjacent([52,
62,
63,
54,
43,
42])
self.squareList[54].setAdjacent([53,
63,
64,
55,
44,
43])
self.squareList[55].setAdjacent([54,
64,
None,
None,
45,
44])
self.squareList[56].setAdjacent([None,
65,
66,
57,
47,
46])
self.squareList[57].setAdjacent([56,
66,
67,
58,
48,
47])
self.squareList[58].setAdjacent([57,
67,
68,
59,
49,
48])
self.squareList[59].setAdjacent([58,
68,
69,
60,
50,
49])
self.squareList[60].setAdjacent([59,
69,
70,
61,
51,
50])
self.squareList[61].setAdjacent([60,
70,
71,
62,
52,
51])
self.squareList[62].setAdjacent([61,
71,
72,
63,
53,
52])
self.squareList[63].setAdjacent([62,
72,
73,
64,
54,
53])
self.squareList[64].setAdjacent([63,
73,
74,
None,
55,
54])
self.squareList[65].setAdjacent([None,
75,
76,
66,
56,
None])
self.squareList[66].setAdjacent([65,
76,
77,
67,
57,
56])
self.squareList[67].setAdjacent([66,
77,
78,
68,
58,
57])
self.squareList[68].setAdjacent([67,
78,
79,
69,
59,
58])
self.squareList[69].setAdjacent([68,
79,
80,
70,
60,
61])
self.squareList[70].setAdjacent([69,
80,
81,
71,
61,
60])
self.squareList[71].setAdjacent([70,
81,
82,
72,
62,
61])
self.squareList[72].setAdjacent([71,
82,
83,
73,
63,
62])
self.squareList[73].setAdjacent([72,
83,
84,
74,
64,
63])
self.squareList[74].setAdjacent([73,
84,
85,
None,
None,
64])
self.squareList[75].setAdjacent([None,
86,
87,
76,
65,
None])
self.squareList[76].setAdjacent([75,
87,
88,
77,
66,
65])
self.squareList[77].setAdjacent([76,
88,
89,
78,
67,
66])
self.squareList[78].setAdjacent([77,
89,
90,
79,
68,
67])
self.squareList[79].setAdjacent([78,
90,
91,
80,
69,
68])
self.squareList[80].setAdjacent([79,
91,
92,
81,
70,
69])
self.squareList[81].setAdjacent([80,
92,
93,
82,
71,
70])
self.squareList[82].setAdjacent([81,
93,
94,
83,
72,
71])
self.squareList[83].setAdjacent([82,
94,
95,
84,
73,
72])
self.squareList[84].setAdjacent([83,
95,
96,
85,
74,
73])
self.squareList[85].setAdjacent([84,
96,
97,
None,
None,
74])
self.squareList[86].setAdjacent([None,
98,
99,
87,
75,
None])
self.squareList[87].setAdjacent([86,
99,
100,
88,
76,
75])
self.squareList[88].setAdjacent([87,
100,
101,
89,
77,
76])
self.squareList[89].setAdjacent([88,
101,
102,
90,
78,
77])
self.squareList[90].setAdjacent([89,
102,
103,
91,
79,
78])
self.squareList[91].setAdjacent([90,
103,
104,
92,
80,
79])
self.squareList[92].setAdjacent([91,
104,
105,
93,
81,
80])
self.squareList[93].setAdjacent([92,
105,
106,
94,
82,
81])
self.squareList[94].setAdjacent([93,
106,
107,
95,
83,
82])
self.squareList[95].setAdjacent([94,
107,
108,
96,
84,
83])
self.squareList[96].setAdjacent([95,
108,
109,
97,
85,
84])
self.squareList[97].setAdjacent([96,
109,
110,
None,
None,
85])
self.squareList[98].setAdjacent([None,
None,
None,
99,
86,
None])
self.squareList[99].setAdjacent([98,
None,
None,
100,
87,
86])
self.squareList[100].setAdjacent([99,
None,
None,
101,
88,
87])
self.squareList[101].setAdjacent([100,
None,
None,
102,
89,
88])
self.squareList[102].setAdjacent([101,
None,
111,
103,
90,
89])
self.squareList[103].setAdjacent([102,
111,
112,
104,
91,
90])
self.squareList[104].setAdjacent([103,
112,
113,
105,
92,
91])
self.squareList[105].setAdjacent([104,
113,
114,
106,
93,
92])
self.squareList[106].setAdjacent([105,
114,
None,
107,
94,
93])
self.squareList[107].setAdjacent([106,
None,
None,
108,
95,
94])
self.squareList[108].setAdjacent([107,
None,
None,
109,
96,
95])
self.squareList[109].setAdjacent([108,
None,
None,
110,
97,
96])
self.squareList[110].setAdjacent([109,
None,
None,
None,
None,
97])
self.squareList[111].setAdjacent([None,
None,
115,
112,
103,
102])
self.squareList[112].setAdjacent([111,
115,
116,
113,
104,
103])
self.squareList[113].setAdjacent([112,
116,
117,
114,
105,
104])
self.squareList[114].setAdjacent([113,
117,
None,
None,
106,
105])
self.squareList[115].setAdjacent([None,
None,
118,
116,
112,
111])
self.squareList[116].setAdjacent([115,
118,
119,
117,
113,
112])
self.squareList[117].setAdjacent([116,
119,
None,
None,
114,
113])
self.squareList[118].setAdjacent([None,
None,
120,
119,
116,
115])
self.squareList[119].setAdjacent([118,
120,
None,
None,
117,
116])
self.squareList[120].setAdjacent([None,
None,
None,
None,
119,
118])
return
def delete(self):
for x in self.squareList:
x.delete()
del self.squareList
def getSquare(self, arrayLoc):
return self.squareList[arrayLoc]
def getSquareOffset(self, arrayLoc):
return self.squareList[arrayLoc - 1]
def getState(self, squareNum):
return self.squareList[squareNum].getState()
def getStateOffset(self, arrayLoc):
return self.squareList[squareNum - 1].getState()
def setState(self, squareNum, newState):
self.squareList[squareNum].setState(newState)
def setStateOffset(self, squareNum, newState):
self.squareList[squareNum - 1].setState(newState)
def getAdjacent(self, squareNum):
return self.squareList[squareNum].adjacent
def getAdjacentOffset(self, squareNum):
return self.squareList[squareNum - 1].adjacent
def getStates(self):
retList = []
for x in xrange(121):
retList.append(self.squareList[x].getState())
return retList
def setStates(self, squares):
y = 0
for x in xrange(121):
self.squareList[x].setState(squares[x])
class CheckersSquare:
def __init__(self, tileNu):
self.tileNum = tileNu
self.state = 0
self.adjacent = []
def delete(self):
del self.tileNum
del self.state
del self.adjacent
def setAdjacent(self, adjList):
for x in adjList:
self.adjacent.append(x)
def getAdjacent(self):
return self.adjacent
def setState(self, newState):
self.state = newState
def getState(self):
return self.state
def getNum(self):
return self.tileNum