Java实现一个人机对战的猜拳游戏
【摘要】 通过控制台方式实现一个人机对战的猜拳游戏
通过控制台方式实现一个人机对战的猜拳游戏
1.用户通过输入(2.剪刀 0.石头 5.布)
2.机器随机生成(2.剪刀 0.石头 5.布)
3.胜者积分
4.n 局以后通过积分的多少判定胜负。
开发工具:IDEA
分析:
1.在这个猜拳游戏里首先要解决的是机器人如何出拳?
解决:通过预设一个字符串,然后通过Random类的nextInt方法获取到一个随机整数,将这个整数作为字符串的下标,再通过循环的方法来组成一个随机数。生成对应的出拳情况
2.生成的随机数如何比较?
解决:使用equals()进行比较
3.如何积分?
解决:先给人机各初始积分为0分,每比较一次就记一次分,这里赢一局记10分
完整代码如下:
import java.util.Random;
import java.util.Scanner;
public class MoraTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("--- 猜拳游戏 ---");
System.out.println("你想和机器人玩多少局:请输入(1-100)");
//输入轮数
int number = input.nextInt();
System.out.println("请输入对应数值:\n0-石头 2-剪刀 5-布");
int userIntegral = 0;//用户积分
int robotIntegral = 0;//机器人积分
for (int i = 0; i < number; i++) {
String num = getRandom(1);//获取随机数
String userNum = input.next();//输入出拳的值
String u = putFist(userNum);//根据用户输入的值给对应的剪刀、石头、布
System.out.println("用户的出拳为:"+u);
String n = putFist(num);//根据机器类随机生成的数值给对应的剪刀、石头、布
System.out.println("机器人出拳为:"+n);
//如果用户出石头
if ("0".equals(userNum)) {
if ("2".equals(num)) {//如果机器人出剪刀,用户获胜
userIntegral += 10;
System.out.println("用户获胜!积10分!");
} else if ("5".equals(num)) {//如果机器出布,机器人获胜
robotIntegral += 10;
System.out.println("机器人获胜!积10分!");
} else {//如果机器出石头,则平局,不积分
System.out.println("平局!");
}
} else if ("2".equals(userNum)) {//如果用户出剪刀
if ("2".equals(num)) {//如果机器人也出剪刀,则平局
System.out.println("平局!");
} else if ("5".equals(num)) {//如果机器出布,用户获胜
userIntegral += 10;
System.out.println("用户获胜!积10分!");
} else {//如果机器出石头,机器人获胜
robotIntegral += 10;
System.out.println("机器人获胜!积10分!");
}
} else {//如果用户出布
if ("2".equals(num)) {//如果机器人出剪刀,机器人获胜
robotIntegral += 10;
System.out.println("机器人获胜!积10分!");
} else if ("5".equals(num)) {//如果机器出布,则平局
System.out.println("平局!");
} else { //如果机器出石头,用户获胜
userIntegral += 10;
System.out.println("用户获胜!积10分!");
}
}
num = null;
}
System.out.println("****************");
System.out.println("战斗结束,查看分数:");
System.out.println("用户总积分:"+userIntegral+"分");
System.out.println("机器人总积分:"+robotIntegral+"分");
if (userIntegral > robotIntegral){
System.out.println("经过"+number+ "局后,最终的胜利者是:用户!");
} else if (userIntegral == robotIntegral) {
System.out.println("经过"+number+ "局后,你们打成了平局");
} else {
System.out.println("经过"+number+ "局后,最终的胜利者是:机器人!");
}
}
public static String putFist(String s){
String fist = null;
if ("0".equals(s)){
fist = "拳头";
} else if ("2".equals(s)) {
fist = "剪刀";
} else if ("5".equals(s)){
fist = "布";
} else {
System.err.println("你输入的不对!");
return null;
}
return fist;
}
//拳头属性
//0-石头 2-剪刀 5-布
public static String getRandom(int length) {
String fistNum = "520";
//创建一个新的随机数生成器。
Random random = new Random();
//构造一个字符串缓冲区
StringBuilder builder = new StringBuilder();
for (int j = 0; j < length; j++) {
//从fistNum = "520"中随机取一个数值
builder.append(fistNum.charAt(random.nextInt(3)));
}
return String.valueOf(builder);
}
}
运行结果:
————————————————
版权声明:本文为CSDN博主「JAVA专注小白三十年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45819587/article/details/119085848
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)