[b]人机猜拳的java题,我想要在下面的程序中改变人的类,去掉匿名,改成自己输入名字,还有就是添加代码,使显示得结果中增加以下内容如下姓名 得分
xxx 0
曹操 1代码如下,求高手帮我解决Computer.java package com.game.guess;public class Computer {
String name = "匿名";
int score = 0;;
public int showFist(){
int show = (int)(Math.random()*10)%3 + 1; //产生随机数,表示电脑出拳
switch(show){
case 1:
System.out.println("电脑出拳: 剪刀");
break;
case 2:
System.out.println("电脑出拳: 石头");
break;
case 3:
System.out.println("电脑出拳: 布");
break;
}
return show;
}
}
Game.java package com.game.guess;
import java.util.Scanner;
public class Game {
Person person; //甲方
Computer computer; //乙方
int count; //对战次数
/**
* 初始化
*/
public void initial(){
person = new Person();
computer = new Computer();
count = 0;
}
/**
* 开始游戏
*/
public void startGame() {
System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------\n");
System.out.println("\n\t\t******************");
System.out.println ("\t\t** 猜拳, 开始 **");
System.out.println ("\t\t******************");
System.out.println("\n\n出拳规则:1.剪刀 2.石头 3.布");
/*选择对方角色*/
System.out.print("请选择角色(1:刘备 2:孙权 3:曹操): ");
Scanner input = new Scanner(System.in);
int role = input.nextInt();
if(role == 1){
computer.name = "刘备";
}else if(role == 2){
computer.name = "孙权";
}else if(role == 3){
computer.name = "曹操";
}
System.out.print("\n要开始吗?(y/n) ");
String con = input.next();
int perFist; //用户出的拳
int compFist; //计算机出的拳
while(con.equals("y")){
/*出拳*/
perFist = person.showFist();
compFist = computer.showFist();
/*裁决*/
if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n"); //平局
}else if((perFist == 1 && compFist == 3) || (perFist == 2 && compFist == 1) || (perFist == 3 && compFist == 2)){
System.out.println("结果: 恭喜, 你赢了!"); //用户赢
person.score++;
}else{
System.out.println("结果说:^_^,你输了,真笨!\n"); //计算机赢
computer.score++;
}
count++;
System.out.print("\n是否开始下一轮(y/n): ");
con = input.next();
}
/*显示结果*/
showResult();
}
/**
* 显示比赛结果
*/
public void showResult(){
/*显示最后结果*/
System.out.println("---------------------------------------------------");
System.out.println(computer.name + " VS " + person.name);
System.out.println("对战次数:"+ count);
int result = calcResult();
if(result == 1){
System.out.println("结果:打成平手,下次再和你一分高下!");
}else if(result == 2){
System.out.println("结果:恭喜恭喜!"); //用户获胜
}else{
System.out.println("结果:呵呵,笨笨,下次加油啊!"); //计算机获胜
}
System.out.println("---------------------------------------------------");
}
/**
* 计算比赛结果
*/
public int calcResult(){
if(person.score == computer.score){
return 1;
}else if(person.score > computer.score){
return 2;
}else{
return 3;
}
}
}
Person.javapackage com.game.guess;
import java.util.Scanner;
public class Person {
String name = "匿名";
int score = 0;
public int showFist(){
Scanner input = new Scanner(System.in);
System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字) :");
int show = input.nextInt();
switch(show){
case 1:
System.out.println("你出拳: 剪刀");
break;
case 2:
System.out.println("你出拳: 石头");
break;
case 3:
System.out.println("你出拳: 布");
break;
}
return show;
}
}
Start.java: package com.game.guess;public class StartGuess { /**
* 人机互动版猜拳游戏
* @param args
*/
public static void main(String[] args) {
Game game = new Game();
game.initial();
game.startGame();
}
}
xxx 0
曹操 1代码如下,求高手帮我解决Computer.java package com.game.guess;public class Computer {
String name = "匿名";
int score = 0;;
public int showFist(){
int show = (int)(Math.random()*10)%3 + 1; //产生随机数,表示电脑出拳
switch(show){
case 1:
System.out.println("电脑出拳: 剪刀");
break;
case 2:
System.out.println("电脑出拳: 石头");
break;
case 3:
System.out.println("电脑出拳: 布");
break;
}
return show;
}
}
Game.java package com.game.guess;
import java.util.Scanner;
public class Game {
Person person; //甲方
Computer computer; //乙方
int count; //对战次数
/**
* 初始化
*/
public void initial(){
person = new Person();
computer = new Computer();
count = 0;
}
/**
* 开始游戏
*/
public void startGame() {
System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------\n");
System.out.println("\n\t\t******************");
System.out.println ("\t\t** 猜拳, 开始 **");
System.out.println ("\t\t******************");
System.out.println("\n\n出拳规则:1.剪刀 2.石头 3.布");
/*选择对方角色*/
System.out.print("请选择角色(1:刘备 2:孙权 3:曹操): ");
Scanner input = new Scanner(System.in);
int role = input.nextInt();
if(role == 1){
computer.name = "刘备";
}else if(role == 2){
computer.name = "孙权";
}else if(role == 3){
computer.name = "曹操";
}
System.out.print("\n要开始吗?(y/n) ");
String con = input.next();
int perFist; //用户出的拳
int compFist; //计算机出的拳
while(con.equals("y")){
/*出拳*/
perFist = person.showFist();
compFist = computer.showFist();
/*裁决*/
if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n"); //平局
}else if((perFist == 1 && compFist == 3) || (perFist == 2 && compFist == 1) || (perFist == 3 && compFist == 2)){
System.out.println("结果: 恭喜, 你赢了!"); //用户赢
person.score++;
}else{
System.out.println("结果说:^_^,你输了,真笨!\n"); //计算机赢
computer.score++;
}
count++;
System.out.print("\n是否开始下一轮(y/n): ");
con = input.next();
}
/*显示结果*/
showResult();
}
/**
* 显示比赛结果
*/
public void showResult(){
/*显示最后结果*/
System.out.println("---------------------------------------------------");
System.out.println(computer.name + " VS " + person.name);
System.out.println("对战次数:"+ count);
int result = calcResult();
if(result == 1){
System.out.println("结果:打成平手,下次再和你一分高下!");
}else if(result == 2){
System.out.println("结果:恭喜恭喜!"); //用户获胜
}else{
System.out.println("结果:呵呵,笨笨,下次加油啊!"); //计算机获胜
}
System.out.println("---------------------------------------------------");
}
/**
* 计算比赛结果
*/
public int calcResult(){
if(person.score == computer.score){
return 1;
}else if(person.score > computer.score){
return 2;
}else{
return 3;
}
}
}
Person.javapackage com.game.guess;
import java.util.Scanner;
public class Person {
String name = "匿名";
int score = 0;
public int showFist(){
Scanner input = new Scanner(System.in);
System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字) :");
int show = input.nextInt();
switch(show){
case 1:
System.out.println("你出拳: 剪刀");
break;
case 2:
System.out.println("你出拳: 石头");
break;
case 3:
System.out.println("你出拳: 布");
break;
}
return show;
}
}
Start.java: package com.game.guess;public class StartGuess { /**
* 人机互动版猜拳游戏
* @param args
*/
public static void main(String[] args) {
Game game = new Game();
game.initial();
game.startGame();
}
}
解决方案 »
- 怎样把JTree加入ScrollPane中(不是JScrollPane)
- 我的编辑器出现了 空格标记,回车标记,等一些原来看不到的控制信息,怎么办??
- 如何使用Inputstream读取mdb问题
- 关于置顶窗体的问题
- xslt高手请进
- 请高手指点,从C++到Java必碰到的问题
- 如何确定Frame在屏幕的位置
- 警告 建议不要使用类型 java.awt.Component 的方法 size()————请教高手!
- java 深度历险 与 肯德基 套餐+鸡米花
- 救命!!!中文显示的问题,我用apache.poi生成excel,但是不能显示中文,各位大哥大姐,就我一命,一定给分。
- java如何使某方法中的while每隔一秒执行一次
- 代码如下
* 开始游戏
*/
public void startGame() {
System.out.println("----------------欢 迎 进 入 游 戏 世 界----------------\n");
System.out.println("\n\t\t******************");
System.out.println ("\t\t** 猜拳, 开始 **");
System.out.println ("\t\t******************");Scanner input = new Scanner(System.in); System.out.println ("请输入名字:");
String uname =input.nextString();
person.name=uname; System.out.println("\n\n出拳规则:1.剪刀 2.石头 3.布");
/*选择对方角色*/
System.out.print("请选择角色(1:刘备 2:孙权 3:曹操): ");
int role = input.nextInt();
if(role == 1){
computer.name = "刘备";
}else if(role == 2){
computer.name = "孙权";
}else if(role == 3){
computer.name = "曹操";
}
System.out.print("\n要开始吗?(y/n) ");
String con = input.next();
int perFist; //用户出的拳
int compFist; //计算机出的拳
while(con.equals("y")){
/*出拳*/
perFist = person.showFist();
compFist = computer.showFist();
/*裁决*/
if((perFist == 1 && compFist == 1) || (perFist == 2 && compFist == 2) || (perFist == 3 && compFist == 3)){
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧 !\n"); //平局
}else if((perFist == 1 && compFist == 3) || (perFist == 2 && compFist == 1) || (perFist == 3 && compFist == 2)){
System.out.println("结果: 恭喜, 你赢了!"); //用户赢
person.score++;
}else{
System.out.println("结果说:^_^,你输了,真笨!\n"); //计算机赢
computer.score++;
}
count++;
System.out.print("\n是否开始下一轮(y/n): ");
con = input.next();
}
/*显示结果*/
showResult();
} public void showResult(){
/*显示最后结果*/
System.out.println("---------------------------------------------------");
System.out.println(computer.name + " VS " + person.name);
System.out.println("对战次数:"+ count);
int result = calcResult();
if(result == 1){
System.out.println("结果:打成平手,下次再和你一分高下!");
}else if(result == 2){
System.out.println("结果:恭喜恭喜!"); //用户获胜
}else{
System.out.println("结果:呵呵,笨笨,下次加油啊!"); //计算机获胜
}
System.out.println("姓名\t得分");
System.out.println(person.name+"\t"+person.score );
System.out.println(computer.name+"\t"+computer.score );
System.out.println("---------------------------------------------------");
}