import java.util.Scanner;
public class JiZhiGame {
public static void main(String[] args) {
UI();
Initial();
}
private static void UI() {
// 游戏欢迎界面
System.out.println(" *********************");
System.out.println(" * 欢迎进入极致猜拳~ *");
System.out.println(" *********************");
}
public static void Initial() {
// 游戏初始化阶段
Scanner sc = new Scanner(System.in);
String PlayerName;// 玩家姓名
String AiName;// Ai姓名
int PlayerScore = 0;// 玩家分数
int AiScore = 0;// Ai分数
int PlayNumber = 0;// 对战次数
int money;// 余额点数
// 输入玩家姓名
System.out.println("请给您的角色取个名字吧~(输入后按Enter)");
PlayerName = sc.next();
// 游戏规则说明
System.out.println("好的!" + PlayerName + ",需要阅读游戏说明吗?(y/n)");
String rule = "";
while (!rule.equals("n")) {
rule = sc.next();
if (rule.equals("y")) {
System.out.println("********************************");
System.out.println("*出拳规则: *");
System.out.println("*输入:1、剪刀 2、石头 3、布 *");
System.out.println("*剪刀剪布,石头砸剪刀,布包石头*");
System.out.println("*每次游戏扣除 余额 5 点 *");
System.out.println("*胜利+ 10 点,平局 + 5 点 *");
System.out.println("*余额为< 5 点,需要充值才能游戏*");
System.out.println("********************************");
break;
} else if (rule.equals("n")) {
break;
} else {
System.out.println("输入错误,请重新输入(y/n)");
}
}
// 声明余额点数
money = 0;
// 开始开始游戏前
System.out.println("是否开始游戏?(y/n)");
String begin = "";
while (!begin.equals("y") || !begin.equals("n")) {
begin = sc.next();
if (begin.equals("y")) {
money += 10;
System.out.println("系统赠送您 10 点余额,祝您玩的愉快");
System.out.println("当前余额为:" + money);
break;
} else if (begin.equals("n")) {
System.out.println("再来玩啊~");
return;
}
}
// Ai选择
System.out.println("—————————————————————");
System.out.println("请选择你要对战的角色(1.马云 2.马化腾):");
AiName = "";
while (!AiName.equals("1") || !AiName.equals("2")) {
AiName = sc.next();
if (AiName.equals("1")) {
AiName = "马云";
break;
} else if (AiName.equals("2")) {
AiName = "马化腾";
break;
} else {
System.out.println("请输入正确序号(1或2)");
}
}
System.out.println("您的对手为" + AiName);
// 开始游戏
A: while (PlayNumber >= 0) {
// 判断余额
if (money >= 5) {
money -= 5;
System.out.println("扣除 5 点余额,当前余额:" + money);
} else {
System.out.println("———————————————");
System.out.println("当前余额不足,是否充值?(y/n)");
String TopUp = "";
while (!TopUp.equals("y") || !TopUp.equals("n")) {
TopUp = sc.next();
if (TopUp.equals("y")) {
money += TopUp();
System.out.println("当前余额为:" + money);
break;
} else if (TopUp.equals("n")) {
System.out.println("马化腾曾经说过:");
System.out.println("不充钱,你怎么变得更强?");
break A;
} else {
System.out.println("输入错误,请重新输入(y/n)");
}
}
}
// 游戏过程
System.out.println("————————————");
System.out.println();
System.out.println("出手吧!");
// 判断出拳
String PlayerInHand = " ";
int PlayerHand = 0;
B: while (!PlayerInHand.equals("1") || !PlayerInHand.equals("2")|| !PlayerInHand.equals("3")) {
PlayerInHand = sc.next();
System.out.println();
switch (PlayerInHand) {
case "1":
System.out.println("你出了:剪刀");
PlayerHand = 1;
break B;
case "2":
System.out.println("你出了:石头");
PlayerHand = 2;
break B;
case "3":
System.out.println("你出了:布");
PlayerHand = 3;
break B;
default:
System.out.println("请输入正确的序号");
}
}
System.out.println();
int AiHand = (int) (1 + Math.random() * 3);
switch (AiHand) {
case 1:
System.out.println(AiName + "出了:剪刀");
break;
case 2:
System.out.println(AiName + "出了:石头");
break;
case 3:
System.out.println(AiName + "出了:布");
break;
}
System.out.println();
// 判断对局
if (PlayerHand == AiHand) {
System.out.println("平分秋色啊!");
System.out.println("余额 + 5");
PlayNumber++;
money += 5;
} else if (((PlayerHand == 1) && (AiHand != 2)) || ((PlayerHand == 3) && (AiHand != 1))) {
System.out.println("你给了对手致命一击!");
System.out.println("余额 + 10");
PlayerScore++;
PlayNumber++;
money += 10;
} else {
System.out.println("你被对方击败!辣鸡!");
AiScore++;
PlayNumber++;
}
System.out.println();
System.out.println("再来一把?(y/n)");
String GoOn = "";
while (!GoOn.equals("y") || !GoOn.equals("n")) {
GoOn = sc.next();
if (GoOn.equals("y")) {
System.out.println("继续游戏");
break;
} else if (GoOn.equals("n")) {
System.out.println("不玩了");
break A;
} else {
System.out.println("输入错误请重新输入(y/n)");
}
}
}
// 游戏结束
System.out.println("————————————————");
System.out.println(PlayerName + "VS" + AiName);
System.out.println("对局数" + PlayNumber);
System.out.println("玩家\t\t得分");
System.out.println(PlayerName + "\t\t" + PlayerScore);
System.out.println(AiName + "\t\t" + AiScore);
System.out.println("余额为:" + money);
System.out.println("再来玩啊!");
}
// 充值过程
public static int TopUp() {
Scanner sc = new Scanner(System.in);
System.out.println("哦!我的上帝,请输入您要充值的金额");
// 输入充值金额
int TopUp = sc.nextInt();
System.out.println("充值成功");
return TopUp;
}
}
Java 循环小练习(需要充钱的剪刀石头布)
最新推荐文章于 2022-04-14 11:30:19 发布