Так что я пытаюсь создать приложение для рок/бумаги/ножниц, но у меня проблема. В приведенном ниже коде «Random r» выбирает номер 1-3 и присваивает его R/P/S. Эта часть работает, но код скоринга или тоста в моей инструкции switch не работает. Целое число рядом с «случаем» должно быть правильным правилом выбора? Если кто-то найдет мою проблему, я был бы признателен.Могу ли я использовать рандомизированные числа для оператора switch?
public void decide(){
int playerTotal = 0;
int computerTotal = 0;
TextView pTotal = (TextView)findViewById(R.id.playerTotal);
TextView cTotal = (TextView)findViewById(R.id.compTotal);
pTotal.setText(Integer.toString(playerTotal));
cTotal.setText(Integer.toString(computerTotal));
int cpu = r.nextInt(3); //Randomizer will choose 1-3
if(cpu == 1) {
cpuChoice = "rock";
imgCpu.setImageResource(R.drawable.rock);
}
else if(cpu == 2){
cpuChoice = "paper";
imgCpu.setImageResource(R.drawable.paper);
}
else if(cpu == 3){
cpuChoice = "scissors";
imgCpu.setImageResource(R.drawable.scissors);
}
String winOrLose = "";
switch (cpu){
case 1:
if(myChoice == "rock") {
winOrLose = "Stalemate!";
}
if(myChoice == "paper") {
winOrLose ="paper beats rock! You won this round!";
playerTotal++;
}
if(myChoice == "scissors") {
winOrLose = "rock beats paper! You lost this round!";
computerTotal++;
}
Toast.makeText(MainActivity.this,winOrLose, Toast.LENGTH_SHORT);
break;
case 2:
if(myChoice == "rock") {
winOrLose = "paper beats rock! You lost this round!";
computerTotal++;
}
if(myChoice == "paper") {
winOrLose = "Stalemate!";
}
if(myChoice == "scissors") {
winOrLose = "scissors beats paper! You won this round!";
playerTotal++;
}
Toast.makeText(MainActivity.this,winOrLose, Toast.LENGTH_SHORT);
break;
case 3:
if(myChoice == "rock") {
winOrLose = "rock beats scissors! You won this round!";
playerTotal++;
}
if(myChoice == "paper") {
winOrLose = "scissors beats paper! You lost this round!";
computerTotal++;
}
if(myChoice == "scissors") {
winOrLose = "Stalemate!";
}
Toast.makeText(MainActivity.this,winOrLose, Toast.LENGTH_SHORT);
break;
}
}
Я не вижу проблем с этим кодом, не могли бы вы уточнить, какую проблему вы получаете? –
['Random.nextInt (int)'] (https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextInt-int-): "Возвращает псевдослучайное, равномерно распределенное значение int между 0 (включительно) и заданным значением (эксклюзивным) ". => Это означает, что вы получаете значения 0, 1 или 2 ... а не 1, 2 или 3! – Seelenvirtuose
Да, и Android Studio не имеет к этому никакого отношения. – EJP