質問するログイン新規登録

質問編集履歴

2

追記

2017/04/20 06:33

投稿

yusuke.
yusuke.

スコア66

title CHANGED
File without changes
body CHANGED
@@ -33,6 +33,8 @@
33
33
  これ以外の文の書き方とかってありますか。
34
34
  あと、eval が具体的にどんな働きをしているのかなど教えていただけると嬉しいです。
35
35
  ---追記
36
+ 日本語を表示して、その英単語を入力して、それが正しいかどうかを判断するというプログラムを作りたいです。
37
+ 原型はできているのですが、今のままだと、ファイルを、一つしか選択できないので、複数のファイルを一気に読みこんで、ランダムに表示させるということがしたいです。
36
38
  ```ここに言語を入力
37
39
  休み
38
40
  vacation
@@ -55,4 +57,128 @@
55
57
  areの過去
56
58
  were
57
59
  ```
58
- 問題の文はこのように、日本語、英語の順に1行ずつかいてあります。
60
+ 問題の文はこのように、日本語、英語の順に1行ずつかいてあります。
61
+
62
+ コードを全文出します。
63
+ ```ruby
64
+ #! ruby -Ks
65
+ require "color_echo"
66
+
67
+ @score = 0
68
+ @count = 0
69
+ @naoshi = Array.new
70
+ @jikkoufile = Array.new
71
+
72
+ def yomikomi()
73
+ i = 0
74
+ j = 0
75
+ @moji =[]
76
+ f = open("./dat/#{@jikkoufile}","r")
77
+ while text = f.gets do
78
+ @moji[i] = text.chomp
79
+ i += 1
80
+ end
81
+ f.close
82
+ @mondaisu = i/2
83
+ while j <= i/2
84
+ eval("@q#{j} = [@moji[j*2+0],@moji[j*2+1]]")
85
+ j += 1
86
+ end
87
+
88
+
89
+ q = []
90
+ eval("q = @q#{rand(@mondaisu)}.clone")
91
+ @mondai = q[0]
92
+ @kotae = q[1]
93
+
94
+ @matigai = open("./dat/matigai.dat","a")
95
+ end
96
+
97
+
98
+ def hon
99
+
100
+ filenames = Dir.open("dat").to_a
101
+ puts filenames
102
+ puts "reset"
103
+
104
+ puts "\n\nやりたいファイルを選択してください。"
105
+ @jikkoufile << gets.chomp
106
+ puts @jikkoufile
107
+ while true do
108
+ if filenames.include?(@jikkoufile)
109
+ puts " ほかにもファイルを選択しますか。 y or n"
110
+ filesentaku = gets.chomp
111
+ if filesentaku == "y"
112
+ puts "入力してください。"
113
+ jikkoufile2 = gets.chomp
114
+ unless filenames.include?(jikkoufile2)
115
+ CE.once.fg :red
116
+ puts "そのファイルは存在しません。"
117
+ else
118
+ @jikkoufile.push(jikkoufile2)
119
+ end
120
+ redo
121
+ elsif filesentaku == "n"
122
+ break
123
+ else
124
+ CE.once.fg :red
125
+ puts "入力するならyを、しないならnを入力してください。"
126
+ redo
127
+ end
128
+ end
129
+
130
+ if @jikkoufile == "reset"
131
+ puts "Reset matigai.dat"
132
+ File.open("dat/matigai.dat","w")
133
+ sleep 2
134
+ exit
135
+ end
136
+ CE.once.fg :red
137
+ puts "再入力してください"
138
+ @jikkoufile << gets.chomp
139
+ end
140
+
141
+ puts "何回実行しますか?"
142
+ @a = gets.chomp.to_i
143
+ puts "次の日本語を英語に直しなさい"
144
+ count = 0
145
+ while true do
146
+ yomikomi
147
+ puts @mondai
148
+ s = gets.chomp
149
+
150
+ puts "正解は#{@kotae}です。"
151
+ sleep 1
152
+
153
+ if s == @kotae
154
+ puts "正解です "
155
+ @score = @score + 1
156
+ else
157
+ @count = @count + 1
158
+ CE.once.fg :red
159
+ puts "間違いです。\n"
160
+ @naoshi.push(@mondai,@kotae)
161
+ end
162
+ count = count + 1
163
+ if count >= @a
164
+ puts "\n\n終了です","\n#{@a}問中、#{@score}問正解しました"
165
+ unless @naoshi.empty? #empty? は何もなかったらtrueを返す
166
+ CE.once.fg :index47
167
+ puts "間違えた問題 復習しておこう!"
168
+ CE.bg :blue
169
+ puts @naoshi
170
+ @matigai.puts @naoshi
171
+ else
172
+ CE.rainbow
173
+ puts "----------------------------------------------"
174
+ puts "全問正解!!おめでとう!"
175
+ puts "----------------------------------------------"
176
+ end
177
+ exit
178
+ end
179
+ end
180
+ end
181
+ hon
182
+
183
+ ```
184
+ インデントとかをうまく使えてなくて読みにくいですが、すいません。

1

追記

2017/04/20 06:33

投稿

yusuke.
yusuke.

スコア66

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  見ていただきありがとうございます。
2
2
  この文の一文一文が、どういう働きをしているのかがよくわかりません。
3
+ 英単語のプログラムを作っています。
3
4
  一応、ファイルの中にある文を、@monndaiのなかなどにいれて表示させようとするプログラムの一部です。
4
5
  ```ruby
5
6
  def yomikomi()
@@ -30,4 +31,28 @@
30
31
 
31
32
  ```
32
33
  これ以外の文の書き方とかってありますか。
33
- あと、eval が具体的にどんな働きをしているのかなど教えていただけると嬉しいです。
34
+ あと、eval が具体的にどんな働きをしているのかなど教えていただけると嬉しいです。
35
+ ---追記
36
+ ```ここに言語を入力
37
+ 休み
38
+ vacation
39
+ takeの過去
40
+ took
41
+ catchの過去
42
+ caught
43
+ seeの過去
44
+ saw
45
+ 魚釣りに行く
46
+ go fishing
47
+
48
+ garden
49
+ 伝統的な
50
+ traditional
51
+ 初めて
52
+ for the first time
53
+ am,isの過去
54
+ was
55
+ areの過去
56
+ were
57
+ ```
58
+ 問題の文はこのように、日本語、英語の順に1行ずつかいてあります。