learn-japanese 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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