この問題を解決するのに問題があります。私は問題の名前を印刷するためのコンソールを得ることができません。これは、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);
}
}
}
コンソールプリントアウト:ジャンケンのゲームに
ようこそ 自分の名前を入力してください:? ショーン あなたはバートやリサ(B/L)を再生したいと思います:B 紙 B: プレイもう一度 nullWinsをロック(Y/N):(R/P/S) 紙 ショーンはロック、紙やはさみ??私は
b:岩がバートになるようにしようとする:ロックとヌーンが勝ち、シアン勝になる。例えば
public enum Roshambo {
ROCK("rock"), ... other constants ;
private final String stringRepresentation;
private Roshambo(String stringRepresentation) {
this.stringRepresentation = stringRepresentation;
}
@Override
public String toString() { return stringRepresentation; }
:すべての