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

回答編集履歴

1

質問文追記を受けて回答追記

2019/01/16 09:29

投稿

dice142
dice142

スコア5158

answer CHANGED
@@ -26,4 +26,41 @@
26
26
  一番左のインデックスは 1 から 2 に変わります。
27
27
  一番左の画像は0番目から2番目に設定されます。
28
28
 
29
- なので、最初だけ0番目から2番目の画像に一気に変わります。
29
+ なので、最初だけ0番目から2番目の画像に一気に変わります。
30
+
31
+ ---
32
+
33
+ > 理解確認❶(実行しスタートボタンのみ押した場合の一番は初めの変化)
34
+ ArrayListのslotに入っている画像とintの配列変数iCountは以下のように変化する
35
+
36
+ > slot(インデックス0)slot.jpg1→slot3.jpg
37
+ slot(インデックス1)slot.jpg3→slot5.jpg
38
+ slot(インデックス2)slot.jpg5→slot7.jpg
39
+
40
+ > iCount{1,3,5}→iCount{2,4,6}
41
+
42
+ > 理解確認❷(❶のあとストップボタンを押さなかった場合)
43
+ slotの画像、iCount共に1づつ増えていく。
44
+
45
+ > 自分でも確認しましたが、理解はあっておりますでしょうか。
46
+
47
+ どちらも動きの理解は合っているかと思います。
48
+
49
+ > 疑問点❶
50
+ switch文の中の
51
+
52
+ > case THREE:
53
+ timer.stop();
54
+ if (iCount[0] == iCount[1] && iCount[1] == iCount[2]) {
55
+ if (iCount[0] == MAX - 1)
56
+ lbel.setText("やった!!最高得点だ");
57
+ else
58
+ lbel.setText("やった!!おめでとう");
59
+ } else
60
+
61
+ > ですがなぜif (iCount[0] == MAX - 1)をするのでしょうか。
62
+ 7が三つ揃えばlbel.setText("やった!!最高得点だ");表示されますが、なぜ配列の1番目が6であれば良いのでしょうか。
63
+
64
+ `iCount`の各要素はインデックスを表します。
65
+ インデックスは0から始まりますので、最大値は6です。
66
+ 対して`MAX`はインデックスではなく数え値を表しているので、それをインデックスに合わせたということかと思います。