Changeset 164
- Timestamp:
- 09/20/04 23:18:43 (4 years ago)
- Files:
-
- 06/devel/abstractBoardPY.py (modified) (1 diff)
- 06/devel/board.py (modified) (1 diff)
- 06/devel/kombilo.py (modified) (27 diffs)
- 06/devel/patternPY.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
06/devel/abstractBoardPY.py
r161 r164 61 61 return ab 62 62 63 def restore(self, data):63 def restore(self, ab): 64 64 self.boardsize = ab.boardsize 65 65 self.status = ab.status 06/devel/board.py
r161 r164 213 213 214 214 def snapshot(self): 215 handle = abstractBoard.snapshot(self) 216 self.snapshots[handle].extend([self.currentColor, deepcopy(self.stones), deepcopy(self.marks), deepcopy(self.labels)]) 217 return handle 218 219 def restore(self, handle): 220 abstractBoard.restore(self, handle) 221 self.currentColor = self.snapshots[handle][2] 222 self.stones = self.snapshots[handle][3] 223 self.marks = self.snapshots[handle][4] 224 self.labels = self.snapshots[handle][5] 215 return [abstractBoard.copy(self), self.currentColor, deepcopy(self.stones), deepcopy(self.marks), deepcopy(self.labels)] 216 217 def restore(self, data): 218 abstractBoard.restore(self, data[0]) 219 self.currentColor = data[1] 220 self.stones = data[2] 221 self.marks = data[3] 222 self.labels = data[4] 225 223 self.resize(None, 1) 226 224 06/devel/kombilo.py
r161 r164 290 290 291 291 def snapshot(self): 292 handle= Board.snapshot(self)293 self.snapshots[handle].extend([copy(self.wildcards), self.selection])294 return handle295 296 def restore(self, handle):297 self.wildcards = self.snapshots[handle][6]298 self.selection = self.snapshots[handle][7]299 Board.restore(self, handle) # This does a self.resize(), which takes care of wildcards and selection in our case292 data = Board.snapshot(self) 293 data.extend([copy(self.wildcards), self.selection]) 294 return data 295 296 def restore(self, data): 297 self.wildcards = data[5] 298 self.selection = data[6] 299 Board.restore(self, data) # This does a self.resize(), which takes care of wildcards and selection in our case 300 300 301 301 # --------------------------------------------------------------------------------------- … … 947 947 self.data = [] 948 948 self.mster = master 949 950 949 self.maxLength = maxLength 951 950 self.boardChanged = boardChanged 952 953 951 self.prevSF = prevSF 954 952 self.labelSize = IntVar() … … 956 954 self.smartFC = IntVar() 957 955 self.FC = IntVar() 958 959 956 self.selected = -1 960 957 self.prev_select = -1 961 962 958 self.popupMenu = None 963 964 959 965 960 def append(self, s): … … 970 965 self.delete(i) 971 966 break 972 973 967 b = BoardWC(self.prevSF.interior(), self.mster.boardsize, (9,5), 0, 974 968 self.labelSize, self.FC, self.smartFC, self.mster.boardImg, None, None) … … 981 975 b.bound3 = b.bind('<3>', lambda event, self=self, l = len(self.data): self.postMenu(event, l)) 982 976 b.unbind('<Shift-1>', b.bounds1) 983 984 # for key in data[0].keys(): 985 # print data[0][key] 986 # p = b.getPixelCoord(key) 987 # b.status[key] = data[0][key] 988 # b.stones[key] = b.create_oval(p, fill=data[0][key], tags='non-bg') 989 # for key in data[1].keys(): 990 # print key, 991 # color = data[1][key][1] 992 # print color 993 # x1, x2, y1, y2 = b.getPixelCoord(key,1) 994 # b.wildcards[key] = (b.create_oval(x1, x2, y1, y2, fill = color, 995 # outline='', tags=('wildcard','non-bg')), color) 996 # print b.wildcards[key] 997 # if data[2] != ((0,0), (self.mster.boardsize-1, self.mster.boardsize-1)) and data[2][1] != (-1,-1): 998 # b.setSelection(data[2][0], data[2][1]) 999 977 b.restore(s[0]) 978 # for key in data[0].keys(): 979 # # print data[0][key] 980 # p = b.getPixelCoord(key) 981 # b.status[key] = data[0][key] 982 # b.stones[key] = b.create_oval(p, fill=data[0][key], tags='non-bg') 983 # for key in data[1].keys(): 984 # # print key, 985 # color = data[1][key][1] 986 # # print color 987 # x1, x2, y1, y2 = b.getPixelCoord(key,1) 988 # b.wildcards[key] = (b.create_oval(x1, x2, y1, y2, fill = color, 989 # outline='', tags=('wildcard','non-bg')), color) 990 # # print b.wildcards[key] 991 # if data[2] != ((0,0), (self.mster.boardsize-1, self.mster.boardsize-1)) and data[2][1] != (-1,-1): 992 # b.setSelection(data[2][0], data[2][1]) 1000 993 b.tkraise('non-bg') 1001 994 b.resizable = 0 1002 1003 995 self.prevSF.reposition() 1004 996 self.data.append([s, b, 0]) 1005 997 self.select(len(self.data)-1) 1006 1007 998 1008 999 def postMenu(self, event, board): … … 1018 1009 self.popupMenu.add_command(label = 'Hold', 1019 1010 command = lambda self=self, board=board: self.unpostAndHold(board)) 1020 1021 1011 self.popupMenu.tk_popup(event.x_root, event.y_root) 1022 1012 … … 1027 1017 self.popupMenu = None 1028 1018 1029 1030 1019 def unpostAndDelete(self, board): 1031 1020 self.unpost() 1032 1021 self.delete(board) 1033 1034 1022 1035 1023 def unpostAndHold(self, board): … … 1038 1026 c = self.data[board][1].getPixelCoord((21,21), 1)[0] 1039 1027 self.data[board][1].create_rectangle(6,6,c-4,c-4, fill='', outline='blue', width=2, tags='hold') 1040 1041 1028 1042 1029 def unpostAndRelease(self, board): … … 1044 1031 self.data[board][2] = 0 1045 1032 self.data[board][1].delete('hold') 1046 1047 1033 1048 1034 def delete(self, board): … … 1066 1052 1067 1053 self.prevSF.reposition() 1068 1069 1054 1070 1055 def deleteFile(self, cursor): … … 1076 1061 for i in d: 1077 1062 self.delete(i) 1078 1079 1063 1080 1064 def deleteGame(self, cursor, game): … … 1089 1073 for i in d: 1090 1074 self.delete(i) 1091 1092 1075 1093 1076 def exchangeGames(self, cursor, index1, index2): … … 1107 1090 self.data[i][0][-1][1] += 1 1108 1091 1109 1110 1092 def deleteNode(self, cursor, game, pathToNode): 1111 1093 d = [] … … 1127 1109 self.delete(i) 1128 1110 1129 1130 1111 def see(self, board): 1131 1112 if board == END: self.prevSF.xview('moveto', 1.0) … … 1133 1114 self.prevSF.xview('moveto', 1.0 / (len(self.data)+1) * board) 1134 1115 1135 1136 1116 def select(self, board): 1137 1117 … … 1148 1128 self.selected = board 1149 1129 self.see(board) 1150 1151 1130 1152 1131 def click(self, board): … … 1154 1133 self.mster.back(self.data[self.selected][0], self.selected) 1155 1134 1156 1157 1135 def select_clear(self): 1158 1136 if 0 <= self.selected < len(self.data): … … 1160 1138 self.prev_select = self.selected 1161 1139 self.selected = -1 1162 1163 1140 1164 1141 def pop(self): … … 1182 1159 else: 1183 1160 return (self.data[self.selected][0], -1) 1184 1185 1161 1186 1162 def clear(self): … … 1931 1907 self.noMatches, self.noSwitched, self.Bwins, self.Wwins, 1932 1908 self.modeVar.get(), self.fixedColorVar.get(), self.fixedAnchorVar.get(), 1933 self.moveLimit.get(), self.nextMoveVar.get(), cursorSn]) 1909 self.moveLimit.get(), self.nextMoveVar.get(), cursorSn, 1910 self.currentSearchPattern]) # FIXME: need .copy() here? 1934 1911 1935 1912 self.configButtons(NORMAL) … … 2220 2197 2221 2198 try: 2222 handle, g, r, c, nm, ns, bw, ww, mv, fc, fa, ml, nextM, cu= prev2199 boardData, g, r, c, nm, ns, bw, ww, mv, fc, fa, ml, nextM, cu, csp = prev 2223 2200 except: 2224 2201 self.reset() … … 2238 2215 self.Wwins = 0 2239 2216 2240 if not handleis None:2217 if not boardData is None: 2241 2218 if cu: 2242 2219 found = 0 … … 2255 2232 return 2256 2233 self.board.newPosition() 2234 self.capB, self.capW = 0, 0 2257 2235 self.displayNode(self.cursor.getRootNode(self.cursor.currentGame)) 2258 2236 for i in cu[2]: … … 2260 2238 self.cursor.seeCurrent() 2261 2239 2262 self.board.restore( handle)2240 self.board.restore(boardData) 2263 2241 2264 2242 self.sel = self.board.selection # used in self.showCont() … … 2274 2252 2275 2253 for i in range(len(r)): 2276 self.gamelist.DBlist[`self.boardsize`][i].results = split(r[i], '|%')2254 self.gamelist.DBlist[`self.boardsize`][i].results = r[i] 2277 2255 # FIXME results 2278 2256 self.continuations = c … … 2286 2264 self.board.changed.set(0) 2287 2265 2288 # restore self.currentSearchPattern 2289 2290 pd = self.getPatternFromBoard(self.sel) 2291 anchors = self.getAnchors() 2292 2293 # FIXME moveSequence! 2294 2295 self.currentSearchPattern = Pattern(anchors, pd) 2266 self.currentSearchPattern = csp 2296 2267 2297 2268 self.statistics = {} … … 3960 3931 self.balloonHelp() 3961 3932 3962 3963 3933 # --------------------------------------------------------------------------------------- 3964 3934 06/devel/patternPY.py
r153 r164 77 77 return self.bits[b][i] 78 78 79 def __init__(self, # anchors, initialDict, contList=[], moveOne = 'X'):79 def __init__(self, 80 80 left, right, top, bottom, sizeX, sizeY, 81 81 initialPos, contList, lenContList, moveOne):
