人机猜拳互动游戏
####游戏规则####
1、选取对战角色
根据提示,输入用户的姓名,选择猜拳的对手
2、猜拳
开始对战,用户选择出拳,与对手进行比较,提示胜负信息。
3、记录分数
每局猜拳结束,获胜一方加 1 分(平局都不加分),停止游戏时,显示对战次数
以及对战最终结果。
阶段一: 显示游戏信息及选择对战对手, 运行效果如下图所示。
输入: 从键盘接收一个数字 1~3, 代表对战对手的编号。
输出: 对战对手
阶段二: 实现一局对战, 运行效果如下图所示。
输入对战角色和用户姓名后,询问是否开始游戏。 若用户输入“y” , 则开始
游戏, 用户和计算机出拳,并给出胜负结果。 否则,直接退出程序。 胜负结果显
示如下:
提示: 计算机如何出拳呢?
产生一个 1~3 的随机数,模拟计算机的出拳结果。2
compFist = (int)(Math.random()*10)%3 + 1; //产生随机数,表示电脑出
拳
阶段三:实现循环对战,并累计得分。
实现循环对战,并且累加赢家的得分, 运行效果如下图所示。
阶段四: 本次游戏结束后,显示对战次数, 双方的各自得分及对战结果, 运行
效果如下图所示:
阶段五: 实现循环游戏, 直到退出系统
代码截图:
我以这样的方式让代码类分开,这里只是单纯的建了一个包,如果是一个项目,那么就需要对代码进行分层,更加规范。
其中:结束的时候对整个回合的一段话,我用数组表示:
public class basic {
public String basic(int a,int b){
String [][]win = new String[3][3];
win[0][0] = "和局,真衰!嘿嘿,等着瞧吧!";
win[0][1] = "^_^你输了,真笨!";
win[0][2] = "恭喜你赢了!";
win[1][0] = "恭喜你赢了!";
win[1][1] = "和局,真衰!嘿嘿,等着瞧吧!";
win[1][2] = "^_^你输了,真笨!";
win[2][0] = "^_^你输了,真笨!";
win[2][1] = "恭喜你赢了!";
win[2][2] = "和局,真衰!嘿嘿,等着瞧吧!";
return win[a][b];
}
}
用一个单独的类来放这个游戏需要初始化声明的对象:
public class guesso {
String name = "";//保存姓名
String answer = "";//保存是否开始
String user="";//保存角色名称
String cqname = "";//保存出拳名称
String cqnum = "";//保存出拳代号
String answer2="";//保存是否开始下一局
int num=0;//角色编号
int part;//角色
int partsum;
}
给大家看看一个我写的主函数类:
public class playGame {
public static void main(String[] args) {
int juese;
int i;//表示玩家出拳的数字
int partsum = 0;
Game g = new Game();
g.init();
System.out.println("-------------欢 迎 进 入 游 戏 世 界---------------");
System.out.println(" *********************");
System.out.println(" **猜拳,开始**");
System.out.println(" *********************");
System.out.println("出拳规则:1.剪刀 2.石头 3.布");
Scanner input = new Scanner(System.in);
try{
juese = input.nextInt();
while(juese!=1&&juese!=2&&juese!=3){//输入内容必须是一个1~3的整数,否则重新输入
System.out.println("输入的内容应该是一个1~3的整数,请重新输入!");
juese=input.nextInt();
}
g.cpoputerPlayer(juese);
System.out.println("请输入您的姓名:");
g.person(input.next());
System.out.println("出拳:(输入0退出)");
i=input.nextInt();
while(i!=0){//若用户不输入0,执行循环体,一直玩游戏
g.chuquan(i);
g.jisuan();
System.out.println("\n出拳:(输入0退出)");
i=input.nextInt();
}
System.out.println("游戏结束!");
g.result();
if(i>partsum){
System.out.println("结果:恭喜!你赢了");
System.out.println("--------------------");
System.out.println();
}else if(i<partsum){
System.out.println("结果:哼!你输了,哈哈加油加油!");
System.out.println("--------------------");
System.out.println();
}else if(i==partsum){
System.out.println("结果:打成平手,下次再和你一决高下!");
System.out.println("--------------------");
System.out.println();
}
}catch(InputMismatchException e){
System.out.println("程序运行出错:输入非法字符!");
}finally{
System.out.println("\n谢谢使用!");
}
input.close();
}
}
我们在写任何一个项目的时候,首先就是要构思这个项目分成几个板块,这几个板块都是些什么呢? 我该如何用代码的形式把他们一一写出来,最后能达到我期待的那个效果。
以上是我在这个项目中认为更加注意的代码了哈,并没有全部贴上去,当然你要结合自己想要写的东西的需求去调整,用什么样的方法有效,相信你会找到适合你的解决方式咯!
github代码上传在这里:
https://github.com/Liumce/personguess.git请各位多指教咯! 谢谢