learn-japanese 0.1.1 → 0.3.1

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: c94600d17487caab91547bc4ca9f878ad3234d1258bc00bb7d798f7e68570f00
4
- data.tar.gz: c00cf8b158dfb1ec6051d540b75787ea19faa6ae0eb1e7a8871f7a2e57b06817
3
+ metadata.gz: 3fd4fbe3f27f72b008494f3dc768d51fd8b493773dbf88a5ac906c10406c4054
4
+ data.tar.gz: cec516326cbc16555b7aa867dbda8daf4d4f26ac7928804008ea01e85c0490f1
5
5
  SHA512:
6
- metadata.gz: cda376360ebc7ae058be851f1dfc4f2d28f642447b71326cd76e159cf01ea43ff1c2b1f60fb285bc4b6718b5fd5ac0360c58aa6f56f5dbee49caadac33085bd7
7
- data.tar.gz: ead0701cda473a49b7b045187a2b77690036bff5556bf246e696a7e60a2aba9990cded68d2cb964d5cb07a5c38264ed11f02a7d4d46d3e9301fcac0d6ad1d8d3
6
+ metadata.gz: 5dee05d8453dbca5f597e6d19ca583a3f19bea4d61af7bb7ffc227313414b9237bb4dedeb15e5f90d23a7441ba2bc1f415f5036cccff3f3f0113f3ac86fb71b5
7
+ data.tar.gz: 6dc5a0e4ded5b595396e0e3a051fcd2a338ef5a16de011dd2c9ee691532556647bb1a372a6d299f1261c85c6b950a79a4f01c369361ba3af989456eb5a058975
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
 
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
4
+ require 'learn-japanese/game/choose-answer-game'
5
+
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
18
+ ChooseAnswerGame.show_help(level)
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,52 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../debug'
4
+ require_relative '../hiragana'
5
+
6
+ class ChooseAnswerGame
7
+
8
+ def initialize(level=1, max=10)
9
+ @level = level
10
+ @score = 1
11
+ @max_score = max
12
+
13
+ @silabario = Hiragana.group1
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
+
18
+ @keys = @silabario.keys
19
+ end
20
+
21
+ def self.show_help(level=1)
22
+ Hiragana.show_help(level)
23
+ end
24
+
25
+ def run
26
+ Debug.puts_line
27
+ while @score < @max_score
28
+ guess_japanise_symbol(@keys)
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def guess_japanise_symbol(keys)
35
+ keys.shuffle!
36
+ good = keys[0].clone
37
+ options = [ keys[0], keys[1], keys[2], keys[3] ].shuffle
38
+
39
+ japanises = options.map { @silabario[_1] }
40
+ progress = "[ #{@score}/#{@max_score} ]"
41
+ print "#{progress.white} #{japanises.join(', ')} #{good.to_s.light_yellow}? (1,2,3,4) "
42
+
43
+ index = STDIN.gets.to_i
44
+ exit if index.zero?
45
+ if good == options[(index - 1)]
46
+ @score += 1
47
+ return true
48
+ end
49
+ puts "La respuesta es #{@silabario[good]}".light_red
50
+ false
51
+ end
52
+ end
@@ -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,31 @@ 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
+
25
43
  def self.show_help(level=1)
26
44
  Debug.puts_line
27
45
  puts "Hiragana help\n".upcase.cyan
28
46
 
29
47
  Debug.puts_group Hiragana.group1
30
48
  Debug.puts_group Hiragana.group2 if level > 1
49
+ Debug.puts_group Hiragana.group3 if level > 2
50
+ Debug.puts_group Hiragana.group4 if level > 3
31
51
  end
32
52
  end
@@ -1,5 +1,5 @@
1
1
 
2
2
  module JaponesTool
3
- VERSION = '0.1.1'
3
+ VERSION = '0.3.1'
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.1.1
4
+ version: 0.3.1
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-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -27,6 +27,7 @@ dependencies:
27
27
  description:
28
28
  email: dvarrui@protonmail.com
29
29
  executables:
30
+ - choose-answer-game
30
31
  - short-answer-game
31
32
  extensions: []
32
33
  extra_rdoc_files: []
@@ -36,11 +37,13 @@ files:
36
37
  - LICENSE
37
38
  - README.md
38
39
  - Rakefile
40
+ - bin/choose-answer-game
39
41
  - bin/short-answer-game
40
42
  - examples/01-emoji.rb
41
43
  - examples/02-emoji.rb
42
44
  - learn-japanese.gemspec
43
45
  - lib/learn-japanese/debug.rb
46
+ - lib/learn-japanese/game/choose-answer-game.rb
44
47
  - lib/learn-japanese/game/short-answer-game.rb
45
48
  - lib/learn-japanese/hiragana.rb
46
49
  - lib/learn-japanese/version.rb