Я создаю игру «Камень, ножницы, бумага» и хочу, чтобы в ней отображались отдельные победы, поражения и ничьи.
Когда я запускаю его, он всегда говорит, что я проиграл.
Я думаю, что проблема заключается либо в операторах if-then, которые должны увеличивать правильное значение.
if(ret == 1)//starts the increases of wins and losses
{
if(ret != 0)
{
if (ret != 2)
{
w += 1;
}
}
}
if(ret == 0)
{
if(ret != 1)
{
if(ret != 2)
{
l += 1;
}
}
}
if(ret == 2)
{
if(ret != 1)
{
if(ret != 0)
{
t += 1;
}
}
}
Или в этом методе, который определяет, выиграл человек или проиграл.
public static int winnerRet(char user, char compGuess)// method to determine winner
{
int ret = 3;
if(user == 'R')
{
if(compGuess != 'P')
{
if(compGuess != 'R')
{
ret = 1;
}
ret = 2;
}
ret = 0;
}
if(user == 'S')
{
if(compGuess != 'R')
{
if(compGuess != 'S')
{
ret = 1;
}
ret = 2;
}
ret = 0;
}
if(user == 'P')
{
if(compGuess != 'S')
{
if(compGuess != 'P')
{
ret = 1;
}
ret = 2;
}
ret = 0;
}
return ret;
}//end winnerRet
Последнее, что я думаю, это может быть метод, который генерирует выбор компьютеров.
public static char compChoice()//starts method to generate computure choice
{
Random random = new Random();
int compNum;
char compGuess = '\0';
compNum = 1 + random.nextInt(3);
if (compNum == 1)
{
compGuess = 'R';
}
if(compNum == 2)
{
compGuess = 'S';
}
if(compNum == 3)
{
compGuess = 'P';
}
return compGuess;
}//end method compChoice
Как я могу это исправить?
if(ret == 1) { if(ret != 0) { if (ret != 2){ w += 1; } } }
, какая у вас там логика? 1 это уже не 0 и не 2.... - person Elliott Frisch   schedule 29.09.2014int ret = 3;
в строке 3? Почему бы не поставитьelse { int ret = 3; }
? - person jyoonPro   schedule 29.09.2014