gpt4 book ai didi

java - 按钮上的数字不同

转载 作者:行者123 更新时间:2023-12-01 18:11:20 26 4
gpt4 key购买 nike

我是一名 Android 初学者程序员,我创建了自己的游戏,该游戏是根据随机生成的数字进行添加的。玩家的任务是通过相加来猜测结果,选择 3 个给定的数字,其中的数字才是真正的结果。一切正常,但我希望每轮的正确结果都在另一个按钮上,这样玩家就不会意识到正确的结果在按钮 1 上,而按钮 2 和 3 是 false 。有问题的代码:

private void startTimerThread() {
final Handler handler = new Handler();
los();
proba.setText("dodawanie");
c = Dodawanie(a, b);
Random liczba = new Random();
h = liczba.nextInt(5);
Toast.makeText(getApplicationContext(), String.valueOf(c), Toast.LENGTH_LONG).show();
Runnable runnable = new Runnable() {
public void run() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
public void run() {
W1.setText(String.valueOf(c));
Wyb1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
p++;
l.setText(String.valueOf(p));
startTimerThread();

}
});
W2.setText(String.valueOf(l1));
Wyb2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Zle", Toast.LENGTH_LONG).show();
}
});
W3.setText(String.valueOf(l2));
Wyb3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Zle", Toast.LENGTH_LONG).show();
}
});
}
});

}
};
new Thread(runnable).start();
}

enter image description here

如果这有帮助,那么整个 Activity 代码如下。请,,,

public class GameSingleActivity extends AppCompatActivity {

TextView proba,Dz,W1,W2,W3,l;
private int a,b,c,l1,l2,p=0,h;
ImageButton Wyb1,Wyb2,Wyb3;
ProgressBar mProgressBar;
boolean running = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game_single);

proba = findViewById(R.id.textView12);
Dz = findViewById(R.id.Dzialanie);
W1 = findViewById(R.id.Wpozycja1);
W2 = findViewById(R.id.Wpozycja2);
W3 = findViewById(R.id.Wpozycja3);
l = findViewById(R.id.Level);
Wyb1 = findViewById(R.id.imageButton11);
Wyb2 = findViewById(R.id.imageButton12);
Wyb3 = findViewById(R.id.imageButton13);
mProgressBar=findViewById(R.id.progressBar);
l.setText("0");



if (getIntent().getExtras()!=null) {
int buttonPressed = getIntent().getExtras().getInt(MenuGameActivity.INTENT_KEY);

if (buttonPressed == MenuGameActivity.FIRST_OPTION) {
// first button is clicked
proba.setText("dodawanie");
startTimerThread();

} else if (buttonPressed == MenuGameActivity.SECOND_OPTION) {
//second button is clicked
proba.setText("odejmowanie");
} else if (buttonPressed == MenuGameActivity.THIRD_OPTION) {
//second button is clicked
proba.setText("odejmowanie");
}else if (buttonPressed == MenuGameActivity.FOURTH_OPTION) {
//second button is clicked
proba.setText("odejmowanie");
}else if (buttonPressed == MenuGameActivity.FIFTH_OPTION) {
//second button is clicked
proba.setText("odejmowanie");
}else if (buttonPressed == MenuGameActivity.SIXTH_OPTION) {
//second button is clicked
proba.setText("odejmowanie");
}

}
}



///////////////////////////////////////////

private void startTimerThread() {
final Handler handler = new Handler();
los();
proba.setText("dodawanie");
c = Dodawanie(a, b);
Random liczba = new Random();
h = liczba.nextInt(5);
Toast.makeText(getApplicationContext(), String.valueOf(c), Toast.LENGTH_LONG).show();
Runnable runnable = new Runnable() {
public void run() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
public void run() {
W1.setText(String.valueOf(c));
Wyb1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
p++;
l.setText(String.valueOf(p));
startTimerThread();

}
});
W2.setText(String.valueOf(l1));
Wyb2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Zle", Toast.LENGTH_LONG).show();
}
});
W3.setText(String.valueOf(l2));
Wyb3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Zle", Toast.LENGTH_LONG).show();
}
});
}
});

}
};
new Thread(runnable).start();
}


public int Dodawanie(int a,int b)
{
String A = String.valueOf(a);
String B = String.valueOf(b);
Dz.setText(A+" + "+B);
return a + b;
}
public void los()
{
Random liczba = new Random();
a = liczba.nextInt(101);
b = liczba.nextInt(101);
l1= liczba.nextInt(101)+30;
l2= liczba.nextInt(101)+30;

}



}

最佳答案

我认为最简单、最快的方法是每次提出新问题时对 W1/Wyb1 成员进行洗牌。

目前,您在 OnCreate 开始时设置它们一次。只需编写另一个函数,该函数将在 run() 中的第一行之前以Random 方式重新分配这些字段,或者更准确地说 - 在 W1.setText 之前(String.valueOf(c));

下面是一个伪代码(我将其写在编辑框中),它应该证明(或不证明)这种方法是否适合您的需要。

void Shuffle() {
switch(new Random().nextInt(3)) {
case 0:
W1 = findViewById(R.id.Wpozycja1);
W2 = findViewById(R.id.Wpozycja2);
W3 = findViewById(R.id.Wpozycja3);

Wyb1 = findViewById(R.id.imageButton11);
Wyb2 = findViewById(R.id.imageButton12);
Wyb3 = findViewById(R.id.imageButton13);
break;
case 1:
W2 = findViewById(R.id.Wpozycja1);
W1 = findViewById(R.id.Wpozycja2);
W3 = findViewById(R.id.Wpozycja3);

Wyb2 = findViewById(R.id.imageButton11);
Wyb1 = findViewById(R.id.imageButton12);
Wyb3 = findViewById(R.id.imageButton13);
break;
case 2:
W3 = findViewById(R.id.Wpozycja1);
W2 = findViewById(R.id.Wpozycja2);
W1 = findViewById(R.id.Wpozycja3);

Wyb3 = findViewById(R.id.imageButton11);
Wyb2 = findViewById(R.id.imageButton12);
Wyb1 = findViewById(R.id.imageButton13);
break;
}
}

关于java - 按钮上的数字不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60464780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com