Sha256: f3e61591e725d98ed043be2ba0e4687dc000af921ca3759584d946c094b075bf

Contents?: true

Size: 596 Bytes

Versions: 1

Compression:

Stored size: 596 Bytes

Contents

# frozen_string_literal: true

module Checkers
  module Game
    class Engine
      def initialize(state, ai_engine)
        @state = state
        @ai = ai_engine
      end

      def play
        return if @state.winner || @state.tie

        if @state.turn == :ai
          new_board = @ai.next_board(@state.board)

          turn = if new_board.jumped
                   new_board.any_jump_moves?(player: :ai) ? :ai : :human
                 else
                   :human
                 end

          @state.set_state(board: new_board, turn: turn)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
checkers-game-0.1.0 lib/checkers/game/engine.rb