プログラミングスキルを向上させるために Simon Says ゲームを作成したいのですが、思ったより難しいです。したがって、最初は最大 50 のレベルがあると判断したので、1 ~ 4 の間で 50 の乱数を生成して配列に格納し、コンソールでこれが機能することをテストしました。
for(int i = 0; i <50; i++){
random = randomGenerator.nextInt(4)+1;
array[i] = random;
System.out.println(Integer.toString(i)+" " + Integer.toString(array[i]));
}
次に、ゲームを実行する play というメソッドを呼び出します。このメソッドには、50 回実行される for ループがあり、配列のインデックス i が 1、2、3、または 4 であるかどうかを確認し、番号付きボタンに色を付けます。
public void play(){
for(int i =ii; i<50; i++){
if(b1bool==false){
if(array[i] == 1){
//Set button to Blue
b1.setBackgroundColor(0xFF0000FF);
}
else if(array[i] == 2){
//SEt button to Yellow
b2.setBackgroundColor(0xFFFFFF00);
}
else if(array[i] == 3){
//SEt button to Red
b3.setBackgroundColor(0xFFFF0000);
}
else if(array[i] == 4){
//SEt button to Green
b4.setBackgroundColor(0xFF00FF00);
}
b1bool = true;
}
}
}
bool を使用して for ループを停止していますが、現時点では、button1 を押して for ループを続行しています。
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
b1.setBackgroundColor(0xffffffff);
b2.setBackgroundColor(0xffffffff);
b3.setBackgroundColor(0xffffffff);
b4.setBackgroundColor(0xffffffff);
b1bool=false;
ii++;
play();
break;
case R.id.button2:
if(b2bool == true)
{
}
break;
case R.id.button3:
if(b3bool == true)
{
}
break;
case R.id.button4:
if(b4bool == true)
{
}
break;
}
}
プログラミングの問題を解決するための私の通常の方法は、通常、非常に長く、まったく効率的ではないため、Stackoverflow に来ました。問題に取り組む方法について、経験豊富なプログラマーのアドバイスが必要です。解決策または解決策の一部を教えてください。どうやってそこにたどり着いたかを知り、今よりも優れたアプローチを学ぶことができます。
私は 50 レベルごとにメソッドを作成し、そこに各レベルを実行するコードを作成し、これを for ループで 50 回呼び出すことを考えていましたが、これは良い解決策ではありませんが、これまでのところ私が考えることができる唯一の方法ですこれ。どんなアドバイスでも大歓迎です。