-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhangman.rb
53 lines (45 loc) · 833 Bytes
/
hangman.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
class Hangman
def initialize answer
@answer = answer!
@misses_remaining = 6
@guessed = []
end
attr_reader :misses_remaining
def finished?
won? || lost?
end
def board
result = ""
@answer.each_char do |char|
if @guessed.include?(char)
result += char
else
result += "_"
end
result
end
def guess(letter)
letter.downcase!
#found = @answer.include?(letter)
#unless @guessed << letter
#misses_remaining -= 1 unless found
#end
unless @guessed.include?(letter)
@guessed << letter
if @answer.include?(letter)
true
else
@misses_remaining -= 1
false
end
end
def available_letters
('a'..'z').to_a - @quessed
end
def won?
!board.include?("_")
end
def lost?
@misses_remaining.zero?
end
end