通过控制台方式实现一个人机对战的猜拳游戏 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;
}
public static String getRandom(int length) {
String fistNum = "520";
Random random = new Random();
StringBuilder builder = new StringBuilder();
for (int j = 0; j < length; j++) {
builder.append(fistNum.charAt(random.nextInt(3)));
}
return String.valueOf(builder);
}
}
运行结果:
|