JAVA编程实现斗地主小游戏

  • 主程序
  • 排序算法

主程序

public static void main(String[] args) {//牌List<String> pokes = new ArrayList<>();//颜色花色List<String> colors = new ArrayList<>();//数量List<String> nums = new ArrayList<>();colors.add("♥");colors.add("♠");colors.add("♦");colors.add("♣");nums.add("A");for (int i=2; i<=10; i++){nums.add(i+"");}nums.add("J");nums.add("Q");nums.add("K");for (String c:colors){for (String n:nums){String pai = c+n;pokes.add(pai);}}pokes.add("大王");pokes.add("小王");
//      System.out.println(pokes);
//      System.out.println(pokes.size());Collections.shuffle(pokes);System.out.println(pokes);//玩家//发牌,留三张ArrayList<String> smj = new ArrayList<>();ArrayList<String> whb = new ArrayList<>();ArrayList<String> zk = new ArrayList<>();ArrayList<String> bottom = new ArrayList<>();for (int i = 0; i < pokes.size(); i++) {String pai = pokes.get(i);if(i>=51){bottom.add(pai);}else{if (i%3==0){smj.add(pai);}else if(i%3==1){whb.add(pai);}else {zk.add(pai);}}}System.out.println("底牌"+bottom);System.out.println("smj"+smj);System.out.println("whb"+whb);System.out.println("zk"+zk);//选择地主:System.out.println("请输入地主:");Scanner scanner = new Scanner(System.in);String dz = scanner.nextLine();for (int i = 0; i < bottom.size(); i++) {String pai = bottom.get(i);if (dz.equals("smj")){smj.add(pai);}else if(dz.equals("whb")){whb.add(pai);}else {zk.add(pai);}}//清空底牌bottom = null;System.out.println("底牌"+bottom);System.out.println("smj"+smj);System.out.println("whb"+whb);System.out.println("zk"+zk);//排序//按大王小王2KQJ1098765432ASystem.out.println("调整手牌");smj=paix(smj);whb=paix(whb);zk=paix(zk);System.out.println("smj"+smj);System.out.println("whb"+whb);System.out.println("zk"+zk);

排序算法

思想为把该扑克牌数组复制一个为数字类型的数组,对数组进行排序,同时更改扑克牌数组。

public class sort {private static <E> void swap(List<E> list, int index1, int index2) {   //数组元素交换位置E e=list.get(index1);list.set(index1, list.get(index2));list.set(index2, e);}static ArrayList<String> paix(ArrayList<String> x){    //纸牌有序化ArrayList<Integer> xyz=new ArrayList<>();int f=-1;
//复制一个数字类型的数组for (int i = 0; i < x.size(); i++) {if(x.get(i).equals("大王"))f=172;else if(x.get(i).equals("小王"))f=171;else {if (x.get(i).substring(1).equals("A"))f = 140;else if (x.get(i).substring(1).equals("2"))f = 150;else if (x.get(i).substring(1).equals("J"))f = 110;else if (x.get(i).substring(1).equals("Q"))f = 120;else if (x.get(i).substring(1).equals("K"))f = 130;else f= Integer.parseInt(x.get(i).substring(1)) * 10;if(x.get(i).substring(0,1).equals("♥")){f+=4;}else if(x.get(i).substring(0,1).equals("♦")){f+=3;}else if(x.get(i).substring(0,1).equals("♠")){f+=2;}else if(x.get(i).substring(0,1).equals("♣")){f+=1;}}xyz.add(f);}//        System.out.println(xyz);for (int i = x.size(); i > 1; i--) {for (int j = 0; j < i-1; j++) {if(xyz.get(j) < xyz.get(j+1)){swap(xyz,j,j+1);swap(x,j,j+1);}}}return x;}}

用JAVA编程实现斗地主小游戏(建牌,发牌,选地主,排序)相关推荐

  1. JAVA猜数字 斗地主小游戏

    import Game; //Game为所创建的文件夹 import java.text.BreakIterator; import java.util.Random; import java.uti ...

  2. 【java筑基】斗地主小游戏——Collections工具类排序功能应用

    前 言

  3. 使用java实现斗地主小游戏

    Landlords 项目地址:https://github.com/chunlaiqingke/Landlords 环境要求: jdk8+(新手推荐jdk8,自带javafx), jdk11及以上去除 ...

  4. #Java教程:集合 #Collection、List、Set #ArrayList、LinkedList、Vector、HashSet、TreeSet #一个斗地主小游戏@FDDLC

    一.概述 Java单列集合中最顶层的是Collection接口,Collection下又分List和Set两大类: 学习Java集合的时候,建议自顶向下学:先学Collection,再学List和Se ...

  5. 斗地主小游戏(JAVA实现)

    hello,我是忘鱼.  目录 前言 一.案例所需要具备知识 二.代码 2.运行结果 总结 前言 斗地主小游戏,属于Collection体系综合案例,学习帮助我们加深理解. 一.案例所需要具备知识 常 ...

  6. 联机斗地主小游戏(Java) 源代码及软件开发过程

    软件工程一课中,我们开发斗地主小游戏,能够实现联机,以下为我们的源代码和开发过程 https://github.com/Zongziyu/Software-course PS:持续更新中

  7. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)

    目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1  ...

  8. Java版 猜数字小游戏

    猜数字小游戏是一定是大家学习C语言编程的第一个或者是前几个小小项目了吧,今天,我们使用Java进行猜数字小游戏的实现 有对猜数字小游戏的基本思想不清楚的可以看这篇博客,里面是用C语言进行的实现以及相关 ...

  9. Java 开发打飞机小游戏(附完整源码)

    上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码 ...

最新文章

  1. 生信宝典文章集锦,你想看的都在
  2. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
  3. mysql场景测试_【干货】不同场景下 如何进行MySQL迁移
  4. 个人做asp.net时犯过的错或是一点心得什么的(我就经常的更新一下吧)
  5. Leet Code OJ 482. License Key Formatting [Difficulty: Medium]
  6. android 字定义GridView 引用自己的定义布局
  7. 数字图像处理:各种变换滤波和噪声的类型和用途总结
  8. 控件事件的发生与页面加载的关系
  9. iText简介(转)
  10. 学python有什么用-为什么要学Python?学了有什么用?
  11. URTracker 试用不过期修改方法
  12. 高中计算机会考excel试题及答案,高中计算机会考EXCEL会考练习试题
  13. Python使用quote、unquote、urlencode、urldecode对url编码解码
  14. 51单片机学习案例——自学使用
  15. 中国八横八纵大容量光纤通信网——世界级光纤通信网
  16. Ajax中的 “success” 与 “error ”回调函数何时调用 ?
  17. 华硕a53s拆机图解_华硕a53s配置 功能与外观描述【图解】
  18. 【Mybatis】一二级缓存的源码研究
  19. 编程马拉松(英语:hackathon,又译为黑客松)
  20. Linux查看网络连接情况ss,Linux网络状态工具netstat和ss使用详解

热门文章

  1. EF Core之DBContext生命周期
  2. HTML中的基础标签
  3. 《赛德克·巴莱》影评--野蛮的骄傲
  4. 苹果联合创始人、董事会主席乔布斯生平
  5. 某医院病房计算机管理中设计的领域,某医院住院管理信息系统的设计与实现
  6. Log Concave Sequences 【Gym - 102302H】【矩阵快速幂】
  7. 剩余数(RNS)表示系统
  8. 2021年防爆电气最新解析及防爆电气试题及解析
  9. debiansamba文件服务器,Debian安装Samba服务器
  10. 第一台单反的建议:新手购机的15个问答