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

質問編集履歴

6

誤字

2019/12/17 03:56

投稿

kubonos
kubonos

スコア6

title CHANGED
File without changes
body CHANGED
@@ -7,28 +7,28 @@
7
7
  問題:oneはどれ?
8
8
  プレイヤー回答:1!
9
9
  画面:正解!
10
- 音声再生:「♪ワンは1だよ♪」
10
+ 音声"one.wav"再生:「♪ワンは1だよ♪」
11
11
 
12
12
 
13
13
 
14
14
  問題:threeはどれ?
15
15
  プレイヤー回答:3!
16
16
  画面:正解!
17
- 音声再生:「♪スリーは3だよ♪」
17
+ 音声"three.wav"再生:「♪スリーは3だよ♪」
18
18
 
19
19
 
20
20
 
21
21
  問題:twoはどれ?
22
22
  プレイヤー回答:3!
23
23
  画面:不正解!
24
- 音声再生:「♪トゥーは2だよ♪」
24
+ 音声"two.wav"再生:「♪トゥーは2だよ♪」
25
25
 
26
26
 
27
27
 
28
28
  問題:nineはどれ?
29
29
  プレイヤー回答:9!
30
30
  画面:正解!
31
- 音声再生:「♪ナインは9だよ♪」
31
+ 音声"nine.wav"再生:「♪ナインは9だよ♪」
32
32
 
33
33
 
34
34
 
@@ -84,7 +84,7 @@
84
84
  エラーメッセージは特にありません。
85
85
  ```
86
86
 
87
- <h3>ソースコードのすべて</h3>
87
+ <ソースコードのすべて>
88
88
 
89
89
  package com.vjoutatu.doremijava;
90
90
 

5

誤字

2019/12/17 03:56

投稿

kubonos
kubonos

スコア6

title CHANGED
File without changes
body CHANGED
@@ -6,29 +6,29 @@
6
6
 
7
7
  問題:oneはどれ?
8
8
  プレイヤー回答:1!
9
+ 画面:正解!
9
10
  音声再生:「♪ワンは1だよ♪」
10
- 画面:正解!
11
11
 
12
12
 
13
13
 
14
14
  問題:threeはどれ?
15
15
  プレイヤー回答:3!
16
+ 画面:正解!
16
17
  音声再生:「♪スリーは3だよ♪」
17
- 画面:正解!
18
18
 
19
19
 
20
20
 
21
21
  問題:twoはどれ?
22
22
  プレイヤー回答:3!
23
+ 画面:不正解!
23
24
  音声再生:「♪トゥーは2だよ♪」
24
- 画面:不正解!
25
25
 
26
26
 
27
27
 
28
28
  問題:nineはどれ?
29
29
  プレイヤー回答:9!
30
+ 画面:正解!
30
31
  音声再生:「♪ナインは9だよ♪」
31
- 画面:正解!
32
32
 
33
33
 
34
34
 

4

誤字

2019/12/17 01:46

投稿

kubonos
kubonos

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  andoroid Studioでクイズアプリを作っています。
2
2
 
3
- <h3>具体的にアプリに欲しい挙動</h3>
3
+ 具体的にアプリに欲しい挙動
4
4
 
5
5
  具体的に作りたいのは、幼児用の英語の数字を覚えるアプリなのですが
6
6
 
@@ -43,7 +43,7 @@
43
43
 
44
44
  回答ボタンの配置を「1,2,3,4,5,6,7,8,9」と固定して、クイズアプリを作りたいのですが、やり方が分かりません。
45
45
 
46
- <h3>現況</h3>
46
+ 現況
47
47
 
48
48
  今は、ネットに載っている、四択クイズの、回答ボタンをシャッフルするやり方で作っています。
49
49
 

3

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

2019/12/17 01:44

投稿

kubonos
kubonos

スコア6

title CHANGED
@@ -1,1 +1,1 @@
1
- クイズアプリで回答ボタン配置を固定して正誤判定をして、それぞれ違う音声も鳴らしたい
1
+ クイズアプリで回答ボタン配置を固定して正誤判定をして、クイズごとに違う音声も鳴らしたい
body CHANGED
@@ -7,24 +7,28 @@
7
7
  問題:oneはどれ?
8
8
  プレイヤー回答:1!
9
9
  音声再生:「♪ワンは1だよ♪」
10
+ 画面:正解!
10
11
 
11
12
 
12
13
 
13
14
  問題:threeはどれ?
14
15
  プレイヤー回答:3!
15
16
  音声再生:「♪スリーは3だよ♪」
17
+ 画面:正解!
16
18
 
17
19
 
18
20
 
19
21
  問題:twoはどれ?
20
- プレイヤー回答:2
22
+ プレイヤー回答:3
21
23
  音声再生:「♪トゥーは2だよ♪」
24
+ 画面:不正解!
22
25
 
23
26
 
24
27
 
25
28
  問題:nineはどれ?
26
29
  プレイヤー回答:9!
27
30
  音声再生:「♪ナインは9だよ♪」
31
+ 画面:正解!
28
32
 
29
33
 
30
34
 
@@ -68,6 +72,8 @@
68
72
 
69
73
  最終的には9個の回答ボタンを実装して、問題数20個程度のクイズアプリを作りたいのですが・・。
70
74
 
75
+ クイズの正解を、音声で流すことをどうしてもしたくて、その条件をどのように書いていけば良いのかわからずに悩んでいます。
76
+
71
77
  良いやり方をご教授願えますと幸いです。
72
78
 
73
79
  よろしくお願いいたします。

2

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

2019/12/17 01:43

投稿

kubonos
kubonos

スコア6

title CHANGED
@@ -1,1 +1,1 @@
1
- クイズアプリで回答ボタン配置を固定して正誤判定をする方法を知りたいです
1
+ クイズアプリで回答ボタン配置を固定して正誤判定をして、それぞれ違う音声も鳴らしたい
body CHANGED
@@ -1,5 +1,7 @@
1
1
  andoroid Studioでクイズアプリを作っています。
2
2
 
3
+ <h3>具体的にアプリに欲しい挙動</h3>
4
+
3
5
  具体的に作りたいのは、幼児用の英語の数字を覚えるアプリなのですが
4
6
 
5
7
  問題:oneはどれ?
@@ -37,6 +39,8 @@
37
39
 
38
40
  回答ボタンの配置を「1,2,3,4,5,6,7,8,9」と固定して、クイズアプリを作りたいのですが、やり方が分かりません。
39
41
 
42
+ <h3>現況</h3>
43
+
40
44
  今は、ネットに載っている、四択クイズの、回答ボタンをシャッフルするやり方で作っています。
41
45
 
42
46
  String quizData[][] = {
@@ -74,7 +78,8 @@
74
78
  エラーメッセージは特にありません。
75
79
  ```
76
80
 
77
- ### 該当のソースコード
81
+ <h3>ソースコードのすべて</h3>
82
+
78
83
  package com.vjoutatu.doremijava;
79
84
 
80
85
  import androidx.appcompat.app.AlertDialog;
@@ -239,10 +244,8 @@
239
244
  }
240
245
 
241
246
 
242
- ```ここに言語名を入力
243
- ソースコード
244
- ```
245
247
 
248
+
246
249
  ### 試したこと
247
250
 
248
- 本を色々読んでいるのですが、どのように分岐したらよいのか分かりません・・。
251
+ 本を色々読んでいるのですが、どのように条件分岐したらよいのか分かりません・・。

1

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

2019/12/17 01:40

投稿

kubonos
kubonos

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,44 @@
1
- ### 前提・実現したいこと
2
-
3
1
  andoroid Studioでクイズアプリを作っています。
4
2
 
5
- 回答ボタン配置を固定してクイズアプリを作りたいのですが、やり方が分かりません。
3
+ 具体的に作りたい幼児用の英語の数字を覚えるアプリのですが
6
4
 
5
+ 問題:oneはどれ?
6
+ プレイヤー回答:1!
7
- 今は、ネットに載っている、回答ボタをシャッフルするやり方で作っています。
7
+ 音声再生:「♪ワは1だよ♪」
8
8
 
