質問編集履歴

6

誤字

2019/12/17 03:56

投稿

kubonos
kubonos

スコア6

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  画面:正解!
18
18
 
19
- 音声再生:「♪ワンは1だよ♪」
19
+ 音声"one.wav"再生:「♪ワンは1だよ♪」
20
20
 
21
21
 
22
22
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  画面:正解!
32
32
 
33
- 音声再生:「♪スリーは3だよ♪」
33
+ 音声"three.wav"再生:「♪スリーは3だよ♪」
34
34
 
35
35
 
36
36
 
@@ -44,7 +44,7 @@
44
44
 
45
45
  画面:不正解!
46
46
 
47
- 音声再生:「♪トゥーは2だよ♪」
47
+ 音声"two.wav"再生:「♪トゥーは2だよ♪」
48
48
 
49
49
 
50
50
 
@@ -58,7 +58,7 @@
58
58
 
59
59
  画面:正解!
60
60
 
61
- 音声再生:「♪ナインは9だよ♪」
61
+ 音声"nine.wav"再生:「♪ナインは9だよ♪」
62
62
 
63
63
 
64
64
 
@@ -170,7 +170,7 @@
170
170
 
171
171
 
172
172
 
173
- <h3>ソースコードのすべて</h3>
173
+ <ソースコードのすべて>
174
174
 
175
175
 
176
176
 

5

誤字

2019/12/17 03:56

投稿

kubonos
kubonos

スコア6

test CHANGED
File without changes
test CHANGED
@@ -14,37 +14,59 @@
14
14
 
15
15
  プレイヤー回答:1!
16
16
 
17
+ 画面:正解!
18
+
17
19
  音声再生:「♪ワンは1だよ♪」
18
20
 
21
+
22
+
23
+
24
+
25
+
26
+
27
+ 問題:threeはどれ?
28
+
29
+ プレイヤー回答:3!
30
+
19
31
  画面:正解!
20
32
 
33
+ 音声再生:「♪スリーは3だよ♪」
34
+
21
35
 
22
36
 
23
37
 
24
38
 
25
39
 
26
40
 
27
- 問題:threeはどれ?
41
+ 問題:twoはどれ?
28
42
 
29
43
  プレイヤー回答:3!
30
44
 
45
+ 画面:不正解!
46
+
31
- 音声再生:「♪スリーは3だよ♪」
47
+ 音声再生:「♪トゥーは2だよ♪」
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ 問題:nineはどれ?
56
+
57
+ プレイヤー回答:9!
32
58
 
33
59
  画面:正解!
34
60
 
61
+ 音声再生:「♪ナインは9だよ♪」
62
+
35
63
 
36
64
 
37
65
 
38
66
 
39
67
 
40
68
 
41
- 問題:twoはどれ?
42
-
43
- プレイヤー回答:3!
44
-
45
- 音声再生:「♪トゥーは2だ♪」
69
+ 同じうにランダムに問題を出題
46
-
47
- 画面:不正解!
48
70
 
49
71
 
50
72
 
@@ -52,28 +74,6 @@
52
74
 
53
75
 
54
76
 
55
- 問題:nineはどれ?
56
-
57
- プレイヤー回答:9!
58
-
59
- 音声再生:「♪ナインは9だよ♪」
60
-
61
- 画面:正解!
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
- 同じようにランダムに問題を出題
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
77
  結果発表!
78
78
 
79
79
  20問中17問正解!!

4

誤字

2019/12/17 01:46

投稿

kubonos
kubonos

スコア6

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- <h3>具体的にアプリに欲しい挙動</h3>
5
+ 具体的にアプリに欲しい挙動
6
6
 
7
7
 
8
8
 
@@ -88,7 +88,7 @@
88
88
 
89
89
 
90
90
 
91
- <h3>現況</h3>
91
+ 現況
92
92
 
93
93
 
94
94
 

3

ソースの全体図、アプリで行いたい具体的な挙動、質問文

2019/12/17 01:44

投稿

kubonos
kubonos

スコア6

test CHANGED
@@ -1 +1 @@
1
- クイズアプリで回答ボタン配置を固定して正誤判定をして、それぞれ違う音声も鳴らしたい
1
+ クイズアプリで回答ボタン配置を固定して正誤判定をして、クイズごとに違う音声も鳴らしたい
test CHANGED
@@ -16,6 +16,8 @@
16
16
 
17
17
  音声再生:「♪ワンは1だよ♪」
18
18
 
19
+ 画面:正解!
20
+
19
21
 
20
22
 
21
23
 
@@ -28,6 +30,8 @@
28
30
 
29
31
  音声再生:「♪スリーは3だよ♪」
30
32
 
33
+ 画面:正解!
34
+
31
35
 
32
36
 
33
37
 
@@ -36,10 +40,12 @@
36
40
 
