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 + ",");
        }
    }
}
相关文章
|
9天前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
86 1
|
1月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
429 1
|
3月前
|
前端开发 JavaScript Java
Java 学习路线规划及项目案例中的技术栈应用解析
内容包括:**Java 17核心特性**(如sealed class、record)与模块化开发;Spring Boot 3 + Spring Cloud微服务架构,涉及响应式编程(WebFlux)、多数据库持久化(JPA、R2DBC、MongoDB);云原生技术**如Docker、Kubernetes及CI/CD流程;性能优化(GraalVM Native Image、JVM调优);以及前后端分离开发(Vue 3、Spring Boot集成)。通过全栈电商平台项目实战,掌握从后端服务(用户、商品、订单)到前端应用(Vue 3、React Native)的全流程开发。
175 9
|
1月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
305 63
|
7天前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
55 1
|
8天前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
2月前
|
安全 Java 测试技术
Java 大学期末实操项目在线图书管理系统开发实例及关键技术解析实操项目
本项目基于Spring Boot 3.0与Java 17,实现在线图书管理系统,涵盖CRUD操作、RESTful API、安全认证及单元测试,助力学生掌握现代Java开发核心技能。
105 0
|
2月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
145 0
|
4月前
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
690 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