Renecto commited on
Commit
606d9f2
·
verified ·
1 Parent(s): c4c68cc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -14
app.py CHANGED
@@ -79,25 +79,37 @@ def board_to_image(board, state):
79
  return img
80
 
81
  def click_handler(evt, state):
 
 
 
82
  board, player, lu, la, history = state
83
- x,y=evt.index; cell=360//8; c,r=int(x//cell),int((y-cell*2)//cell)
84
- if 0<=r<8 and 0<=c<8 and not is_game_over(board):
85
- if apply_move(board,r,c,player): lu,player=( (r,c), -player )
86
- # after user
87
- yield board_to_image(board,(board,player,lu,la,history)),(board,player,lu,la,history)
88
- # if game over
 
 
 
 
89
  if is_game_over(board):
90
- history.append(f"Game {len(history)+1}: " + ("Draw" if count_score(board)[0]==count_score(board)[1] else ("Black" if count_score(board)[0]>count_score(board)[1] else "White")))
91
- yield board_to_image(board,(board,player,lu,la,history)),(board,player,lu,la,history)
 
92
  return
93
- # AI thinking
94
- yield board_to_image(board,(board,player,lu,la,history)),(board,player,lu,la,history)
95
  time.sleep(2)
96
- ai_mv=choose_move(board,player)
97
- if ai_mv: apply_move(board,ai_mv[0],ai_mv[1],player); la,player=( ai_mv, -player )
98
- yield board_to_image(board,(board,player,lu,la,history)),(board,player,lu,la,history)
 
 
 
99
 
100
- def reset_handler():
 
101
  return initialize_board(),-1,None,None,[]
102
 
103
  with gr.Blocks() as demo:
 
79
  return img
80
 
81
  def click_handler(evt, state):
82
+ # Ensure state initialized
83
+ if state is None:
84
+ state = (initialize_board(), -1, None, None, [])
85
  board, player, lu, la, history = state
86
+ x, y = evt.index
87
+ cell = 360 // 8
88
+ c, r = int(x // cell), int((y - cell * 2) // cell)
89
+ # Player move
90
+ if 0 <= r < 8 and 0 <= c < 8 and not is_game_over(board):
91
+ if apply_move(board, r, c, player):
92
+ lu, player = (r, c), -player
93
+ # Update after player
94
+ yield board_to_image(board, (board, player, lu, la, history)), (board, player, lu, la, history)
95
+ # Check end
96
  if is_game_over(board):
97
+ winner = "Draw" if count_score(board)[0] == count_score(board)[1] else ("Black" if count_score(board)[0] > count_score(board)[1] else "White")
98
+ history.append(f"Game {len(history)+1}: {winner}")
99
+ yield board_to_image(board, (board, player, lu, la, history)), (board, player, lu, la, history)
100
  return
101
+ # AI thinking indicator
102
+ yield board_to_image(board, (board, player, lu, la, history)), (board, player, lu, la, history)
103
  time.sleep(2)
104
+ # AI move
105
+ ai_mv = choose_move(board, player)
106
+ if ai_mv:
107
+ apply_move(board, ai_mv[0], ai_mv[1], player)
108
+ la, player = ai_mv, -player
109
+ yield board_to_image(board, (board, player, lu, la, history)), (board, player, lu, la, history)
110
 
111
+ # def reset_handler placeholders for replacement
112
+ #def reset_handler():
113
  return initialize_board(),-1,None,None,[]
114
 
115
  with gr.Blocks() as demo: