Changeset 120
- Timestamp:
- 03/24/04 20:58:09 (5 years ago)
- Location:
- 06/devel
- Files:
-
- 7 modified
-
abstractBoard.cc (modified) (1 diff)
-
abstractBoard.h (modified) (2 diffs)
-
abstractBoardPY.py (modified) (2 diffs)
-
board.py (modified) (3 diffs)
-
kombilo.py (modified) (3 diffs)
-
searchPY.py (modified) (1 diff)
-
v.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
06/devel/abstractBoard.cc
r83 r120 40 40 undostack = PyList_New(0); 41 41 } 42 43 44 abstractBoard::abstractBoard(const abstractBoard& ab) { 45 } 46 42 47 43 48 abstractBoard::~abstractBoard() { -
06/devel/abstractBoard.h
r83 r120 32 32 }; 33 33 34 35 class Move { 36 public: 37 char x; 38 char y; 39 char c; 40 vector<pair<char,char>> captures; 41 } 42 43 34 44 class abstractBoard { 35 45 public: 36 46 int boardsize; 37 47 char* status; 38 PyObject*undostack;48 stack<Move> undostack; 39 49 40 50 abstractBoard(int bs = 19) throw(BoardError); 51 abstractBoard(const abstractBoard& ab); 41 52 ~abstractBoard(); 42 53 void clear(); … … 47 58 void setStatus(int x, int y, char val); 48 59 PyObject* get_undostack(); 60 int len_cap_last(); 61 abstractBoard copy(const abstractBoard& ab); 62 49 63 private: 50 64 int* neighbors(int x, int y); -
06/devel/abstractBoardPY.py
r119 r120 58 58 59 59 def copy(self): 60 print 'invoke copy'61 60 ab = abstractBoard(self.boardsize) 62 61 ab.status = deepcopy(self.status) … … 64 63 return ab 65 64 65 def len_cap_last(self): 66 """ Return number of captured stones in last move. """ 67 68 return len(self.undostack[-1][2]) 69 70 def get_cap_last(self): 71 return self.undostack[-1][2] 72 73 def undostack_pop(self): 74 return self.undostack.pop() 75 76 def undostack_append_pass(self): 77 self.undostack.append(((20,20), '' ,[])) 78 79 def len_undostack(self): 80 return len(self.undostack) 66 81 67 82 def neighbors(self,x): -
06/devel/board.py
r94 r120 33 33 from abstractBoard import * 34 34 except ImportError: 35 #print 'ouch' # FIXME35 print 'ouch' # FIXME 36 36 from abstractBoardPY import * 37 37 … … 218 218 elif color in ['white', 'w']: color = 'W' 219 219 if abstractBoard.play(self, pos, color): # legal move? 220 lll = self.get_undostack() 221 captures = lll[-1][2] # retrieve list of captured stones 220 captures = self.get_cap_last() 222 221 for x in captures: 223 222 self.delete(self.stones[x]) … … 429 428 430 429 for i in range(no): 431 if self. get_undostack():430 if self.len_undostack(): 432 431 self.onChange() 433 pos, color, captures = self. get_undostack().pop()432 pos, color, captures = self.undostack_pop() 434 433 if self.getStatus(pos[0], pos[1]) != ' ': 435 434 self.setStatus(pos[0], pos[1], ' ') -
06/devel/kombilo.py
r119 r120 56 56 from abstractBoard import * 57 57 except ImportError: 58 #print 'ouch' # FIXME58 print 'ouch' # FIXME 59 59 from abstractBoardPY import * 60 60 from board import * … … 1435 1435 1436 1436 if not self.master.board.play((jj,ii), color): 1437 self.master.board. get_undostack().append(((20,20), '' ,[]))1437 self.master.board.undostack_append_pass() 1438 1438 self.master.board.currentColor = self.master.modeVar.get() 1439 1439 1440 1440 if nM == 'AB': 1441 self.master.capB = self.master.capB + \ 1442 len(self.master.board.get_undostack()[len(self.master.board.get_undostack())-1][2]) 1441 self.master.capB = self.master.capB + self.master.board.len_cap_last() 1443 1442 if nM == 'AW': 1444 self.master.capW = self.master.capW + \ 1445 len(self.master.board.get_undostack()[len(self.master.board.get_undostack())-1][2]) 1443 self.master.capW = self.master.capW + self.master.board.len_cap_last() 1446 1444 self.master.capVar.set('Cap - B: ' + str(self.master.capB) + ', W: ' + str(self.master.capW)) 1447 1445 … … 1459 1457 1460 1458 if nM == 'AB': 1461 self.master.capB = self.master.capB + \ 1462 len(self.master.board.get_undostack()[len(self.master.board.get_undostack())-1][2]) 1459 self.master.capB = self.master.capB + self.master.board.len_cap_last() 1463 1460 if nM == 'AW': 1464 self.master.capW = self.master.capW + \ 1465 len(self.master.board.get_undostack()[len(self.master.board.get_undostack())-1][2]) 1461 self.master.capW = self.master.capW + self.master.board.len_cap_last() 1466 1462 self.master.capVar.set('Cap - B: ' + str(self.master.capB) + ', W: ' + str(self.master.capW)) 1467 1463 except SGFError: showwarning('Error', 'SGF Error') -
06/devel/searchPY.py
r119 r120 298 298 assert 0 <= x < self.boardsize and 0 <= y < self.boardsize # jump to end of loop if pass 299 299 300 if b. get_undostack(): captures = b.get_undostack()[len(b.get_undostack())-1][2]300 if b.len_undostack(): captures = b.get_cap_last() 301 301 else: assert 0 302 302 -
06/devel/v.py
r94 r120 1626 1626 1627 1627 if not self.board.play(p, self.modeVar.get()): 1628 self.board. get_undostack().append(((20,20), '' ,[]))1628 self.board.undostack_append_pass() 1629 1629 self.board.currentColor = self.modeVar.get() 1630 1630 1631 1631 if nM == 'AB': 1632 self.capB = self.capB + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1632 self.capB = self.capB + self.board.len_cap_last() 1633 1633 if nM == 'AW': 1634 self.capW = self.capW + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1634 self.capW = self.capW + self.board.len_cap_last() 1635 1635 self.capVar.set('Cap - B: ' + str(self.capB) + ', W: ' + str(self.capW)) 1636 1636 else: … … 1647 1647 1648 1648 if nM == 'AB': 1649 self.capB = self.capB + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1649 self.capB = self.capB + self.board.len_cap_last() 1650 1650 if nM == 'AW': 1651 self.capW = self.capW + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1651 self.capW = self.capW + self.board.len_cap_last() 1652 1652 self.capVar.set('Cap - B: ' + str(self.capB) + ', W: ' + str(self.capW)) 1653 1653 … … 1690 1690 self.displayNode(c) 1691 1691 if c.has_key('B'): 1692 self.capB = self.capB + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1692 self.capB = self.capB + self.board.len_cap_last() 1693 1693 if c.has_key('W'): 1694 self.capW = self.capW + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1694 self.capW = self.capW + self.board.len_cap_last() 1695 1695 self.capVar.set('Cap - B: ' + str(self.capB) + ', W: ' + str(self.capW)) 1696 1696 … … 1722 1722 self.displayNode(c) 1723 1723 if nM == 'B': 1724 self.capB = self.capB + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1724 self.capB = self.capB + self.board.len_cap_last() 1725 1725 if nM == 'W': 1726 self.capW = self.capW + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1726 self.capW = self.capW + self.board.len_cap_last() 1727 1727 self.capVar.set('Cap - B: ' + str(self.capB) + ', W: ' + str(self.capW)) 1728 1728 except SGFError: … … 1744 1744 if (c.has_key('B') and c['B'][0]) or (c.has_key('W') and c['W'][0]): 1745 1745 if c.has_key('B'): 1746 self.capB = self.capB - len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1746 self.capB = self.capB - self.board.len_cap_last() 1747 1747 if c.has_key('W'): 1748 self.capW = self.capW - len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1748 self.capW = self.capW - self.board.len_cap_last() 1749 1749 self.capVar.set('Cap - B: ' + str(self.capB) + ', W: ' + str(self.capW)) 1750 1750 self.board.undo() … … 1794 1794 self.displayNode(c) 1795 1795 if c.has_key('B') and c['B'][0]: 1796 self.capB = self.capB + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1796 self.capB = self.capB + self.board.len_cap_last() 1797 1797 if c.has_key('W') and c['W'][0]: 1798 self.capW = self.capW + len(self.board.get_undostack()[len(self.board.get_undostack())-1][2])1798 self.capW = self.capW + self.board.len_cap_last() 1799 1799 self.capVar.set('Cap - B: ' + str(self.capB) + ', W: ' + str(self.capW)) 1800 1800 … … 1830 1830 for p in c['AB']: 1831 1831 if not self.board.play(self.convCoord(p), 'black'): 1832 self.board. get_undostack().append(((20,20), '' ,[]))1832 self.board.undostack_append_pass() 1833 1833 else: self.board.currentColor = self.board.invert(self.board.currentColor) 1834 1834 if c.has_key('AW') and c['AW'][0]: 1835 1835 for p in c['AW']: 1836 1836 if not self.board.play(self.convCoord(p), 'white'): 1837 self.board. get_undostack().append(((20,20), '' ,[]))1837 self.board.undostack_append_pass() 1838 1838 else: self.board.currentColor = self.board.invert(self.board.currentColor) 1839 1839 if c.has_key('AE') and c['AE'][0]: 1840 1840 for p in c['AE']: 1841 1841 if not self.board.remove(self.convCoord(p)): 1842 self.board. get_undostack().append(((20,20), '' ,[]))1842 self.board.undostack_append_pass() 1843 1843 if c.has_key('B') and c['B'][0]: 1844 1844 p = self.convCoord(c['B'][0]) 1845 1845 if not p or not self.board.play(p, 'black'): 1846 self.board. get_undostack().append(((20,20), '' ,[]))1846 self.board.undostack_append_pass() 1847 1847 elif c.has_key('W') and c['W'][0]: 1848 1848 p = self.convCoord(c['W'][0]) 1849 1849 if not p or not self.board.play(p, 'white'): 1850 self.board. get_undostack().append(((20,20), '' ,[]))1850 self.board.undostack_append_pass() 1851 1851 1852 1852 self.displayLabels(c) … … 2736 2736 self.nextButton = Button(navFrame, text='->', command=self.next) 2737 2737 self.boardFrame.bind('<Right>', lambda e, s = self.nextButton: s.invoke()) 2738 # self.board.bind('<Button-5>', lambda e, s = self.nextButton: s.invoke()) # check whether this is OK an Windows! 2738 2739 self.prevButton = Button(navFrame, text='<-', command=self.prev) 2739 2740 self.boardFrame.bind('<Left>', lambda e, s = self.prevButton: s.invoke()) 2741 # self.board.bind('<Button-4>', lambda e, s = self.prevButton: s.invoke()) 2740 2742 self.next10Button = Button(navFrame, text='-> 10', command=self.next10) 2741 2743 self.boardFrame.bind('<Down>', lambda e, s = self.next10Button: s.invoke())
