0
点赞
收藏
分享

微信扫一扫

猜拳小游戏(while死循环+switch语句)

松鼠树屋 2022-03-17 阅读 42

问题:

猜拳小游戏,玩家出拳通过键盘录入的方式实现(0表示石头 1表示剪刀 2表示布)

电脑通过随机数的方式实现(0表示石头 1表示剪刀 2表示布)

当玩家或者电脑胜利三局,游戏结束,输出谁是赢家

思考:

怎样的条件算是获胜?

1.键盘录入可能会出错,所以做一个死循环 控制键盘录入正确为止 死循环才结束

2.电脑随机数出拳,r.nextInt(3);

3.int playerCount=0;       //玩家赢了的次数
   int computerCount=0; //电脑赢了的次数
   用死循环包裹人和电脑猜拳的过程

4.

电脑  -  人

石头0   石头0   平局      结果 0-0=0
剪刀1   剪刀1   平局      结果 0-0=0
布2     布2       平局      结果 0-0=0
        
石头0  剪刀1   电脑赢    结果 0-1=-1
剪刀1  布2      电脑赢    结果 1-2=-1
布2     石头0   电脑赢    结果 2-0=2

石头0  布2      人赢       结果 0-2=-2        
剪刀1  石头0   人赢       结果 1-0=1
布2    剪刀1    人赢       结果 2-1=1        

代码如下:

import java.util.Random;
import java.util.Scanner;

public class A {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        int playerCount = 0;
        int computerCount = 0;
        while (true) {
            System.out.println("猜拳开始!\n请输入一个数,0表示石头 1表示剪刀 2表示布");
            int playerNumber = sc.nextInt();
            if (playerNumber < 0 || playerNumber > 2) {
                System.out.println("输入有误,请从新输入");
            } else {
                switch (playerNumber) {
                    case 0:
                        System.out.println("玩家出石头");
                        break;
                    case 1:
                        System.out.println("玩家出剪刀");
                        break;
                    case 2:
                        System.out.println("玩家出布");
                        break;
                }
                int computerNumber = r.nextInt(3);
                switch (computerNumber) {
                    case 0:
                        System.out.println("电脑出石头");
                        break;
                    case 1:
                        System.out.println("电脑出剪刀");
                        break;
                    case 2:
                        System.out.println("电脑出布");
                        break;
                }
                // 定义result 为电脑出拳数字减去玩家出拳数字,判断输赢,
                int result = computerNumber - playerNumber;
                if (result == 0) {
                    System.out.println("本局平局");
                } else if (result == -1 || result == 2) {
                    System.out.println("本局电脑获胜");
                    computerCount++;
                } else {
                    System.out.println("本局玩家获胜");
                    playerCount++;
                }
                System.out.println("目前比分 电脑VS玩家");
                System.out.println(computerCount + ":" + playerCount);
                // 当任意一方赢得次数达到三次,就最终获胜
                if (computerCount == 3) {
                    System.out.println("比赛结束");
                    System.out.println("最终电脑获胜");
                    break;
                } else if (playerCount == 3) {
                    System.out.println("比赛结束");
                    System.out.println("最终玩家获胜");
                    break;
                }
            }
        }
    }
}
举报

相关推荐

0 条评论