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. 问题记录之用poi生成图片并插入到word时,图片中的中文显示不出来
  2. RHCS套件实现高可用负载均衡集群(二)——Fence设备
  3. tcp/ip知识点的总结
  4. LeetCode之Find the Difference
  5. ViewState机制由浅入深1
  6. 在AX4.0中使用C#脚本的实现
  7. 编写bat脚本指定jdk路径运行jar包
  8. 游戏开发--开源软件13--libgdx(Android)||Angle(android 2D...
  9. Android自带的抓包工具tcpdump
  10. java 动态读取配置文件_java读取配置文件的几种方法
  11. 经济管理学中常用的模型分析法
  12. oracle删临时表,ORACLE中创建和删除临时表
  13. 四 利用excel实现数据可视化
  14. 【01】计算机的发展
  15. unity富文本使用:同一个文本框展示不同样式字体
  16. 从根上理解高性能、高并发(一):深入计算机底层,理解线程与线程池
  17. linux中如何解压.tgz
  18. 专家说:孩子3岁就说谎,暗示其智商很高,严惩可能起到反作用
  19. 编译器发展史5个十年3大人物及编译器知识(公号回复“编译器”下载PDF资料,欢迎转发、赞赏、支持科普)
  20. TikTok Shop如何入驻和如何批量上货

热门文章

  1. mysql 不能用dbcontext_使用DbContext实体类访问数据库
  2. loadrunner自学以及问题解答1
  3. 虚拟货币经济体的技术问题和非技术问题
  4. css高度设置占满页面,《CSS》关于高度铺满的问题
  5. 低效能人士的7个习惯
  6. Ubuntu18.04 + Win10双系统开机后直接进入windows没有切换界面
  7. 马尔可夫过程在控制领域的应用
  8. python 生成数组_Python创建数组
  9. SyntaxError: Non-UTF-8 code starting with '\xcf' in file C
  10. 按键开关多功能LED灯控制芯片,多模式手电筒控制IC