ロック/ペーパー/はさみアプリを作成しようとしていますが、問題が発生しています。以下のコードでは、「ランダムr」は1〜3の番号を選択し、R/P/Sに割り当てます。その部分はうまくいきますが、私のswitch文のスコアやトーストコードはそうではありません。 "case"の横にある整数は正しい選択値でなければなりません。誰かが私の問題を見つけることができれば、私はそれを感謝します。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-): "一様に擬似乱数を返します0(両端を含む)と指定された値(排他的)の間のint値を分散します。 =>つまり、1,2,3の値ではなく0,1,2の値を取得します。 – Seelenvirtuose
はい、Android Studioとまったく関係ありません。 – EJP