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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d2ec60ea1cf0584f51aeee2842a47ec7de047491ce73af9e956bd215a78b1ddb
4
- data.tar.gz: f65e3e5ed7f142d937fbaef0ab3bcf79c4cc67d48db10ae5838a069a9bc74169
3
+ metadata.gz: adb7cea3414af1cbe9ef81818791c40ec732a63a9edb891872cad1fc4517dd59
4
+ data.tar.gz: bd1478f589978af24a594c822eb6cbac1aa255169e51e4e38ff002ce87d9a7fd
5
5
  SHA512:
6
- metadata.gz: 91daba15167b84c4afcda4fc4304ee1eb3b2d5795d6640c0d1d473272a2c98308d85244252fabd4372e2c9e527912b039b807e6b068b31e751c9fd795c41d91e
7
- data.tar.gz: f7da100575faf4741ede2f91c2cd8a59767ff11b14c6a58955594ecaf19569ef9a9a735defc4a901d6d0a3f73ee371e7001fc66f9d6a861da5bd25c26584fa49
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
+ [![Gem Version](https://badge.fury.io/rb/learn-japanese.svg)](https://badge.fury.io/rb/learn-japanese)
5
3
 
6
4
  # Aprender japonés
7
5
 
8
- `japones-tool` es un programa Ruby de licencia libre para ayudar a aprender el japonés.
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 japones-tool`, para instalar la herramienta.
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
- 1. Abrir un terminal
18
- 2. Ejecutar `short-answer-game`.
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
 
@@ -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
- level = 2
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
@@ -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
- level = 2
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
@@ -0,0 +1,12 @@
1
+
2
+ require 'yaml'
3
+
4
+ class Dictionary
5
+ attr_reader :words
6
+
7
+ def initialize()
8
+ filename = File.join(File.dirname(__FILE__), 'data', 'words.yaml')
9
+ @words = YAML.load(File.read(filename))
10
+ end
11
+
12
+ end
@@ -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 = 20
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 = 20
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.each { |key| guess_japanise_symbol(key) }
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
@@ -1,5 +1,5 @@
1
1
 
2
2
  module JaponesTool
3
- VERSION = '0.2.0'
3
+ VERSION = '0.4.0'
4
4
  HOMEPAGE = 'https://github.com/dvarrui/learn-japanese'
5
5
  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.2.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-01 00:00:00.000000000 Z
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