Недавно узнав, как создавать классы, объекты, методы в этих классах, как получить к ним доступ из основного метода, и почему это важно, чтобы вам не всегда приходилось переписывать код / создавать короткие строки кода / сохранятьпамять / и т.д., я столкнулся с небольшой проблемой.
Итак, я сделал простую программу Rock Paper Scissors.По сути, каждый раз, когда программа запускается, программа принимает пользовательский ввод - присваивает ее переменной, назначает случайное число другой переменной и сравнивает два ввода, используя несколько операторов if для определения результата.Вот где моя проблема.
Мне сказали, что класс и связанные с ним методы обычно очень широки, но я чувствую, что мой метод, используемый для сравнения двух переменных, слишком короткий и может быть уменьшен /сжатый до гораздо более простого и эффективного кода.
Я не знаю, как этого добиться.Я не уверен, что можно добавить дополнительные переменные, упростить сравнение или что-то в этом роде, или, возможно, убрать некоторые вещи / добавить новые типы кода и т. Д. Дело в том, что я хочу сделать этот код меньшекоренастый и более эффективный.
В коде у меня есть два способа получения точных значений.У меня есть ваши типичные заявления if, но я также сделал заявление о переключении.Оба дают мне одинаковые результаты, но я просто подумал, что оператор switch будет легче читать.
ТАКЖЕ, Я понимаю, что классы и методы, вероятно, бесполезны при создании игры Rock Paper Scissors такой простоты, но я просто хотел получить практику, а что нет.
Вот мой код:
вместе с веб-сайтом, на котором вы можете запустить его: https://repl.it/@ANGELRAMIREZ6/Rock-Paper-Scissors-UPGRADED
import java.util.Scanner;
import java.util.Random;
class Main {
public static void main(String[] args) {
action object = new action();
System.out.println("\nYou will now play Rock Paper Scissors with a Computer.");
object.getUserChoice();
object.getComputerChoice();
object.compareChoices();
}
}
class action {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
int computerChoice;
int userChoice;
int getUserChoice() {
System.out.println("\nDo you choose (0)Rock, (1)Paper, (2)Scissors?");
userChoice = sc.nextInt();
return userChoice;
}
int getComputerChoice() {
computerChoice = rand.nextInt(2);
return computerChoice;
}
/*
void compareChoices() {
//IF YOU PICK ROCK
if (userChoice == 0) {
if (computerChoice == 1) {
System.out.println("You lose!\nYou picked rock and the computer picked paper.");
}
if (computerChoice == 2) {
System.out.println("You win!\nYou picked rock and the computer picked scissors.");
}
if (computerChoice == 0) System.out.println("It's a draw! You both picked rock!");
}
//IF YOU PICK PAPER
if (userChoice == 1) {
if (computerChoice == 0) {
System.out.println("You win!\nYou picked paper and the computer picked rock.");
}
if (computerChoice == 2) {
System.out.println("You lose!\nYou picked paper and the computer picked scissors.");
}
if (computerChoice == 1) System.out.println("It's a draw! You both picked paper!");
}
//IF YOU PICK SCISSORS
if (userChoice == 2) {
if (computerChoice == 1) {
System.out.println("You win!\nYou picked scissors and the computer picked paper.");
}
if (computerChoice == 0) {
System.out.println("You lose!\nYou picked scissors and the computer picked rock.");
}
if (computerChoice == 2) System.out.println("It's a draw! You both picked scissors!");
}
}
*/
void compareChoices() {
switch (userChoice) {
//IF YOU PICK ROCK
case 0:
if (computerChoice == 1) {
System.out.println("You lose!\nYou picked rock and the computer picked paper.");
}
if (computerChoice == 2) {
System.out.println("You win!\nYou picked rock and the computer picked scissors.");
}
if (computerChoice == 0) System.out.println("It's a draw! You both picked rock!");
break;
//IF YOU PICK PAPER
case 1:
if (computerChoice == 0) {
System.out.println("You win!\nYou picked paper and the computer picked rock.");
}
if (computerChoice == 2) {
System.out.println("You lose!\nYou picked paper and the computer picked scissors.");
}
if (computerChoice == 1) System.out.println("It's a draw! You both picked paper!");
break;
//IF YOU PICK SCISSORS
case 2:
if (computerChoice == 1) {
System.out.println("You win!\nYou picked scissors and the computer picked paper.");
}
if (computerChoice == 0) {
System.out.println("You lose!\nYou picked scissors and the computer picked rock.");
}
if (computerChoice == 2) System.out.println("It's a draw! You both picked scissors!");
break;
}
}
}