m0rse_c0de 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/m0rse.rb +3 -0
- data/lib/teacher/hangman.rb +132 -0
- data/lib/teacher/teacher.rb +16 -7
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38e09f2a0a166f1402cc51456d679030145bd6422a8ec2b8fa3b08e6bfe6b682
|
4
|
+
data.tar.gz: 494b61d73f0ff7194a697f08985f42cece88605fcc4a0de312ce2bbfb2c8aba7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f1d986feedeeda5ee5db6408855d72b6b577c8a57be9bdcddef4e573e5f8f608b3f54b2bd9261c2e8fdcc30ee61b665c06ada1cc756b340ce3bb024b7b6ff40
|
7
|
+
data.tar.gz: 39e7f2e4e4a50b265fe998737352ee47615b6308358f825db01fc56b9e1aad32cf2c341834315a15ade6271e58658326c2953df424bf1fceec7e01414ddd2478
|
data/lib/m0rse.rb
CHANGED
@@ -0,0 +1,132 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module H4ngman
|
4
|
+
|
5
|
+
class Hangman
|
6
|
+
@hangman_sprite5 = '''
|
7
|
+
---
|
8
|
+
|
|
9
|
+
( )
|
10
|
+
|
11
|
+
|
12
|
+
'''
|
13
|
+
@hangman_sprite4 = '''
|
14
|
+
---
|
15
|
+
|
|
16
|
+
( )
|
17
|
+
I
|
18
|
+
|
19
|
+
'''
|
20
|
+
|
21
|
+
@hangman_sprite3 = '''
|
22
|
+
---
|
23
|
+
|
|
24
|
+
( )
|
25
|
+
-I
|
26
|
+
|
27
|
+
'''
|
28
|
+
|
29
|
+
@hangman_sprite2 = '''
|
30
|
+
---
|
31
|
+
|
|
32
|
+
( )
|
33
|
+
-I-
|
34
|
+
|
35
|
+
'''
|
36
|
+
|
37
|
+
@hangman_sprite1 = '''
|
38
|
+
---
|
39
|
+
|
|
40
|
+
( )
|
41
|
+
-I-
|
42
|
+
/
|
43
|
+
|
44
|
+
'''
|
45
|
+
|
46
|
+
@hangman_sprite0 = '''
|
47
|
+
---
|
48
|
+
|
|
49
|
+
( )
|
50
|
+
-I-
|
51
|
+
/ \
|
52
|
+
|
53
|
+
'''
|
54
|
+
|
55
|
+
def self.finish
|
56
|
+
if @remaining_credits == 0
|
57
|
+
puts "GAME OVER, YOU LOSE :("
|
58
|
+
elsif
|
59
|
+
puts "YOU WON! CONGRATS"
|
60
|
+
end
|
61
|
+
|
62
|
+
puts "the word was #{Morse.text_to_morse(@keyword)}"
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.choose_word(list_)
|
67
|
+
@keyword = list_.sample
|
68
|
+
puts "Your word has been selected!"
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.generate_mystery_text
|
72
|
+
@mystery_text = ("?"*@keyword.length).split(//)
|
73
|
+
end
|
74
|
+
|
75
|
+
def self.handle_mystery_text
|
76
|
+
begin
|
77
|
+
@mystery_text = @mystery_text.split(//)
|
78
|
+
rescue
|
79
|
+
end
|
80
|
+
matching_indexes = @keyword.split(//).each_index.select { |i| @keyword[i] == @user_answer }
|
81
|
+
for index in matching_indexes
|
82
|
+
@mystery_text.delete_at index
|
83
|
+
@mystery_text.insert(index, @user_answer)
|
84
|
+
end
|
85
|
+
@mystery_text = @mystery_text.join()
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.display
|
89
|
+
sprite_dict = {5 => @hangman_sprite5, 4 => @hangman_sprite4, 3 => @hangman_sprite3, 2 =>@hangman_sprite2, 1 =>@hangman_sprite1, 0 => @hangman_sprite0}
|
90
|
+
self.handle_mystery_text
|
91
|
+
puts @mystery_text
|
92
|
+
puts sprite_dict[@remaining_credits]
|
93
|
+
puts "You have #{@remaining_credits} tries left."
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.main
|
97
|
+
self.generate_mystery_text
|
98
|
+
@correct_guesses = []
|
99
|
+
@remaining_credits = 6
|
100
|
+
while @remaining_credits != 0
|
101
|
+
print "Try to guess the word or a character that the word consists! (in morse) --> "
|
102
|
+
@user_answer = Morse.morse_to_text(gets.chomp.strip)
|
103
|
+
system('clear')
|
104
|
+
system('cls')
|
105
|
+
|
106
|
+
if @keyword.include?(@user_answer)
|
107
|
+
puts "#{Morse.text_to_morse(@user_answer)} is an accurate guess!"
|
108
|
+
if @user_answer == @keyword
|
109
|
+
break
|
110
|
+
else
|
111
|
+
@correct_guesses.append(@user_answer)
|
112
|
+
end
|
113
|
+
|
114
|
+
elsif not @keyword.include?(@user_answer) or @user_answer == ''
|
115
|
+
puts "#{Morse.text_to_morse(@user_answer)} isn't an accurate guess."
|
116
|
+
@remaining_credits = @remaining_credits - 1
|
117
|
+
end
|
118
|
+
|
119
|
+
self.display
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
self.finish
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
|
131
|
+
|
132
|
+
|
data/lib/teacher/teacher.rb
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
module Te4cher
|
3
3
|
class Teacher
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
@word_list = ['Ruby', 'Red', 'Awesome', 'Burzum', 'Help', 'Blood', 'Emergency', 'Death', 'Morse', 'SOS', 'SQL', 'Wreck', 'Ship', 'You', 'Us', 'America', 'Boat', 'Hello', 'Amazed', 'Python', 'Life', 'acme', 'antiseptically', 'boudoir', 'cesium', 'circumscribing', 'collegians', 'confessionals', 'erectly', 'finagler', 'hostelries', 'howdah', 'impetigo', 'lampposts', 'lisle', 'mestizos', 'overcooked', 'slippage', 'slouchiest', 'strumpet', 'terabyte', 'transfiguration', 'twill', 'undersold', 'unsheathed', 'whelps', 'adlumidine', 'alinasal', 'aramina', 'begreen', 'bembixes', 'boundly', 'cannibalean', 'chondrinous', 'colickiest', 'cullas', 'hartake', 'interchangings', 'marquito', 'miscegenationists', 'peremption', 'quesitive', 'ragnarok', 'reconciliated', 'sepsine', 'sickless', 'sigillaria', 'staphyledema', 'undelible', 'unruth', 'yaourti', 'avoid', 'bottle', 'briefly', 'bug', 'dedicated', 'establish', 'everything', 'goes', 'harm', 'inferior', 'killed', 'leader', 'noticed', 'quicker', 'recovered', 'reflects', 'retain', 'self', 'should', 'signal', 'simultaneously', 'stayed', 'tomorrow', 'virtue', 'weird', 'adlumidine', 'alinasal', 'aramina', 'begreen', 'bembixes', 'boundly', 'cannibalean', 'chondrinous', 'colickiest', 'cullas', 'hartake', 'interchangings', 'marquito', 'miscegenationists', 'peremption', 'quesitive', 'ragnarok', 'reconciliated', 'sepsine', 'sickless', 'sigillaria', 'staphyledema', 'undelible', 'unruth', 'yaourti'] #todo: complete
|
6
|
+
|
7
|
+
def self.start_practice
|
8
8
|
puts "PRACTICE MODE STARTED"
|
9
9
|
|
10
10
|
while true
|
11
|
-
random_word = @
|
11
|
+
random_word = @word_list.sample.upcase!
|
12
12
|
correct_answer = Morse.text_to_morse(random_word)
|
13
13
|
puts "translate ---> #{random_word}"
|
14
14
|
print 'Your answer: '
|
@@ -17,13 +17,19 @@ module Te4cher
|
|
17
17
|
puts 'Correct! Moving to the next word...'
|
18
18
|
sleep(2)
|
19
19
|
else
|
20
|
-
puts "Wrong! The correct answer was: #{correct_answer}
|
20
|
+
puts "Wrong! The correct answer was: #{correct_answer} moving to the next word..."
|
21
21
|
sleep(2)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
def self.start_hangman
|
27
|
+
Hangman.choose_word(@word_list)
|
28
|
+
Hangman.main
|
29
|
+
end
|
30
|
+
|
26
31
|
def self.show_hashes
|
32
|
+
print @word_list
|
27
33
|
for char, morse in @@asciitomorse
|
28
34
|
print char, ' --> ', morse, ' '
|
29
35
|
end; 'Morse Alphabet'
|
@@ -34,7 +40,8 @@ module Te4cher
|
|
34
40
|
greeting = '''
|
35
41
|
|
36
42
|
Welcome to teaching mode! If you want to practice: input PRACTICE,
|
37
|
-
if you want to view the Morse alphabet input ALPHABET
|
43
|
+
if you want to view the Morse alphabet input ALPHABET,
|
44
|
+
if you want to play hangman in Morse; input HANGMAN.
|
38
45
|
|
39
46
|
'''
|
40
47
|
|
@@ -47,6 +54,8 @@ if you want to view the Morse alphabet input ALPHABET.
|
|
47
54
|
|
48
55
|
elsif @choice == 'ALPHABET'
|
49
56
|
self.show_hashes
|
57
|
+
elsif @choice == 'HANGMAN'
|
58
|
+
self.start_hangman
|
50
59
|
end
|
51
60
|
end
|
52
61
|
|
@@ -58,4 +67,4 @@ end
|
|
58
67
|
|
59
68
|
|
60
69
|
|
61
|
-
|
70
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: m0rse_c0de
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Burzum
|
@@ -36,6 +36,7 @@ files:
|
|
36
36
|
- lib/sound/beeps/dah.wav
|
37
37
|
- lib/sound/beeps/dit.wav
|
38
38
|
- lib/sound/sound.rb
|
39
|
+
- lib/teacher/hangman.rb
|
39
40
|
- lib/teacher/teacher.rb
|
40
41
|
homepage:
|
41
42
|
licenses: []
|