Sha256: aea7adef6273892573315b21d95f9f8f8caa0649ee4fea31865f60ac39493eb7

Contents?: true

Size: 1.15 KB

Versions: 5

Compression:

Stored size: 1.15 KB

Contents

# encoding: UTF-8
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.to_s}"
    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.to_s}"
    logger.debug "Felder"
    gamestate.board.field_list.each do |f|
      if !f.empty?
        logger.debug "Feld (#{f.x}, #{f.y}) #{f.obstructed ? 'OO' : f.pieces.last.to_s}"
      end
    end
    possible_moves = GameRuleLogic.possible_moves(gamestate)
    logger.debug "#{possible_moves.size} moegliche Zuege gefunden"
    possible_moves.sample
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
software_challenge_client-20.2.4 example/client.rb
software_challenge_client-20.2.3 example/client.rb
software_challenge_client-20.2.2 example/client.rb
software_challenge_client-20.2.1 example/client.rb
software_challenge_client-20.2.0 example/client.rb