37
41
  問題:twoはどれ?
38
42
 
39
- プレイヤー回答:2
43
+ プレイヤー回答:3
40
44
 
41
45
  音声再生:「♪トゥーは2だよ♪」
42
46
 
47
+ 画面:不正解!
48
+
43
49
 
44
50
 
45
51
 
@@ -52,6 +58,8 @@
52
58
 
53
59
  音声再生:「♪ナインは9だよ♪」
54
60
 
61
+ 画面:正解!
62
+
55
63
 
56
64
 
57
65
 
@@ -138,6 +146,10 @@
138
146
 
139
147
 
140
148
 
149
+ クイズの正解を、音声で流すことをどうしてもしたくて、その条件をどのように書いていけば良いのかわからずに悩んでいます。
150
+
151
+
152
+
141
153
  良いやり方をご教授願えますと幸いです。
142
154
 
143
155
 

2

ソースの全体図、アプリで行いたい具体的な挙動、質問文

2019/12/17 01:43

投稿

kubonos
kubonos

スコア6

test CHANGED
@@ -1 +1 @@
1
- クイズアプリで回答ボタン配置を固定して正誤判定をする方法を知りたいです
1
+ クイズアプリで回答ボタン配置を固定して正誤判定をして、それぞれ違う音声も鳴らしたい
test CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
 
4
4
 
5
+ <h3>具体的にアプリに欲しい挙動</h3>
6
+
7
+
8
+
5
9
  具体的に作りたいのは、幼児用の英語の数字を覚えるアプリなのですが
6
10
 
7
11
 
@@ -76,6 +80,10 @@
76
80
 
77
81
 
78
82
 
83
+ <h3>現況</h3>
84
+
85
+
86
+
79
87
  今は、ネットに載っている、四択クイズの、回答ボタンをシャッフルするやり方で作っています。
80
88
 
81
89
 
@@ -150,7 +158,9 @@
150
158
 
151
159
 
152
160
 
153
- ### 該当のソースコード
161
+ <h3>ソースコードのすべて</h3>
162
+
163
+
154
164
 
155
165
  package com.vjoutatu.doremijava;
156
166
 
@@ -480,11 +490,7 @@
480
490
 
481
491
 
482
492
 
483
- ```ここに言語名を入力
493
+
484
-
485
- ソースコード
486
-
487
- ```
488
494
 
489
495
 
490
496
 
@@ -492,4 +498,4 @@
492
498
 
493
499
 
494
500
 
495
- 本を色々読んでいるのですが、どのように分岐したらよいのか分かりません・・。
501
+ 本を色々読んでいるのですが、どのように条件分岐したらよいのか分かりません・・。

1

ソースの全体図、アプリで行いたい具体的な挙動

2019/12/17 01:40

投稿

kubonos
kubonos

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1,16 +1,82 @@
1
- ### 前提・実現したいこと
2
-
3
-
4
-
5
1
  andoroid Studioでクイズアプリを作っています。
6
2
 
7
3
 
8
4
 
5
+ 具体的に作りたいのは、幼児用の英語の数字を覚えるアプリなのですが
6
+
7
+
8
+
9
+ 問題:oneはどれ?
10
+
11
+ プレイヤー回答:1!
12
+
13
+ 音声再生:「♪ワンは1だよ♪」
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ 問題:threeはどれ?
22
+
23
+ プレイヤー回答:3!
24
+
25
+ 音声再生:「♪スリーは3だよ♪」
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ 問題:twoはどれ?
34
+
35
+ プレイヤー回答:2!
36
+
37
+ 音声再生:「♪トゥーは2だよ♪」
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ 問題:nineはどれ?
46
+
47
+ プレイヤー回答:9!
48
+
49
+ 音声再生:「♪ナインは9だよ♪」
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+ 同じようにランダムに問題を出題
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+ 結果発表!
66
+
67
+ 20問中17問正解!!
68
+
69
+
70
+
71
+ という挙動をするアプリを作りたいです。
72
+
73
+
74
+
9
- 回答ボタンの配置を固定して、クイズアプリを作りたいのですが、やり方が分かりません。
75
+ 回答ボタンの配置を「1,2,3,4,5,6,7,8,9」と固定して、クイズアプリを作りたいのですが、やり方が分かりません。
10
-
11
-
12
-
76
+
77
+
78
+
13
- 今は、ネットに載っている、回答ボタンをシャッフルするやり方で作っています。
79
+ 今は、ネットに載っている、四択クイズの、回答ボタンをシャッフルするやり方で作っています。
14
80
 
15
81
 
16
82
 
@@ -60,7 +126,7 @@
60
126
 
61
127
 
62
128
 
63
- 最終的には12個の回答ボタンを実装して、問題数30~50個程度のクイズアプリを作りたいのですが・・。
129
+ 最終的には9個の回答ボタンを実装して、問題数20個程度のクイズアプリを作りたいのですが・・。
64
130
 
