Sha256: d0f9d659f7d0a7fb0b86fb072e7dd0c7cf1009d25e6f62214d5146f30656ea73

Contents?: true

Size: 1.04 KB

Versions: 9

Compression:

Stored size: 1.04 KB

Contents

# encoding: UTF-8
# frozen_string_literal: true
require 'software_challenge_client'

# This is an example of a client playing the game using the software challenge
# gem.
class Client < ClientInterface
  include Logging

  attr_accessor :gamestate

  def initialize(log_level)
    logger.level = log_level
    logger.info 'Einfacher Spieler wurde erstellt.'
  end

  # gets called, when it's your turn
  def move_requested
    logger.info "Spielstand: #{gamestate.points_for_player(gamestate.current_player)} - #{gamestate.points_for_player(gamestate.other_player)}"
    logger.debug "Board: #{gamestate.board}"
    move = best_move
    logger.debug "Zug gefunden: #{move}" unless move.nil?
    move
  end

  def best_move
    # gamestate.board.add_field(Field.new(5, 0))
    logger.debug "Berechne zuege fuer Board #{gamestate.board}"

    # all possible moves can't be calculated in under two seconds
    possible_moves = GameRuleLogic.possible_moves(gamestate)
    logger.debug "#{possible_moves.size} moegliche Zuege gefunden"
    possible_moves.sample
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
software_challenge_client-22.1.0.1 example/client.rb
software_challenge_client-22.1.0 example/client.rb
software_challenge_client-22.0.3 example/client.rb
software_challenge_client-22.0.2 example/client.rb
software_challenge_client-21.2.0 example/client.rb
software_challenge_client-21.1.0 example/client.rb
software_challenge_client-21.0.2 example/client.rb
software_challenge_client-21.0.1 example/client.rb
software_challenge_client-21.0.0 example/client.rb