diff --git a/src/game_manager.gd b/src/game_manager.gd index 12d2d29..eb31770 100644 --- a/src/game_manager.gd +++ b/src/game_manager.gd @@ -10,7 +10,7 @@ var _current_player: GamePlayer func emit_player_changed() -> void: - player_changed.emit.bind(_current_player) + player_changed.emit(_current_player) func reset() -> void: @@ -31,19 +31,32 @@ func _check_game_end() -> bool: return true -func make_move(board_position: BoardPosition) -> Array[BoardPosition]: +func _update_board(board_position: BoardPosition) -> void: var cell_status := CellStatus.from_game_player(_current_player) _board.add(board_position, cell_status) + +func _update_board_history(board_position: BoardPosition) -> Array[BoardPosition]: var disappear_positions := _position_history.append(board_position) if disappear_positions[0].is_valid(): _board.add_empty(disappear_positions[0]) + return disappear_positions + + +func _update_game_state() -> void: if not _check_game_end(): + Log.d("change!") _current_player = _current_player.next() emit_player_changed() + +func make_move(board_position: BoardPosition) -> Array[BoardPosition]: + _update_board(board_position) + var disappear_positions := _update_board_history(board_position) + _update_game_state() + return disappear_positions diff --git a/src/main.gd b/src/main.gd index c72c8e1..5e4aef8 100644 --- a/src/main.gd +++ b/src/main.gd @@ -23,10 +23,10 @@ func _ready() -> void: func disappear_cells(positions: Array[BoardPosition]) -> void: - if positions[0].is_valid(): - _ui_manager.clear_cell(positions[0]) - if positions[1].is_valid(): - _ui_manager.fade_cell(positions[1]) + for i in range(2): + if positions[i].is_valid(): + var action := _ui_manager.clear_cell if i == 0 else _ui_manager.fade_cell + action.call(positions[i]) func _on_cell_clicked(position: BoardPosition) -> void: