我想创建一个 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 的方法来运行游戏,在这个方法中我有 for 循环运行 50 次,它检查我的数组的索引 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 次,这不是一个好的解决方案,但到目前为止我能想到的唯一方法这。任何意见是极大的赞赏。