65
131
 
66
132
 
@@ -86,51 +152,333 @@
86
152
 
87
153
  ### 該当のソースコード
88
154
 
89
-
90
-
91
- String quizData[][] = {
92
-
93
- //{"画像名","正解","選択2","選択3","選択4"},
94
-
95
- {"one","1","2","3","4"},
96
-
97
- {"two","2","1","3","4"}
98
-
99
-
100
-
101
-
102
-
103
- Collections.shuffle(quiz);
104
-
105
-
106
-
107
- //quizDataからクイズ出題用のquizArrayを作成する
108
-
109
- for (int i = 0; i < quizData.length; i++) {
110
-
111
-
112
-
113
- //新しいArrayListを用意
114
-
115
- ArrayList<String> tmpArray = new ArrayList<>();
116
-
117
- //クイズデータを追加
118
-
119
- tmpArray.add(quizData[i][0]); //画像名
120
-
121
- tmpArray.add(quizData[i][1]); //正解
122
-
123
- tmpArray.add(quizData[i][2]); //選択2
124
-
125
- tmpArray.add(quizData[i][3]); //選択3
126
-
127
- tmpArray.add(quizData[i][4]); //選択4
128
-
129
-
130
-
131
- //tmpArrayをquizArrayに追加する
132
-
133
- quizArray.add(tmpArray);
155
+ package com.vjoutatu.doremijava;
156
+
157
+
158
+
159
+ import androidx.appcompat.app.AlertDialog;
160
+
161
+ import androidx.appcompat.app.AppCompatActivity;
162
+
163
+
164
+
165
+ import android.content.DialogInterface;
166
+
167
+ import android.content.Intent;
168
+
169
+ import android.os.Bundle;
170
+
171
+ import android.view.View;
172
+
173
+ import android.widget.Button;
174
+
175
+ import android.widget.ImageView;
176
+
177
+ import android.widget.TextView;
178
+
179
+
180
+
181
+ import java.util.ArrayList;
182
+
183
+ import java.util.Collections;
184
+
185
+ import java.util.Random;
186
+
187
+
188
+
189
+ public class MainActivity extends AppCompatActivity {
190
+
191
+
192
+
193
+     private TextView countLabel;
194
+
195
+
196
+
197
+     private ImageView questionImage;
198
+
199
+
200
+
201
+     //private TextView questionLabel;
202
+
203
+     private Button answerBtn1;
204
+
205
+     private Button answerBtn2;
206
+
207
+     private Button answerBtn3;
208
+
209
+     private Button answerBtn4;
210
+
211
+
212
+
213
+     private String rightAnswer;
214
+
215
+     private int rightAnswerCount = 0;
216
+
217
+     private int quizCount = 1;
218
+
219
+     static final private int QUIZ_COUNT = 2; //全部の出題数を入れるのだ!!
220
+
221
+
222
+
223
+     ArrayList<ArrayList<String>> quizArray = new ArrayList<>();
224
+
225
+
226
+
227
+     String quizData[][]  = {
228
+
229
+             //{"画像名","正解","選択2","選択3","選択4"},
230
+
231
+       
232
+
233
+             {"one","1","2","3","4"},
234
+
235
+             {"two","2","1","3","4"},           {"three","3","2","1","4"},             {"four","4","2","3","1"},
236
+
237
+
238
+
239
+
240
+
241
+     };
242
+
243
+
244
+
245
+     //Sound
246
+
247
+     private  SoundPlayer soundPlayer;
248
+
249
+
250
+
251
+
252
+
253
+     @Override
254
+
255
+     protected void onCreate(Bundle savedInstanceState) {
256
+
257
+         super.onCreate(savedInstanceState);
258
+
259
+         setContentView(R.layout.activity_main);
260
+
261
+
262
+
263
+         soundPlayer = new soundPlayer;
264
+
265
+
266
+
267
+         countLabel = findViewById(R.id.countLabel);
268
+
269
+         questionImage = findViewById(R.id.questionImage);
270
+
271
+         answerBtn1 = findViewById(R.id.answerBtn1);
272
+
273
+         answerBtn2 = findViewById(R.id.answerBtn2);
274
+
275
+         answerBtn3 = findViewById(R.id.answerBtn3);
276
+
277
+         answerBtn4 = findViewById(R.id.answerBtn4);
278
+
279
+
280
+
281
+         //quizDataからクイズ出題用のquizArrayを作成する
282
+
283
+         for (int i = 0; i < quizData.length; i++) {
284
+
285
+
286
+
287
+             //新しいArrayListを用意
288
+
289
+             ArrayList<String> tmpArray = new ArrayList<>();
290
+
291
+             //クイズデータを追加
292
+
293
+             tmpArray.add(quizData[i][0]); //画像名
294
+
295
+             tmpArray.add(quizData[i][1]); //正解
296
+
297
+             tmpArray.add(quizData[i][2]); //選択2
298
+
299
+             tmpArray.add(quizData[i][3]); //選択3
300
+
301
+             tmpArray.add(quizData[i][4]); //選択4
302
+
303
+
304
+
305
+             //tmpArrayをquizArrayに追加する
306
+
307
+             quizArray.add(tmpArray);
308
+
309
+         }
310
+
311
+
312
+
313
+         showNextQuiz();
314
+
315
+
316
+
317
+     }
318
+
319
+
320
+
321
+     public void showNextQuiz() {
322
+
323
+         //クイズカウントラベルを更新
324
+
325
+         countLabel.setText("Q" + quizCount);
326
+
327
+
328
+
329
+         //ランダムな数字を取得
330
+
331
+         Random random = new Random();
332
+
333
+         int randomNum = random.nextInt(quizArray.size());
334
+
335
+
336
+
337
+         //randomNumを使ってquizArrayからクイズを一つ取り出す
338
+
339
+         ArrayList<String> quiz = quizArray.get(randomNum);
340
+
341
+
342
+
343
+         //画像をセットする
344
+
345
+         questionImage.setImageResource(
346
+
347
+                 getResources().getIdentifier(quiz.get(0), "drawable", getPackageName())
348
+
349
+         );
350
+
351
+
352
+
353
+         //正解をrightAnswerにセット
354
+
355
+         rightAnswer = quiz.get(1);
356
+
357
+
358
+
359
+         //クイズ配列から画像名を削除
360
+
361
+         quiz.remove(0);
362
+
363
+
364
+
365
+         //正解と選択肢3つをシャッフル
366
+
367
+         Collections.shuffle(quiz);
368
+
369
+
370
+
371
+         //回答ボタンに正解と選択肢3つをセット
372
+
373
+         answerBtn1.setText(quiz.get(0));
374
+
375
+         answerBtn2.setText(quiz.get(1));
376
+
377
+         answerBtn3.setText(quiz.get(2));
378
+
379
+         answerBtn4.setText(quiz.get(3));
380
+
381
+
382
+
383
+         //このクイズをquizArrayから削除<消したいけど消すとおかしくなる
384
+
385
+         quizArray.remove(randomNum);
386
+
387
+
388
+
389
+     }
390
+
391
+
392
+
393
+      public  void checkAnswer(View view){
394
+
395
+
396
+
397
+         //どのボタンが押されたか
398
+
399
+          Button answerBtn = findViewById(view.getId());
400
+
401
+
402
+
403
+          //ボタンのテキストを取得
404
+
405
+          String btnText = answerBtn.getText().toString();
406
+
407
+
408
+
409
+          String alertTitle;
410
+
411
+          if (btnText.equals(rightAnswer)) {
412
+
413
+              alertTitle = "せいかい!!";
414
+
415
+              rightAnswerCount++;
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+      }else {
424
+
425
+              alertTitle = "まちがっているよ";
426
+
427
+          }
428
+
429
+
430
+
431
+          //ダイアログを作成
432
+
433
+          AlertDialog.Builder builder = new AlertDialog.Builder(this);
434
+
435
+          builder.setTitle(alertTitle);
436
+
437
+          builder.setMessage("こたえは" + rightAnswer + "だよ");
438
+
439
+          builder.setPositiveButton("つぎへいく", new DialogInterface.OnClickListener() {
440
+
441
+              @Override
442
+
443
+              public void onClick(DialogInterface dialog, int which) {
444
+
445
+                  if (quizCount == QUIZ_COUNT){
446
+
447
+                      //結果画面へ移動
448
+
449
+                      Intent intent = new Intent(getApplicationContext(), ResultActivity.class);
450
+
451
+                      intent.putExtra("RIGHT_ANSWER_COUNT", rightAnswerCount);
452
+
453
+                      startActivity(intent);
454
+
455
+
456
+
457
+                  }else {
458
+
459
+                      quizCount++;
460
+
461
+                      showNextQuiz();
462
+
463
+                  }
464
+
465
+              }
466
+
467
+          });
468
+
469
+         builder.setCancelable(false);
470
+
471
+         builder.show();
472
+
473
+
474
+
475
+     }
476
+
477
+ }
478
+
479
+
480
+
481
+
134
482
 
135
483
  ```ここに言語名を入力
136
484
 
@@ -144,12 +492,4 @@
144
492
 
145
493
 
146
494
 
147
- ここに問題に対して試したことを記載してください。
148
-
149
-
150
-
151
- ### 補足情報(FW/ツールバージョンな
495
+ 本を色々読んでいるですが、のように分岐したらよいのか分かりません・・。
152
-
153
-
154
-
155
- ここにより詳細な情報を記載してください。