learn-japanese 0.2.0 → 0.4.0
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/README.md +8 -7
- data/bin/choose-answer-game +13 -2
- data/bin/short-answer-game +13 -2
- data/bin/sounds-to-hiragana.rb +30 -0
- data/lib/learn-japanese/data/words.yaml +19 -0
- data/lib/learn-japanese/dictionary.rb +12 -0
- data/lib/learn-japanese/game/choose-answer-game.rb +5 -2
- data/lib/learn-japanese/game/short-answer-game.rb +6 -3
- data/lib/learn-japanese/hiragana.rb +28 -0
- data/lib/learn-japanese/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adb7cea3414af1cbe9ef81818791c40ec732a63a9edb891872cad1fc4517dd59
|
4
|
+
data.tar.gz: bd1478f589978af24a594c822eb6cbac1aa255169e51e4e38ff002ce87d9a7fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 503a7cd0dad0f19a95dad87f5c01375c394bbde5c4c1e13baad05a9f2932021cd52829f1497c7e3861706781e068008732dd537e10c8c484e1d81efb2d6b68be
|
7
|
+
data.tar.gz: b1773cf907e47823abec344e298bde05a0a8ed5251c7d22934382bbb1c6726780c48f2aaa005ab77ef4521329443282f4f501117ec4a54c9aa961f190a63286d
|
data/README.md
CHANGED
@@ -1,21 +1,22 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
UNDER DEVELOPMENT!!!
|
4
|
-
```
|
2
|
+
[](https://badge.fury.io/rb/learn-japanese)
|
5
3
|
|
6
4
|
# Aprender japonés
|
7
5
|
|
8
|
-
`
|
6
|
+
`learn-japanese` es un programa Ruby de licencia libre para ayudar a aprender el japonés.
|
9
7
|
De momento, sólo se está empezando a implementar la funcionalidad para aprender el Silabario Hiragana, pero poco a poco irá creciendo a medida que yo mismo aprenda más japonés.
|
10
8
|
|
11
9
|
Para instalar el programa:
|
12
10
|
1. Debes tener Ruby instalado en tu equipo.
|
13
|
-
2. Abrir un terminal y ejecutar `sudo gem install
|
11
|
+
2. Abrir un terminal y ejecutar `sudo gem install learn-japanese`, para instalar la herramienta.
|
14
12
|
|
15
13
|
## Modo de Uso
|
16
14
|
|
17
|
-
|
18
|
-
|
15
|
+
Abrir un terminal
|
16
|
+
* Ejecutar `short-answer-game`, para el juego de preguntas donde debemos escribir la respuesta.
|
17
|
+
* Ejecutar `choose-answer-game`, para el juego de preguntas donde debemos elegir la respuesta correcta.
|
18
|
+
|
19
|
+
> NOTA: Para aumentar la dificultad haremos `short-answer-game NUMBER`, donde NUMBER será un valor entre 1-4 por el momento.
|
19
20
|
|
20
21
|
# Silabario japonés
|
21
22
|
|
data/bin/choose-answer-game
CHANGED
@@ -1,8 +1,19 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
3
2
|
|
3
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
4
4
|
require 'learn-japanese/game/choose-answer-game'
|
5
5
|
|
6
|
-
|
6
|
+
def get_level
|
7
|
+
level = ARGV.first.to_i
|
8
|
+
|
9
|
+
if level.zero?
|
10
|
+
name = File.basename(__FILE__)
|
11
|
+
puts "Usage: #{name} [LEVEL] # LEVEL is [1,2,3,4]"
|
12
|
+
exit 0
|
13
|
+
end
|
14
|
+
level
|
15
|
+
end
|
16
|
+
|
17
|
+
level = get_level
|
7
18
|
ChooseAnswerGame.show_help(level)
|
8
19
|
ChooseAnswerGame.new(level).run
|
data/bin/short-answer-game
CHANGED
@@ -1,8 +1,19 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
3
2
|
|
3
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
4
4
|
require 'learn-japanese/game/short-answer-game'
|
5
5
|
|
6
|
-
|
6
|
+
def get_level
|
7
|
+
level = ARGV.first.to_i
|
8
|
+
|
9
|
+
if level.zero?
|
10
|
+
name = File.basename(__FILE__)
|
11
|
+
puts "Usage: #{name} [LEVEL] # LEVEL is [1,2,3,4]"
|
12
|
+
exit 0
|
13
|
+
end
|
14
|
+
level
|
15
|
+
end
|
16
|
+
|
17
|
+
level = get_level
|
7
18
|
ShortAnswerGame.show_help(level)
|
8
19
|
ShortAnswerGame.new(level).run
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
4
|
+
require 'learn-japanese/hiragana'
|
5
|
+
require 'learn-japanese/dictionary'
|
6
|
+
require 'colorize'
|
7
|
+
|
8
|
+
puts "[ Sounds to Hiragana ] Example: a i => あい (amor - ái)".white
|
9
|
+
|
10
|
+
def sound_to_hiragana
|
11
|
+
print " Write sounds ? ".light_yellow
|
12
|
+
sounds = gets.chomp.split
|
13
|
+
hiraganas = Hiragana.all
|
14
|
+
|
15
|
+
hiragana_array = sounds.map { hiraganas[_1.to_sym] || '*' }
|
16
|
+
hiragana = hiragana_array.join('')
|
17
|
+
|
18
|
+
words = Dictionary.new.words
|
19
|
+
word = (words.select { _1["hiragana"] == hiragana})[0] || {'spanish': '?', 'sounds': '?'}
|
20
|
+
|
21
|
+
puts " Hiragana => #{hiragana}".cyan
|
22
|
+
puts " Spanish => #{word["spanish"]}".cyan
|
23
|
+
puts " Pronounce => #{word["sounds"]}".cyan
|
24
|
+
|
25
|
+
return false if sounds.size.zero?
|
26
|
+
true
|
27
|
+
end
|
28
|
+
|
29
|
+
while sound_to_hiragana
|
30
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
- sounds: e
|
3
|
+
hiragana: え
|
4
|
+
spanish: pintura
|
5
|
+
- sounds: ái
|
6
|
+
hiragana: あい
|
7
|
+
spanish: amor
|
8
|
+
- sounds: áo
|
9
|
+
hiragana: あお
|
10
|
+
spanish: azul
|
11
|
+
- sounds: ié
|
12
|
+
hiragana: いえ
|
13
|
+
spanish: casa
|
14
|
+
- sounds: íi
|
15
|
+
hiragana: いい
|
16
|
+
spanish: bien
|
17
|
+
- sounds: ué
|
18
|
+
hiragana: うえ
|
19
|
+
spanish: arriba
|
@@ -5,13 +5,16 @@ require_relative '../hiragana'
|
|
5
5
|
|
6
6
|
class ChooseAnswerGame
|
7
7
|
|
8
|
-
def initialize(level=1)
|
8
|
+
def initialize(level=1, max=10)
|
9
9
|
@level = level
|
10
10
|
@score = 1
|
11
|
-
@max_score =
|
11
|
+
@max_score = max
|
12
12
|
|
13
13
|
@silabario = Hiragana.group1
|
14
14
|
@silabario.merge! Hiragana.group2 if @level > 1
|
15
|
+
@silabario.merge! Hiragana.group3 if @level > 2
|
16
|
+
@silabario.merge! Hiragana.group4 if @level > 3
|
17
|
+
|
15
18
|
@keys = @silabario.keys
|
16
19
|
end
|
17
20
|
|
@@ -5,13 +5,16 @@ require_relative '../hiragana'
|
|
5
5
|
|
6
6
|
class ShortAnswerGame
|
7
7
|
|
8
|
-
def initialize(level=1)
|
8
|
+
def initialize(level=1, max=10)
|
9
9
|
@level = level
|
10
10
|
@score = 1
|
11
|
-
@max_score =
|
11
|
+
@max_score = max
|
12
12
|
|
13
13
|
@silabario = Hiragana.group1
|
14
14
|
@silabario.merge! Hiragana.group2 if @level > 1
|
15
|
+
@silabario.merge! Hiragana.group3 if @level > 2
|
16
|
+
@silabario.merge! Hiragana.group4 if @level > 3
|
17
|
+
|
15
18
|
@keys = @silabario.keys
|
16
19
|
end
|
17
20
|
|
@@ -23,7 +26,7 @@ class ShortAnswerGame
|
|
23
26
|
Debug.puts_line
|
24
27
|
while @score < @max_score
|
25
28
|
@keys.shuffle!
|
26
|
-
@keys
|
29
|
+
guess_japanise_symbol(@keys[0])
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
@@ -22,11 +22,39 @@ class Hiragana
|
|
22
22
|
}
|
23
23
|
end
|
24
24
|
|
25
|
+
def self.group3
|
26
|
+
{ sa: "\u{3055}",
|
27
|
+
si: "\u{3057}",
|
28
|
+
su: "\u{3059}",
|
29
|
+
se: "\u{305B}",
|
30
|
+
so: "\u{305D}"
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.group4
|
35
|
+
{ ta: "\u{305F}",
|
36
|
+
ti: "\u{3061}",
|
37
|
+
tu: "\u{3064}",
|
38
|
+
te: "\u{3066}",
|
39
|
+
to: "\u{3068}"
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.all
|
44
|
+
output = self.group1
|
45
|
+
output.merge!(self.group2)
|
46
|
+
output.merge!(self.group3)
|
47
|
+
output.merge!(self.group4)
|
48
|
+
output
|
49
|
+
end
|
50
|
+
|
25
51
|
def self.show_help(level=1)
|
26
52
|
Debug.puts_line
|
27
53
|
puts "Hiragana help\n".upcase.cyan
|
28
54
|
|
29
55
|
Debug.puts_group Hiragana.group1
|
30
56
|
Debug.puts_group Hiragana.group2 if level > 1
|
57
|
+
Debug.puts_group Hiragana.group3 if level > 2
|
58
|
+
Debug.puts_group Hiragana.group4 if level > 3
|
31
59
|
end
|
32
60
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: learn-japanese
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Vargas Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -29,6 +29,7 @@ email: dvarrui@protonmail.com
|
|
29
29
|
executables:
|
30
30
|
- choose-answer-game
|
31
31
|
- short-answer-game
|
32
|
+
- sounds-to-hiragana.rb
|
32
33
|
extensions: []
|
33
34
|
extra_rdoc_files: []
|
34
35
|
files:
|
@@ -39,10 +40,13 @@ files:
|
|
39
40
|
- Rakefile
|
40
41
|
- bin/choose-answer-game
|
41
42
|
- bin/short-answer-game
|
43
|
+
- bin/sounds-to-hiragana.rb
|
42
44
|
- examples/01-emoji.rb
|
43
45
|
- examples/02-emoji.rb
|
44
46
|
- learn-japanese.gemspec
|
47
|
+
- lib/learn-japanese/data/words.yaml
|
45
48
|
- lib/learn-japanese/debug.rb
|
49
|
+
- lib/learn-japanese/dictionary.rb
|
46
50
|
- lib/learn-japanese/game/choose-answer-game.rb
|
47
51
|
- lib/learn-japanese/game/short-answer-game.rb
|
48
52
|
- lib/learn-japanese/hiragana.rb
|