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