m0rse_c0de 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|