当前位置: 首页 > news >正文

用Java写斗地主前期工作的一些小想法

目前我们并不是要实现一个游戏,而是要对斗地主游戏做准备,主要是做牌+洗牌+发牌+给发的牌进行排序。在这个过程中我希望通过集中方式来实现:

1. 使用集合+方法+字符串的运用完成以上功能

2. 使用面向对象思想,对1做改进,主要是对其排序的改进,从而理解面向对象的真正意义

3. 对2中代码再次进行简化,增强其可读性,同样的实现,可以用更简洁更省内存的方法来实现代码

实现1中的代码

package test02;
import java.util.*;
public class Entry {
   
    public static void main(String[] args) {
   
        //1.创建牌盒
        List<String> porkers = new ArrayList<>();
          //创建花色和点数
        String[] colors = {
   "♥","♠","♣","♦"};
        String[] pointNumbers = {
   "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
          //将牌插入集合中
        for (String point : pointNumbers) {
   
            for (String color : colors) {
   
                porkers.add(color+point);
            }
        }
          //添加大小王
        porkers.add("大王");
        porkers.add("小王");
          //遍历porker
        showPorker(porkers);
          //打乱扑克:多线程下要考虑线程安全
        Collections.shuffle(porkers);
        System.out.println("打乱后的扑克牌:");
        showPorker(porkers);
        //2.创建三个玩家集合和一个底牌集合
        List<String> play1 = new ArrayList<>();
        List<String> play2 = new ArrayList<>();
        List<String> play3 = new ArrayList<>();
        List<String> bottomPorkers = new ArrayList<>();
          //发牌
        for (int i = 0; i < porkers.size(); i++) {
   
            String s = porkers.get(i);
            if (i>=porkers.size()-3){
   //获取底牌
                bottomPorkers.add(s);
            }else if (i%3==0){
   //剩下的牌中可以被3整除的索引值给第一位玩家
                play1.add(porkers.get(i));
            } else if (i%3==1) {
   //剩下的牌中可以被3整除余1的索引值给第一位玩家
                play2.add(s);
            }else if (i%3==2){
   
                play3.add(s);
            }
        }
          //查看每一位玩家的牌
        System.out.println("玩家1的牌");
        showPorker(play1);
        System.out.println("玩家2的牌");
        showPorker(play2);
        System.out.println("玩家3的牌");
        showPorker(play3);
        System.out.println("底牌");
        showPorker(bottomPorkers);
        //随机选择地主,将底牌给地主玩家
        Random ra = new Random();
        int dz = ra.nextInt(3)+1;
        switch (dz){
   
            case 1:
                System.out.println("选中玩家1为地主");
                play1.addAll(bottomPorkers);
                break;
            case 2:
                System.out.println

相关文章:

  • 【商城实战(44)】商城实战避坑指南:从问题排查到经验升华
  • 回顾一下-笔记
  • 【IDEA中配置Maven国内镜像源】
  • Java设计模式之模板方法模式
  • 蓝桥杯国赛子串2023动态规划,暴力
  • 从WebRTC到嵌入式:EasyRTC如何借助大模型提升音视频通信体验
  • Jmeter使用之http请求默认值
  • Sqoop框架调研
  • Unity Shader 学习16:全局光照 概念理解
  • 机械革命蛟龙16pro玩游戏闪屏
  • flutter本地运行web端图片跨域解决
  • jmeter 循环控制器遍历列表中的数据
  • 网络安全 | 什么是威胁情报?
  • 【数学建模】灰色关联分析模型详解与应用
  • OpenCV图像拼接(5)用于计算一组图像的特征点和描述符的函数computeImageFeatures()
  • Flutter小白零基础入门到高级项目实战全集
  • 移动笔试丨中国移动笔试2025届笔试考什么?运营商春招攻略、考点技巧|附真题秘籍、题型介绍、面试攻略、求职建议
  • pytorch小记(十一):pytorch中 `torch.nn.Dropout` 详解
  • Ranger 鉴权
  • Leetcode 刷题笔记1 图论part01
  • 国务院任免国家工作人员:饶权任国家文物局局长
  • 俄罗斯称已收复库尔斯克州,普京发表讲话
  • 甘肃张掖至重庆航线开通,串起西北与西南文旅“黄金走廊”
  • 证监会发布上市公司信披豁免规定:明确两类豁免范围、规定三种豁免方式
  • 钱学森数据服务中心在沪上线,十万个数字资源向公众开放
  • 印媒称印巴在克什米尔控制线沿线发生小规模交火,巴方暂未回应