質問編集履歴
2
追記
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
追記
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行ずつかいてあります。
|