Java - Rock Paper Scissors - в случае ошибки циклически срабатывает дополнительное время и подсчитывает количество побед - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно было сделать игру ножницами из каменной бумаги, которая повторяется 5 раз и становится дополнительной, если вы введете неверное число. Я не смог заставить его зацикливаться достаточно, если он неправильный, всякий раз, когда я помещаю неверную переменную, он делает зацикливание дополнительные времена, но слишком много раз, и мне нужно только 5 правильных раз. Он также не будет подсчитывать количество очков игрока и компьютера. Независимо от того, сколько очков получает каждый оппонент, он показывает только выигрыши игрока: 1 и выигрыш компьютера: 1. Пожалуйста, помогите! Вот мой код

import java.util.*;
public class bmahipat_C5Lab1 {

    public static void main(String[] args) {
        Scanner reader = new Scanner (System.in);
        int player = 0, computer = 0;
        int computerScore = 0, playerScore = 0;
        int loops = 0;

        int rock = 1;
        int paper = 2;
        int scissors = 3;

        for(int i=1; i<6;i++) {
            computer = (int) (Math.random() * 3) + 1;
            System.out.println("Enter 1 for Rock, 2 for Paper, 3 for Scissors");
            player = reader.nextInt();

            if (player > scissors) {
                System.out.println("Not a valid response");
                System.out.println("Enter 1 for Rock, 2 for Paper, 3 for Scissors");
                player = reader.nextInt();
                i = -1;
            }

            if (player == computer) {
                System.out.println("Tie");
            } else if (player == rock ) {
                if(computer == paper){
                    System.out.println ("Player picked Rock, Computer picked Paper, Computer wins");
                    computerScore = +1;
                } else if(computer == scissors) {
                    System.out.println ("Player picked Rock, Computer picked Scissors, Player wins");
                    playerScore = +1;
                }    
            } else if (player == paper) {
                if(computer == rock){
                    System.out.println ("Player picked Paper, Computer picked Rock , Player wins");
                    playerScore = +1;
                } else if(computer == scissors) {
                    System.out.println ("Player picked Paper, Computer picked Scissors, Computer wins");
                    computerScore = +1;
                }   
            } else if (player == scissors) {
                if(computer == rock) {
                    System.out.println ("Player picked Scissors, Computer picked Rock , Computer wins");
                    computerScore = +1;
                } else if(computer == paper) {
                    System.out.println ("Player picked Scissors, Computer picked Paper, Player wins");
                    playerScore = +1;
                }
            }
        }

        System.out.println("");
        System.out.println("Computer Wins " + computerScore);
        System.out.println("Player Wins " + playerScore);
    }
}

1 Ответ

0 голосов
/ 05 сентября 2018

Существует большая разница между

computerScore =+ 1; // This is computerScore = (+1) So it will be always 1

и

computerScore += 1; // this is equals to computerScore=computerScore+1;

и та же логика для

  i = -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...