java实现斗地主发牌项目

简介: java集合实现斗地主发牌项目

java集合实现斗地主发牌项目

package com.tjcu;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/**
 * @author 王恒杰
 * @version 1.0
 * @date 2021/10/7 22:09
 * @email 1078993387@qq.com
 * @Address 天津
 * @Description:实现斗地主功能
 */
public class FightTheLandlord {
    public static void main(String[] args) {
        /**
         3: 发牌的操作(有很多种)
         4: 抢地主过程
         5: 查看自己手里面牌的过程
         */
        //构建了poker对象;里面存放了我们所有的扑克牌
        List<String> poker = new ArrayList<String>();
        poker.add("大王");
        poker.add("小王");
        String[] color = {"♤", "♡", "♣", "♢"};
        String[] font = {"A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"};
//        色号
        for (String c : color) {
//            数字
            for (String f : font) {
                poker.add(c + f);
            }
        }
        // 2: 洗牌的操作
        // shuffle方法能够打乱集合里面元素的顺序
        Collections.shuffle(poker);
        // 3 : 发牌的操作(有很多种)
        //3.1 每个人直接发13张
        //构建3个人来保存这个牌
        List<String> p1 = new ArrayList<>();
        List<String> p2 = new ArrayList<>();
        List<String> p3 = new ArrayList<>();
        //通过循环的方式,把牌堆里面的13张牌给第一个玩家
        for (int i = 0; i < poker.size() - 3; i++) {
            //第一张牌发给1号玩家
            if (i % 3 == 0) {
                p1.add(poker.get(i));
            } else if (i % 3 == 1) {
                p2.add(poker.get(i));
            } else {
                p3.add(poker.get(i));
            }
        }
        //接收键盘录入
        Scanner scanner = new Scanner(System.in);
        System.out.println("抢地主的过程: ");
        //从1号玩家开始 是否需要抢地主
        System.out.println("1号玩家是否抢地主(0-3):");
        int p1Result = scanner.nextInt();
        //代表我们1号玩家抢了地主
        if (p1Result == 3) {
            //抢了地主获取最后三张牌
            p1.add(poker.get(51));
            p1.add(poker.get(52));
            p1.add(poker.get(53));
        } else {
            //练习:需要大家去完善一下我们这个代码;  如果2号没有抢到地主; 三号需要抢地主
            System.out.println("2号玩家是否抢地主(0-3):");
            int p2Result = scanner.nextInt();
            if (p1Result == 3) {
                p2.add(poker.get(51));
                p2.add(poker.get(52));
                p2.add(poker.get(53));
            } else {
                System.out.println("2号玩家是否抢地主(0-3):");
                int p3Result = scanner.nextInt();
                if (p3Result == 3 && p3Result > p2Result && p3Result > p1Result) {
                    p3.add(poker.get(51));
                    p3.add(poker.get(52));
                    p3.add(poker.get(53));
                } else if (p2Result > p1Result) {
                    p2.add(poker.get(51));
                    p2.add(poker.get(52));
                    p2.add(poker.get(53));
                }
            }
        }
        //最后一步; 打印自己的手牌;假设自己是1号玩家
        System.out.println("1号玩家的牌: ");
        for (String s : p1) {
            System.out.print(s + ",");
        }
//        换行
        System.out.println();
        System.out.println("-------------------------");
        System.out.println("2号玩家的牌: ");
        for (String s : p2) {
            System.out.print(s + ",");
        }
//        换行
        System.out.println();
        System.out.println("---------------------------");
        System.out.println("3号玩家的牌: ");
        for (String s : p3) {
            System.out.print(s + ",");
        }
    }
}
相关文章
|
1天前
|
设计模式 消息中间件 监控
如何在Java项目中实现可扩展性架构
如何在Java项目中实现可扩展性架构
|
1天前
|
设计模式 Java 开发者
如何在Java项目中实现领域驱动设计(DDD)
如何在Java项目中实现领域驱动设计(DDD)
|
1天前
|
消息中间件 Java 中间件
如何在Java项目中实现分布式事务管理
如何在Java项目中实现分布式事务管理
|
1天前
|
消息中间件 Java 中间件
如何在Java项目中实现高效的消息队列系统
如何在Java项目中实现高效的消息队列系统
|
1天前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
11 0
|
1天前
|
Java 索引
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
|
1天前
|
前端开发 搜索推荐 JavaScript
如何成功完成一个Java项目答辩
如何成功完成一个Java项目答辩
5 1
|
1天前
|
SQL XML JavaScript
【若依Java】15分钟玩转若依二次开发,新手小白半小时实现前后端分离项目,springboot+vue3+Element Plus+vite实现Java项目和管理后台网站功能
摘要: 本文档详细介绍了如何使用若依框架快速搭建一个基于SpringBoot和Vue3的前后端分离的Java管理后台。教程涵盖了技术点、准备工作、启动项目、自动生成代码、数据库配置、菜单管理、代码下载和导入、自定义主题样式、代码生成、启动Vue3项目、修改代码、以及对代码进行自定义和扩展,例如单表和主子表的代码生成、树形表的实现、商品列表和分类列表的改造等。整个过程详细地指导了如何从下载项目到配置数据库,再到生成Java和Vue3代码,最后实现前后端的运行和功能定制。此外,还提供了关于软件安装、环境变量配置和代码自动生成的注意事项。
|
2天前
|
设计模式 Java
设计模式在Java项目中的实际应用
设计模式在Java项目中的实际应用
|
2天前
|
jenkins Java 持续交付
运用Jenkins实现Java项目的持续集成与自动化部署
在新建的Jenkins Job中,我们需要配置源码管理,通常选择Git、SVN等版本控制系统,并填入仓库地址和凭据。接着,设置构建触发器,如定时构建、轮询SCM变更、GitHub Webhook等方式,以便在代码提交后自动触发构建过程。
21 2