9
+
10
+
11
+ 問題:threeはどれ?
12
+ プレイヤー回答:3!
13
+ 音声再生:「♪スリーは3だよ♪」
14
+
15
+
16
+
17
+ 問題:twoはどれ?
18
+ プレイヤー回答:2!
19
+ 音声再生:「♪トゥーは2だよ♪」
20
+
21
+
22
+
23
+ 問題:nineはどれ?
24
+ プレイヤー回答:9!
25
+ 音声再生:「♪ナインは9だよ♪」
26
+
27
+
28
+
29
+ 同じようにランダムに問題を出題
30
+
31
+
32
+
33
+ 結果発表!
34
+ 20問中17問正解!!
35
+
36
+ という挙動をするアプリを作りたいです。
37
+
38
+ 回答ボタンの配置を「1,2,3,4,5,6,7,8,9」と固定して、クイズアプリを作りたいのですが、やり方が分かりません。
39
+
40
+ 今は、ネットに載っている、四択クイズの、回答ボタンをシャッフルするやり方で作っています。
41
+
9
42
  String quizData[][] = {
10
43
  //{"画像名","正解","選択2","選択3","選択4"},
11
44
  {"one","1","2","3","4"},
@@ -29,7 +62,7 @@
29
62
  2,3,4,1
30
63
  などとコロコロ変わって、ただ見ずらいです。
31
64
 
32
- 最終的には12個の回答ボタンを実装して、問題数30~50個程度のクイズアプリを作りたいのですが・・。
65
+ 最終的には9個の回答ボタンを実装して、問題数20個程度のクイズアプリを作りたいのですが・・。
33
66
 
34
67
  良いやり方をご教授願えますと幸いです。
35
68
 
@@ -42,37 +75,174 @@
42
75
  ```
43
76
 
44
77
  ### 該当のソースコード
78
+ package com.vjoutatu.doremijava;
45
79
 
46
- String quizData[][] = {
80
+ import androidx.appcompat.app.AlertDialog;
47
- //{"画像名","正解","選択2","選択3","選択4"},
48
- {"one","1","2","3","4"},
49
- {"two","2","1","3","4"}
81
+ import androidx.appcompat.app.AppCompatActivity;
50
82
 
83
+ import android.content.DialogInterface;
84
+ import android.content.Intent;
85
+ import android.os.Bundle;
86
+ import android.view.View;
87
+ import android.widget.Button;
88
+ import android.widget.ImageView;
89
+ import android.widget.TextView;
51
90
 
91
+ import java.util.ArrayList;
92
+ import java.util.Collections;
52
- Collections.shuffle(quiz);
93
+ import java.util.Random;
53
94
 
54
- //quizDataからクイズ出題用のquizArrayを作成する
55
- for (int i = 0; i < quizData.length; i++) {
95
+ public class MainActivity extends AppCompatActivity {
56
96
 
57
- //新しいArrayListを用意
97
+     private TextView countLabel;
58
- ArrayList<String> tmpArray = new ArrayList<>();
59
- //クイズデータを追加
60
- tmpArray.add(quizData[i][0]); //画像名
61
- tmpArray.add(quizData[i][1]); //正解
62
- tmpArray.add(quizData[i][2]); //選択2
63
- tmpArray.add(quizData[i][3]); //選択3
64
- tmpArray.add(quizData[i][4]); //選択4
65
98
 
99
+     private ImageView questionImage;
100
+
101
+     //private TextView questionLabel;
102
+     private Button answerBtn1;
103
+     private Button answerBtn2;
104
+     private Button answerBtn3;
105
+     private Button answerBtn4;
106
+
107
+     private String rightAnswer;
108
+     private int rightAnswerCount = 0;
109
+     private int quizCount = 1;
110
+     static final private int QUIZ_COUNT = 2; //全部の出題数を入れるのだ!!
111
+
112
+     ArrayList<ArrayList<String>> quizArray = new ArrayList<>();
113
+
114
+     String quizData[][]  = {
115
+             //{"画像名","正解","選択2","選択3","選択4"},
116
+       
117
+             {"one","1","2","3","4"},
118
+             {"two","2","1","3","4"},           {"three","3","2","1","4"},             {"four","4","2","3","1"},
119
+
120
+
121
+     };
122
+
123
+     //Sound
124
+     private  SoundPlayer soundPlayer;
125
+
126
+
127
+     @Override
128
+     protected void onCreate(Bundle savedInstanceState) {
129
+         super.onCreate(savedInstanceState);
130
+         setContentView(R.layout.activity_main);
131
+
132
+         soundPlayer = new soundPlayer;
133
+
134
+         countLabel = findViewById(R.id.countLabel);
135
+         questionImage = findViewById(R.id.questionImage);
136
+         answerBtn1 = findViewById(R.id.answerBtn1);
137
+         answerBtn2 = findViewById(R.id.answerBtn2);
138
+         answerBtn3 = findViewById(R.id.answerBtn3);
139
+         answerBtn4 = findViewById(R.id.answerBtn4);
140
+
141
+         //quizDataからクイズ出題用のquizArrayを作成する
142
+         for (int i = 0; i < quizData.length; i++) {
143
+
144
+             //新しいArrayListを用意
145
+             ArrayList<String> tmpArray = new ArrayList<>();
146
+             //クイズデータを追加
147
+             tmpArray.add(quizData[i][0]); //画像名
148
+             tmpArray.add(quizData[i][1]); //正解
149
+             tmpArray.add(quizData[i][2]); //選択2
150
+             tmpArray.add(quizData[i][3]); //選択3
151
+             tmpArray.add(quizData[i][4]); //選択4
152
+
66
- //tmpArrayをquizArrayに追加する
153
+             //tmpArrayをquizArrayに追加する
67
- quizArray.add(tmpArray);
154
+             quizArray.add(tmpArray);
155
+         }
156
+
157
+         showNextQuiz();
158
+
159
+     }
160
+
161
+     public void showNextQuiz() {
162
+         //クイズカウントラベルを更新
163
+         countLabel.setText("Q" + quizCount);
164
+
165
+         //ランダムな数字を取得
166
+         Random random = new Random();
167
+         int randomNum = random.nextInt(quizArray.size());
168
+
169
+         //randomNumを使ってquizArrayからクイズを一つ取り出す
170
+         ArrayList<String> quiz = quizArray.get(randomNum);
171
+
172
+         //画像をセットする
173
+         questionImage.setImageResource(
174
+                 getResources().getIdentifier(quiz.get(0), "drawable", getPackageName())
175
+         );
176
+
177
+         //正解をrightAnswerにセット
178
+         rightAnswer = quiz.get(1);
179
+
180
+         //クイズ配列から画像名を削除
181
+         quiz.remove(0);
182
+
183
+         //正解と選択肢3つをシャッフル
184
+         Collections.shuffle(quiz);
185
+
186
+         //回答ボタンに正解と選択肢3つをセット
187
+         answerBtn1.setText(quiz.get(0));
188
+         answerBtn2.setText(quiz.get(1));
189
+         answerBtn3.setText(quiz.get(2));
190
+         answerBtn4.setText(quiz.get(3));
191
+
192
+         //このクイズをquizArrayから削除<消したいけど消すとおかしくなる
193
+         quizArray.remove(randomNum);
194
+
195
+     }
196
+
197
+      public  void checkAnswer(View view){
198
+
199
+         //どのボタンが押されたか
200
+          Button answerBtn = findViewById(view.getId());
201
+
202
+          //ボタンのテキストを取得
203
+          String btnText = answerBtn.getText().toString();
204
+
205
+          String alertTitle;
206
+          if (btnText.equals(rightAnswer)) {
207
+              alertTitle = "せいかい!!";
208
+              rightAnswerCount++;
209
+
210
+
211
+
212
+      }else {
213
+              alertTitle = "まちがっているよ";
214
+          }
215
+
216
+          //ダイアログを作成
217
+          AlertDialog.Builder builder = new AlertDialog.Builder(this);
218
+          builder.setTitle(alertTitle);
219
+          builder.setMessage("こたえは" + rightAnswer + "だよ");
220
+          builder.setPositiveButton("つぎへいく", new DialogInterface.OnClickListener() {
221
+              @Override
222
+              public void onClick(DialogInterface dialog, int which) {
223
+                  if (quizCount == QUIZ_COUNT){
224
+                      //結果画面へ移動
225
+                      Intent intent = new Intent(getApplicationContext(), ResultActivity.class);
226
+                      intent.putExtra("RIGHT_ANSWER_COUNT", rightAnswerCount);
227
+                      startActivity(intent);
228
+
229
+                  }else {
230
+                      quizCount++;
231
+                      showNextQuiz();
232
+                  }
233
+              }
234
+          });
235
+         builder.setCancelable(false);
236
+         builder.show();
237
+
238
+     }
239
+ }
240
+
241
+
68
242
  ```ここに言語名を入力
69
243
  ソースコード
70
244
  ```
71
245
 
72
246
  ### 試したこと
73
247
 
74
- ここに問題に対して試したことを記載してください。
75
-
76
- ### 補足情報(FW/ツールバージョンな
248
+ 本を色々読んでいるですが、のように分岐したらよいのか分かりません・・。
77
-
78
- ここにより詳細な情報を記載してください。