我無法完成此問題。我無法讓控制檯在問題中打印名稱。這是一個創建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 搖滾,紙張或剪刀(R/P/S) 紙 肖恩:紙 b:再次 玩搖滾 nullWins(Y/N):
我試圖讓b:搖滾樂成爲巴特:搖滾樂和無效樂贏得成功。