diff options
| -rw-r--r-- | board.rb | 5 | ||||
| -rw-r--r-- | main.rb | 10 | ||||
| -rw-r--r-- | player.rb | 2 | ||||
| -rw-r--r-- | spec/board_spec.rb | 3 | ||||
| -rw-r--r-- | spec/player_spec.rb | 8 | 
5 files changed, 27 insertions, 1 deletions
| @@ -1,4 +1,6 @@  class Board +  attr_accessor :current_player +      def initialize      @board = [        ['.', '.', '.'], @@ -29,4 +31,7 @@ class Board    def update_cell(row_index, column_index, value)      @board[row_index][column_index] = value    end +   +  def winner? +  end  end @@ -6,9 +6,17 @@ player_1 = Player.new(Player::INSIGNIAS[:x], board)  player_2 = Player.new(Player::INSIGNIAS[:o], board)  board.current_player = player_1 -until board.winner +until board.winner? +  puts board.render +  puts +   +  print "Player #{board.current_player.insignia} move - " \ +    "Enter coordinates (e.g. 0,2): " +      coordinates = gets.chomp    coordinates = board.transform_coordinates(coordinates)    board.current_player.move(coordinates) +   +  board.current_player = board.current_player == player_1 ? player_2 : player_1  end @@ -4,6 +4,8 @@ class Player      :o => 'O'    } +  attr_reader :insignia +      def initialize(insignia, board)      @insignia = insignia      @board = board diff --git a/spec/board_spec.rb b/spec/board_spec.rb index ae1bdd0..09f50e1 100644 --- a/spec/board_spec.rb +++ b/spec/board_spec.rb @@ -57,4 +57,7 @@ EOF        @board.instance_variable_get(:@board)[1][2].must_equal value      end    end +   +  describe '#winner?' do +  end  end diff --git a/spec/player_spec.rb b/spec/player_spec.rb index d33ac05..11bfd35 100644 --- a/spec/player_spec.rb +++ b/spec/player_spec.rb @@ -13,6 +13,14 @@ describe Player do      end    end +  describe '#insignia' do +    it 'must be the correct insignia' do +      insignia = Player::INSIGNIAS[:o] +      player = Player.new(insignia, Board.new) +      player.insignia.must_equal insignia +    end +  end +      describe '#move' do      before do        @board = Board.new | 
