-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.rb
115 lines (101 loc) · 2.82 KB
/
index.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
$example_table = {
1 => "1",
2 => "2",
3 => "3",
4 => "4",
5 => "5",
6 => "6",
7 => "7",
8 => "8",
9 => "9"
}
$game_table = {
1 => " ",
2 => " ",
3 => " ",
4 => " ",
5 => " ",
6 => " ",
7 => " ",
8 => " ",
9 => " "
}
$combinations_to_win =
[[$game_table[1], $game_table[2], $game_table[3]],
[$game_table[4], $game_table[5], $game_table[9]],
[$game_table[1], $game_table[4], $game_table[7]],
[$game_table[4], $game_table[5], $game_table[6]],
[$game_table[7], $game_table[8], $game_table[9]],
[$game_table[7], $game_table[5], $game_table[3]],
[$game_table[2], $game_table[5], $game_table[8]],
[$game_table[3], $game_table[6], $game_table[9]]]
$changeRole = true
def print_game_table
puts " "
puts " #{$game_table[1]} | #{$game_table[2]} | #{$game_table[3]} "
puts "---|---|---"
puts " #{$game_table[4]} | #{$game_table[5]} | #{$game_table[6]} "
puts "---|---|---"
puts " #{$game_table[7]} | #{$game_table[8]} | #{$game_table[9]} "
puts "---|---|---"
puts " "
end
def print_example_table
puts " "
puts " #{$example_table[1]} | #{$example_table[2]} | #{$example_table[3]} "
puts "---|---|---"
puts " #{$example_table[4]} | #{$example_table[5]} | #{$example_table[6]} "
puts "---|---|---"
puts " #{$example_table[7]} | #{$example_table[8]} | #{$example_table[9]} "
puts "---|---|---"
puts " "
end
def any_winner?
$combinations_to_win.each do |combination|
if combination[0] == "O" && combination[1] == "O" && combination[2] == "O"
puts "FATALLITY, PLAYER TWO WINS"
exit
elsif combination[0] == "X" && combination[1] == "X" && combination[2] == "X"
puts "FATALLITY, PLAYER ONE WINS"
exit
end
end
end
puts "Welcome to my Tic Tac Toe game!"
puts "Here is a map of my tic tac toe game, just type the square number to start playing! :D"
print_example_table
puts "Player 1 starts, please type a number from 1 to 9"
puts "If you want to quit the game, just tye 'q'"
puts "If you want to print the first table again, just type 'r'"
puts "PLAYER ONE:"
print_game_table
while true
user_choice = gets.chomp.downcase
$game_table.each do |choice, square|
if user_choice.to_i == choice.to_i
if square == " "
puts "You have selected position #{user_choice}"
if($changeRole == true)
puts "PLAYER TWO:"
square.sub!(" ", "X")
$changeRole = false
else
puts "PLAYER ONE:"
square.sub!(" ", "O")
$changeRole = true
end
print_game_table
any_winner?
else
puts "Not this one, take another one"
end
elsif user_choice == "q"
puts "Oh no... What have you done!!! you selected #{user_choice}!!"
exit
elsif user_choice == "r"
puts "Here is the table again: "
print_example_table
break
end
end
end