이 문제를 해결하는 데 문제가 있습니다. 문제의 이름을 인쇄 할 콘솔을 얻을 수 없습니다. 이것은 roshambo 게임을 만드는 프로그램입니다.콘솔에 올바른 이름을 표시하는 방법은 무엇입니까? Java
여기 내 코드입니다. 이 같은
public enum Roshambo {
rock {
public String toString() {
return "rock";
}
},
paper {
public String toString() {
return "paper";
}
},
scissors {
public String toString() {
return "scissors";
}
}
}
public abstract class Player {
String name;
Roshambo value;
abstract Roshambo generateRoshambo();
void setName(String name) {
this.name = name;
}
void setRoshambo(Roshambo value) {
this.value = value;
}
String getName() {
return name;
}
Roshambo getRoshambo() {
return value;
}
}
class Bart extends Player {
public Roshambo generateRoshambo() {
super.name = "Bart";
return Roshambo.rock;
}
}
public class Lisa extends Player {
public Roshambo generateRoshambo() {
super.name = "Lisa";
Random r = new Random();
int ch = r.nextInt(3);
if (ch == 0) return Roshambo.rock;
else if (ch == 1) return Roshambo.paper;
else return Roshambo.scissors;
}
}
public class Player1 extends Player {
char value;
Player1(char value) {
this.value = value;
}
public Roshambo generateRoshambo() {
if (value == 'r')
return Roshambo.rock;
else if (value == 's')
return Roshambo.scissors;
else
return Roshambo.paper;
}
}
import java.util.Scanner;
public class RoshamboApp {
public static void main(String args[]) {
char choice = 'y';
char player;
Scanner s = new Scanner(System.in);
System.out.println("Welcome to the game of Roshambo");
Bart b = new Bart();
Lisa l = new Lisa();
Player p = null;
String name;
System.out.println("Enter your name : ");
name = s.next();
System.out.println("Would you like to play Bart or Lisa?(B/L):");
player = s.next().charAt(0);
if (player == 'b')
p = b;
else if (player == 'l')
p = l;
while (choice != 'n') {
System.out.println("Rock, paper or scissors?(R/P/S)");
char ch = s.next().charAt(0);
Player1 p1 = new Player1(ch);
System.out.println(name + ":" + p1.generateRoshambo());
System.out.println(player + ":" + p.generateRoshambo());
if (p1.generateRoshambo() == p.generateRoshambo())
System.out.println("Draw!");
else if (p1.generateRoshambo() == Roshambo.paper && p.generateRoshambo() == Roshambo.rock)
System.out.println(p1.getName() + "Wins");
else if (p1.generateRoshambo() == Roshambo.paper && p.generateRoshambo() == Roshambo.scissors)
System.out.println(p.getName() + "Wins!");
else if (p1.generateRoshambo() == Roshambo.scissors && p.generateRoshambo() == Roshambo.rock)
System.out.println(p.getName() + "Wins");
System.out.println("Play again?(y/n):");
choice = s.next().charAt(0);
}
}
}
콘솔 인쇄 아웃 : Roshambo의 게임에
에 오신 것을 환영합니다 이름 입력 : 는 바트 나 리사 (B/L)을 재생 하시겠습니까 션 : B 종이 B : 플레이 다시 nullWins 바위 (Y/N) : (R/P/S) 종이 숀 락, 종이 또는 가위? 내가
b : rock이 Bart : rock과 null로 승격되면 sean이 승리합니다. 예를 들어
public enum Roshambo {
ROCK("rock"), ... other constants ;
private final String stringRepresentation;
private Roshambo(String stringRepresentation) {
this.stringRepresentation = stringRepresentation;
}
@Override
public String toString() { return stringRepresentation; }
: 모든