-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgameplay.rb
97 lines (75 loc) · 3.37 KB
/
gameplay.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
module GuesserSide
def self.gameplay(board, guesser, setter, player_wins)
code = setter.set_code
board.color_rows.each_index do |current_row| # Each round == each row on the board
puts "\n#{guesser.name}, you have #{board.color_rows.length - current_row} attempts remaining to guess the 4 digit code"
puts ""
guess = guesser.make_guess
positions_correct, numbers_correct = GameLogic.match?(guess, code)
if positions_correct == 4
puts "#{guesser.name} broke the code! You won the game and beat the computer!"
puts " Code => #{code.flatten}"
puts ""
player_wins = true
break
end
board.color_rows[current_row] = guess
board.peg_rows[current_row][0] = "Exact = #{positions_correct}"
board.peg_rows[current_row][1] = "Present = #{numbers_correct}"
GameLogic.display_board(board.color_rows, board.peg_rows, current_row)
end
unless player_wins
sleep(1.5)
puts " You lost to the computer!"
puts " The computer's code was => #{code.flatten}"
puts ""
end
end
end
module SetterSide
def self.gameplay(board, guesser, setter, player_wins)
code = setter.set_code
board.color_rows.each_index do |current_row| # Each round == each row on the board
puts "_____________________________________________________________________"
sleep(3.5)
puts " \n#{guesser.name}, has #{board.color_rows.length - current_row} attempts remaining to guess your 4 digit code."
sleep(3)
puts " It's guessing! ..."
sleep(1)
puts " ....."
sleep(0.5)
puts " ....."
sleep(0.5)
puts " ....."
guess = guesser.make_guess
sleep(2)
puts " \nMr.Computer: 'My guess for row #{current_row + 1} is ..."
sleep(1)
puts " #{guess}"
sleep(3)
exact_matches, present_matches, no_matches = GameLogic.match?(guess, code)
if exact_matches == 4
puts " \nMr.Computer guessed your code => #{code.flatten}"
sleep(1.5)
puts " YOU LOSE!"
puts ""
player_wins = false
break
end
board.color_rows[current_row] = guess
board.peg_rows[current_row][0] = "Exact = #{exact_matches}"
board.peg_rows[current_row][1] = "Present = #{present_matches}"
GameLogic.display_board(board.color_rows, board.peg_rows, current_row)
puts "_____________________________________________________________________"
puts " Your code => #{code}"
end
if player_wins != false
puts "_____________________________________________________________________"
sleep(2)
puts "\n You beat the computer with your code! => #{code.flatten}"
sleep(0.5)
puts " CONGRATS WINNER!"
puts ""
end
end
end