21小游戏点用集合实现完整版

21小游戏点用集合实现完整版

集合比数组写着爽多了啊啊 啊!!!!!!!源码源码 拿走不谢

//21点双人小游戏,在21点的范围内谁的点数大谁获胜
public class Demo21collection {
    public static void main(String[] args) {
        System.out.println("21点双人小游戏,每个人的点数不能超过21点超过了之后就输了");
        //创建一个集合存放21点
        ArrayList<Integer> al = new ArrayList<>();
        //创建玩家一的集合
        ArrayList<Integer> one = new ArrayList<>();
        //创建玩家二的集合
        ArrayList<Integer> two = new ArrayList<>();
        //把21个数字放入总集合中
        for (int i = 1; i <= 21; i++) {
            al.add(i);
        }
        //常见键盘录入对象
        Scanner scanner = new Scanner(System.in);
        //创建随机数对象
        Random r = new Random();
        int onenum = 0;//定义两个初始化变量
        int twonum = 0;
        while (true) {
            System.out.println("输入Y发牌输入N不发牌了");
            System.out.println("第一个人开始要牌");
            while (true) {
                String next = scanner.next();
                if (next.equals("Y")) {
                    //随机生成al的集合的索引
                    Integer i = r.nextInt(al.size());
                    //把随机生成的al的索引找到具体的数后添加到one集合中
                    one.add(al.get(i));
                    //然后在al集合中删除这个索引防止出现重复
                    al.remove(i);
                    System.out.println("抽到的牌为:" + one.get(onenum));
                    //初始化变量自增一
                    onenum++;
                }
                //输入n不要牌了
                if (next.equals("N")) {
                    break;
                }
            }
            System.out.println("请第二个人开始要牌");
            while (true) {
                String next1 = scanner.next();
                if (next1.equals("Y")) {
                    int i = r.nextInt(al.size());

                    two.add(al.get(i));
                    al.remove(i);
                    System.out.println("抽到的牌为:" + two.get(twonum));
                    twonum++;
                }
                if (next1.equals("N")) {
                    break;
                }
            }
            //如果两个人都不要牌了那就结束输出谁的大
            int sum1 = 0;
            int sum2 = 0;
            for (Integer integer : one) {
                //遍历one集合拿到里面的的数的和
                sum1 += integer;
            }
            System.out.println("第一个人的总点数为:" + sum1);
            for (Integer integer : two) {
                //遍历two集合拿到里面的的数的和
                sum2 += integer;
            }
            System.out.println("第二个人的总点数为:" + sum2);
            //判断两个人的总点数是不是大于21点
            if (sum1 < 21 && sum2 < 21) {
                if (sum1 > sum2) {
                    System.out.println("第一个人获胜");
                    break;
                } else if (sum1 < sum2) {
                    System.out.println("第二个人获胜");
                    break;
                } else {
                    System.out.println("两个人的点数相同");
                    break;
                }
            } else if (sum1 > 21 && sum2 > 21) {

                System.out.println("两人都大于21本次结果不算数");
                break;
            } else if (sum1 > 21) {
                System.out.println("第一个人的点数大于21啦");
                System.out.println("第二个人获胜");
                break;
            } else if (sum2 > 21) {
                System.out.println("第二个人的点数大于21啦");
                System.out.println("第一个人获胜");
                break;
            }
        }
    }
}
经验分享 程序员 微信小程序 职场和发展