回答編集履歴

1

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

2019/01/16 09:29

投稿

dice142
dice142

スコア5158

test CHANGED
@@ -55,3 +55,77 @@
55
55
 
56
56
 
57
57
  なので、最初だけ0番目から2番目の画像に一気に変わります。
58
+
59
+
60
+
61
+ ---
62
+
63
+
64
+
65
+ > 理解確認❶(実行しスタートボタンのみ押した場合の一番は初めの変化)
66
+
67
+ ArrayListのslotに入っている画像とintの配列変数iCountは以下のように変化する
68
+
69
+
70
+
71
+ > slot(インデックス0)slot.jpg1→slot3.jpg
72
+
73
+ slot(インデックス1)slot.jpg3→slot5.jpg
74
+
75
+ slot(インデックス2)slot.jpg5→slot7.jpg
76
+
77
+
78
+
79
+ > iCount{1,3,5}→iCount{2,4,6}
80
+
81
+
82
+
83
+ > 理解確認❷(❶のあとストップボタンを押さなかった場合)
84
+
85
+ slotの画像、iCount共に1づつ増えていく。
86
+
87
+
88
+
89
+ > 自分でも確認しましたが、理解はあっておりますでしょうか。
90
+
91
+
92
+
93
+ どちらも動きの理解は合っているかと思います。
94
+
95
+
96
+
97
+ > 疑問点❶
98
+
99
+ switch文の中の
100
+
101
+
102
+
103
+ > case THREE:
104
+
105
+ timer.stop();
106
+
107
+ if (iCount[0] == iCount[1] && iCount[1] == iCount[2]) {
108
+
109
+ if (iCount[0] == MAX - 1)
110
+
111
+ lbel.setText("やった!!最高得点だ");
112
+
113
+ else
114
+
115
+ lbel.setText("やった!!おめでとう");
116
+
117
+ } else
118
+
119
+
120
+
121
+ > ですがなぜif (iCount[0] == MAX - 1)をするのでしょうか。
122
+
123
+ 7が三つ揃えばlbel.setText("やった!!最高得点だ");表示されますが、なぜ配列の1番目が6であれば良いのでしょうか。
124
+
125
+
126
+
127
+ `iCount`の各要素はインデックスを表します。
128
+
129
+ インデックスは0から始まりますので、最大値は6です。
130
+
131
+ 対して`MAX`はインデックスではなく数え値を表しているので、それをインデックスに合わせたということかと思います。