1- import {
2- Color ,
3- Check ,
4- GameNode ,
5- GameTree ,
6- Termination ,
7- PlayGameConfig ,
8- } from 'src/types'
1+ import { Color , Check , GameTree , Termination , PlayGameConfig } from 'src/types'
92import { AllStats } from '../useStats'
103import { PlayedGame } from 'src/types/play'
114import { Chess , Piece , SQUARES } from 'chess.ts'
@@ -79,32 +72,36 @@ export const usePlayController = (id: string, config: PlayGameConfig) => {
7972 const [ lastMoveTime , setLastMoveTime ] = useState < number > ( 0 )
8073
8174 const moveList = useMemo (
82- ( ) => controller . gameTree . toMoveArray ( ) ,
83- [ controller . gameTree , treeVersion ] ,
75+ ( ) => controller . tree . toMoveArray ( ) ,
76+ [ controller . tree , treeVersion ] ,
8477 )
8578
8679 const moveTimes = useMemo (
87- ( ) => controller . gameTree . toTimeArray ( ) ,
88- [ controller . gameTree , treeVersion ] ,
80+ ( ) => controller . tree . toTimeArray ( ) ,
81+ [ controller . tree , treeVersion ] ,
8982 )
9083
9184 const game : PlayedGame = useMemo ( ( ) => {
92- const mainLine = controller . gameTree . getMainLine ( )
85+ const mainLine = controller . tree . getMainLine ( )
86+ console . log ( mainLine )
9387 const lastNode = mainLine [ mainLine . length - 1 ]
94- const chess = controller . gameTree . toChess ( )
88+ const turn = lastNode . turn
89+ const chess = controller . tree . toChess ( )
90+
91+ console . log ( 'gme node' , lastNode . fen )
9592
9693 const termination = resigned
9794 ? Math . min ( whiteClock , blackClock ) > 0
9895 ? ( {
99- result : chess . turn ( ) == 'w' ? '0-1' : '1-0' ,
100- winner : chess . turn ( ) == 'w' ? 'black' : 'white' ,
96+ result : turn == 'w' ? '0-1' : '1-0' ,
97+ winner : turn == 'w' ? 'black' : 'white' ,
10198 type : 'resign' ,
10299 } as Termination )
103- : computeTimeTermination ( chess , chess . turn ( ) == 'w' ? 'white' : 'black' )
100+ : computeTimeTermination ( chess , turn == 'w' ? 'white' : 'black' )
104101 : computeTermination ( chess )
105102
106103 const moves = [ ]
107- const rootNode = controller . gameTree . getRoot ( )
104+ const rootNode = controller . tree . getRoot ( )
108105 const rootChess = new Chess ( rootNode . fen )
109106 moves . push ( {
110107 board : rootNode . fen ,
@@ -131,12 +128,11 @@ export const usePlayController = (id: string, config: PlayGameConfig) => {
131128
132129 return {
133130 id,
134- moves,
135- tree : controller . gameTree ,
136131 termination,
137- turn : chess . turn ( ) == 'b' ? 'black' : 'white' ,
132+ tree : controller . tree ,
133+ turn : turn == 'b' ? 'black' : 'white' ,
138134 }
139- } , [ controller . gameTree , treeVersion , resigned , whiteClock , blackClock , id ] )
135+ } , [ controller . tree , treeVersion , resigned , whiteClock , blackClock , id ] )
140136
141137 const toPlay : Color | null = game . termination ? null : game . turn
142138 const playerActive = toPlay == config . player
@@ -228,33 +224,23 @@ export const usePlayController = (id: string, config: PlayGameConfig) => {
228224 whiteClock ,
229225 ] )
230226
231- const addMove = useCallback (
232- ( moveUci : string ) => {
233- const newNode = controller . gameTree . addMoveToMainLine ( moveUci )
234- if ( newNode ) {
235- controller . setCurrentNode ( newNode )
236- // Force re-render by incrementing tree version
237- setTreeVersion ( ( prev ) => prev + 1 )
238- }
239- } ,
240- [ controller . gameTree , controller ] ,
241- )
242-
243227 const addMoveWithTime = useCallback (
244228 ( moveUci : string , moveTime : number ) => {
245- const newNode = controller . gameTree . addMoveToMainLine ( moveUci , moveTime )
229+ const newNode = controller . tree . addMoveToMainLine ( moveUci , moveTime )
246230 if ( newNode ) {
231+ console . log ( 'old node' , controller . currentNode . fen )
232+ console . log ( 'new move' , moveUci )
233+ console . log ( 'new node' , newNode . fen )
247234 controller . setCurrentNode ( newNode )
248- // Force re-render by incrementing tree version
249235 setTreeVersion ( ( prev ) => prev + 1 )
250236 }
251237 } ,
252- [ controller . gameTree , controller ] ,
238+ [ controller . tree , controller ] ,
253239 )
254240
255241 const reset = ( ) => {
256242 const newTree = new GameTree ( config . startFen || nullFen )
257- controller . gameTree = newTree
243+ controller . tree = newTree
258244 controller . setCurrentNode ( newTree . getRoot ( ) )
259245 setResigned ( false )
260246 setLastMoveTime ( 0 )
@@ -278,7 +264,7 @@ export const usePlayController = (id: string, config: PlayGameConfig) => {
278264
279265 return {
280266 game,
281- gameTree : controller . gameTree ,
267+ gameTree : controller . tree ,
282268 currentNode : controller . currentNode ,
283269 player : config . player ,
284270 playType : config . playType ,
@@ -305,7 +291,6 @@ export const usePlayController = (id: string, config: PlayGameConfig) => {
305291 orientation : controller . orientation ,
306292 setOrientation : controller . setOrientation ,
307293
308- addMove,
309294 addMoveWithTime,
310295 setResigned,
311296 reset,
0 commit comments