class TicTacToe
def initialize
@board = Array .new ( 9 ) { | i| "#{i}: " }
puts "Welcome to Tic Tac Toe!"
show_board
@turn = 1
choose_spot
end
def show_board
puts "\n \n "
puts "Player 1 may begin. Please place your mark using the numbers provided on the board."
puts "\n \n "
puts ">>>>>>>>>>>>>>>"
puts "#{@board[0]}|#{@board[1]}|#{@board[2]}|\n \n "
puts "#{@board[3]}|#{@board[4]}|#{@board[5]}|\n \n "
puts "#{@board[6]}|#{@board[7]}|#{@board[8]}|"
puts "<<<<<<<<<<<<<<<"
puts "\n \n "
end
def choose_spot
@player = @turn .odd ? ? "1" : "2"
@board_piece = @turn .odd ? ? "X" : "O"
@turn + = 1 ;
puts "Player #{@player}, (#{@board_piece}). Your turn. Please type a number to put your piece on the board."
@input = gets .chomp .to_i
check_valid_spot
end
def check_valid_spot
loop do
board.each do | i|
if @input .include ?( 0 ..8 )
if i.include ?( " " )
i.replace ( @board_piece)
else
puts "Sorry there's already a piece there! Please try again."
end
else
puts "Sorry that isn't a valid number! Please look at the board and try again."
end
end
end
end
end
game = TicTacToe.new
Y2xhc3MgVGljVGFjVG9lCglkZWYgaW5pdGlhbGl6ZQoJCUBib2FyZCA9IEFycmF5Lm5ldyg5KXt8aXwgIiN7aX06ICAifQoJCXB1dHMgIldlbGNvbWUgdG8gVGljIFRhYyBUb2UhIgoJCXNob3dfYm9hcmQKCQlAdHVybiA9IDEKCQljaG9vc2Vfc3BvdAoJZW5kCgoJZGVmIHNob3dfYm9hcmQKCQlwdXRzICJcblxuIgoJCXB1dHMgIlBsYXllciAxIG1heSBiZWdpbi4gUGxlYXNlIHBsYWNlIHlvdXIgbWFyayB1c2luZyB0aGUgbnVtYmVycyBwcm92aWRlZCBvbiB0aGUgYm9hcmQuIgoJCXB1dHMgIlxuXG4iCgkJcHV0cyAiPj4+Pj4+Pj4+Pj4+Pj4+IgoJCXB1dHMgIiN7QGJvYXJkWzBdfXwje0Bib2FyZFsxXX18I3tAYm9hcmRbMl19fFxuXG4iCgkJcHV0cyAiI3tAYm9hcmRbM119fCN7QGJvYXJkWzRdfXwje0Bib2FyZFs1XX18XG5cbiIKCQlwdXRzICIje0Bib2FyZFs2XX18I3tAYm9hcmRbN119fCN7QGJvYXJkWzhdfXwiCgkJcHV0cyAiPDw8PDw8PDw8PDw8PDw8IgoJCXB1dHMgIlxuXG4iCgllbmQKCglkZWYgY2hvb3NlX3Nwb3QKCQlAcGxheWVyID0gQHR1cm4ub2RkPyA/ICIxIiA6ICIyIgoJCUBib2FyZF9waWVjZSA9IEB0dXJuLm9kZD8gPyAiWCIgOiAiTyIKCQlAdHVybiArPSAxOwoJCXB1dHMgIlBsYXllciAje0BwbGF5ZXJ9LCAoI3tAYm9hcmRfcGllY2V9KS4gWW91ciB0dXJuLiBQbGVhc2UgdHlwZSBhIG51bWJlciB0byBwdXQgeW91ciBwaWVjZSBvbiB0aGUgYm9hcmQuIgoJCUBpbnB1dCA9IGdldHMuY2hvbXAudG9faQoJCWNoZWNrX3ZhbGlkX3Nwb3QKCWVuZAoKCWRlZiBjaGVja192YWxpZF9zcG90CgkJbG9vcCBkbwoJCQlib2FyZC5lYWNoIGRvIHxpfAoJCQkJaWYgQGlucHV0LmluY2x1ZGU/KDAuLjgpCgkJCQkJaWYgaS5pbmNsdWRlPygiICAiKQoJCQkJCQlpLnJlcGxhY2UoQGJvYXJkX3BpZWNlKQoJCQkJCWVsc2UKCQkJCQkJcHV0cyAiU29ycnkgdGhlcmUncyBhbHJlYWR5IGEgcGllY2UgdGhlcmUhIFBsZWFzZSB0cnkgYWdhaW4uIgoJCQkJCWVuZAoJCQkJZWxzZQoJCQkJCXB1dHMgIlNvcnJ5IHRoYXQgaXNuJ3QgYSB2YWxpZCBudW1iZXIhIFBsZWFzZSBsb29rIGF0IHRoZSBib2FyZCBhbmQgdHJ5IGFnYWluLiIKCQkJCWVuZAoJCQllbmQKCQllbmQKCWVuZAplbmQKCmdhbWUgPSBUaWNUYWNUb2UubmV3