52 lines
1.1 KiB
Ruby
52 lines
1.1 KiB
Ruby
module GameBase
|
|
def initialize(game_name = "(unspecified game)")
|
|
puts "Welcome to #{game_name}!"
|
|
puts "Player 1, what is your name?"
|
|
@player_one_name = gets.chomp
|
|
|
|
puts "Player 2, what is your name?"
|
|
@player_two_name = gets.chomp
|
|
|
|
@playerOne = Player.new(@player_one_name)
|
|
@playerTwo = Player.new(@player_two_name)
|
|
@statusMessage = ""
|
|
@board = Board.new
|
|
@winner = nil
|
|
@turn = 1
|
|
end
|
|
|
|
def to_s
|
|
print "
|
|
Player one: #{@playerOne.name}\n
|
|
Player two: #{@playerTwo.name}\n
|
|
Current turn: #{@turn}\n
|
|
#{@statusMessage}
|
|
#{@board.to_s}
|
|
"
|
|
end
|
|
|
|
def play
|
|
until @winner
|
|
self.turn
|
|
end
|
|
|
|
@statusMessage = "#{@statusMessage + "\nPress 'x' to exit or 'a' to play again."}"
|
|
print self.to_s
|
|
|
|
if gets.chomp == "a"
|
|
@board = Board.new
|
|
@winner = nil
|
|
@statusMessage = ""
|
|
@turn = 1
|
|
self.play()
|
|
elsif gets.chomp != "x"
|
|
@statusMessage = "Please provide a valid input"
|
|
print self.to_s
|
|
end
|
|
end
|
|
|
|
def turn
|
|
fail NotImplementedError, "Game must implement a 'turn' method"
|
|
end
|
|
end
|