lee11oh17 Ответов: 2

Как мне сделать камень ножницы бумага на Яве?


Помните детскую игру “Камень, ножницы, бумага”? Это игра для двух игроков, в которой каждый человек одновременно выбирает камень, бумагу или ножницы. Камень бьет ножницы, но проигрывает бумаге, бумага бьет камень, но проигрывает ножницам, а ножницы бьют бумагу, но проигрывают камню. Следующий код предлагает игроку 1 и игроку 2 ввести строку: камень, бумага или ножницы. Завершите код, добавив вложенные операторы if, чтобы соответствующим образом сообщить “Игрок 1 выигрывает”, “игрок 2 выигрывает” или “это ничья.”

пока это единственное, что у меня есть, я ничего не понимаю после этого момента...как я могу сравнивать строки, если они не равны??
import java.util.Scanner;
public class RockPaperScissors
{
     public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Player 1: Choose rock, scissors, or paper:";);
        String player1 = scan.next().toLowerCase();
        System.out.println("Player 2: Choose rock, scissors, or paper:");
        String player2 = scan.next().toLowerCase();

          if (player1.equals(player2))
          {
            System.out.print("It is a tie");
          }
        .....
    }
}

2 Ответов

Рейтинг:
1

Member 14793211




//Строки должны сравниваться с помощью метода .equals, а не назначаться как ints
/или, по крайней мере, я предполагаю, что это то, что задание ожидает от вас.

Scanner scan = новый сканер(System.in);

System.out.println("Игрок 1: Выберите камень, бумагу или ножницы:");
игрок1 = сканировать.следующий().столоверчения();
System.out.println("игрок 2: Выберите камень, бумагу или ножницы:");
игрок2 = сканировать.следующий().столоверчения();

если (игрок1.равно(игрок2)) {
System.out.println("это галстук!");
} остальное, если (игрок1."равно" ("рок")) {

if (player2.equals("ножницы")) {
System.out.println("Игрок 1 выигрывает");
} остальное, если (игрок2."равно" ("бумага")) {
System.out.println("игрок 2 выигрывает");
}
} остальное, если (игрок1."равно" ("бумага")) {

если (игрок2."равно" ("рок")) {
System.out.println("игрок 1 выигрывает");
} else if (player2.equals("ножницы")) {
System.out.println("игрок 2 выигрывает");
}
} else if (player1.equals("ножницы")) {

если (игрок2."равно" ("бумага")) {
System.out.println("игрок 1 выигрывает");
} остальное, если (игрок2."равно" ("рок")) {
System.out.println("игрок 2 выигрывает");
}


Richard MacCutchan

- то, что от тебя ожидает задание."
Возможно, но это было больше шести лет назад. Пожалуйста, сосредоточьтесь на текущих вопросах, а не на тех, которые были решены давным-давно.

Рейтинг:
0

Marcelo Camillo

Я думаю, что лучшим подходом было бы рассматривать варианты как целые числа, их легче сравнивать.
Я бы сделал что-то вроде этого:

final static int ROCK = 1, SCISSOR = 2, PAPER = 3;
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Player 1: Choose (1) - Rock, (2) - Scissors, or (3) - Paper: ");
        int player1 = scan.nextInt();
        System.out.println("Player 2: Choose (1) - Rock, (2) - Scissors, or (3) - Paper: ");
        int player2 = scan.nextInt();
     
        if (player1 == player2)
        {
            System.out.print("It is a tie");
        } else {
            switch (player1){
            case ROCK:
                if (player2 == SCISSOR)
                    System.out.print("Player 1 wins!");
                else
                    System.out.print("Player 2 wins!");
                break;
            case SCISSOR:
                if (player2 == PAPER)
                    System.out.print("Player 1 wins!");
                else
                    System.out.print("Player 2 wins!");
                break;
            case PAPER:
                if (player2 == ROCK)
                    System.out.print("Player 1 wins!");
                else
                    System.out.print("Player 2 wins!");
                break;
            }
        }
    }


Richard MacCutchan

Пожалуйста, не делайте за людей домашние задания. Но это не помогает.

Marcelo Camillo

Тогда извини. Я здесь недавно и просто пытаюсь помочь.

Richard MacCutchan

Я уверен, что так оно и было, и это похвально. Но хотели бы вы нанять кого-то, кто получил свою квалификацию, представив работу других людей как свою собственную?

Marcelo Camillo

Вы абсолютно правы. Я запомню это в следующий раз.

lee11oh17

Я не просил полный код или чтобы он сделал мою домашнюю работу за меня, я просто спрашивал, как сравнивать строки, которые не равны, потому что это была та часть, с которой у меня были проблемы. И я даже не могу использовать этот код по той простой причине, что он не сравнивает строки, поэтому он не сделал этого для меня, и на самом деле он вообще не помог мне, хотя я очень ценю его вклад! :)

А еще Ричард спасибо тебе за то, что ты предположил, что я буду претендовать на работу Марсело как на свою собственную, и это заставляет меня чувствовать себя великолепно!

Richard MacCutchan

Что вы имеете в виду под этим "как сравнить строки, которые не равны"; сравнение используется для определения этого факта. И если вы хотите знать специфику любого класса Java его легко найти документация.

Marcelo Camillo

Если только я не совсем понимаю, чего вы хотите, я думаю, что у вас есть проблемы с логикой. С моей точки зрения, вы должны иметь дело с возможными случаями в вашем коде. Как сказал Ричард, вы сравниваете строки, чтобы узнать, равны они или нет.

Часть проверки, если оба игрока выбирают один и тот же вариант, правильна, но вы должны определить где-то в своем коде, какой вариант "сильнее", чем другой, чтобы вы могли сказать, кто выиграл.

H.Brydon

Я несколько согласен с предложением кода, но использование перечислений было бы лучше, чем int...

Я также согласен с замечаниями РМ О выполнении домашних заданий...

CPallini

Я отчасти согласен, но использование перечисления было бы лучше, чем использование целого числа.