Я новичок в java. Я пишу образец игры с ножницами из каменной бумаги. пользовательский ввод 0,1,2 для скалы, бумаги, ножниц соответственно. программа произвольно сгенерировала результат. мне почти удалось заставить его работать, но единственное, за что я застрял, - это как STOP THE FOR LOOP IF ONE OF THE SIDE WINS CONSECUTIVELY FOR THREE TIMES
.Как остановить цикл в java, если значение увеличивается в три раза подряд?
ЭТО ОРИГИНАЛ ВОПРОС
Напишите программу, которая играет рок-ножницы-бумага игры. Правило заключается в том, что ножница выигрывает против бумаги, нокамедцы выигрывают, а бумага выигрывает у скалы. Программа представляет собой ножницу как 0, камень как 1, а бумагу как 2. Игра должна воспроизводиться между компьютером и игроком. Программа предложит пользователю ввести количество раундов, чтобы выиграть. Например, если пользователь вводит 4, победитель должен выиграть в наименее 3 из 4 раундов. Если любая из сторон побеждает 3 раза подряд, игра заканчивается раньше, чем . Если пользователь вводит 5 раундов, победитель должен выиграть как минимум 3 из 5 раундов. такое же правило последовательных 3-выигрышей также применяется. После того, как пользователь ввел количество раундов, компьютер случайным образом генерирует число от 0 до 2. Затем программа запрашивает у пользователя число 0, 1 или 2. После последнего раунда (с учетом вышеизложенного правило раннего победителя), программа отображает сообщение о том, побеждает ли компьютер или пользователь, проигрывает или рисует.
ЭТО МОЙ КОД.
package assignment1;
import java.util.Scanner;
import java.util.Random;
public class question1_9 {
// This program is used to play scissor-rock-paper game.
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random random = new Random();
int scissor = 0, rock = 1, paper = 2, round, userinput,comprand, userresult = 0, compresult = 0, control,j,k;
// Variables used in this program is declared and initialized.
/* Number of rounds wished to be play are obtained from user. */
System.out.println("WELCOME TO ROCK PAPER SCISSOR GAME. ");
System.out.println("PLEASE ENTER THE NUMBER OF ROUND YOU WANT TO PLAY: ");
round = scan.nextInt();
control = (round/2)+1;
for(int i = 0; i<round; i++)
{
if (compresult == control | userresult == control)
{
break;
}
System.out.println("ROUND " + (i+1));
System.out.println("PLEASE ENTER:\n 0 for scissor \n 1 for rock \n 2 for paper \n");
userinput = scan.nextInt();
comprand = random.nextInt(3);
if (userinput == 0)
{
if (comprand == 0)
{
System.out.println("COMPUTER IS SCISSOR");
System.out.println("DRAW!!!");
i--;
}
else if (comprand == 1)
{
System.out.println("COMPUTER IS ROCK");
System.out.println("COMPUTER WINS!!!");
compresult++;
}
else
{
System.out.println("COMPUTER IS PAPER");
System.out.println("YOU WIN!!!");
userresult++;
}
}
else if (userinput == 1)
{
if (comprand == 0)
{
System.out.println("COMPUTER IS SCISSOR");
System.out.println("COMPUTER WINS!!!");
compresult++;
}
else if (comprand == 1)
{
System.out.println("COMPUTER IS ROCK");
System.out.println("YOU WIN!!!");
userresult++;
}
else
{
System.out.println("COMPUTER IS PAPER");
System.out.println("DRAW!!!");
i--;
}
}
else
{
if (comprand == 0)
{
System.out.println("COMPUTER IS SCISSOR");
System.out.println("YOU WIN!!!");
userresult++;
}
else if (comprand == 1)
{
System.out.println("COMPUTER IS ROCK");
System.out.println("DRAW!!!");
i--;
}
else
{
System.out.println("COMPUTER IS PAPER");
System.out.println("COMPUTER WINS!!!");
compresult++;
}
}
}
if(compresult == userresult)
System.out.println("\n\nFINAL RESULT IS DRAW!!!");
else if (compresult > userresult)
System.out.println("\n\nFINAL RESULT IS COMPUTER WIN!!!");
else
System.out.println("\n\nFINAL RESULT IS YOU WIN!!!");
}
}
Это не относится ко всем условиям. скажем, что есть 10 матчей, я выиграю матч № 2, 4, 6, ваше решение приведет к разрыву цикла, даже если он не последователен. –
Я понимаю. Я отредактировал свой ответ, просто попробуй это. – shreyas