斗地主小游戏(JAVA实现)

news/2024/11/17 2:35:40/

hello,我是忘鱼。

 目录

前言

一、案例所需要具备知识

二、代码

2.运行结果

总结

前言

     斗地主小游戏,属于Collection体系综合案例,学习帮助我们加深理解。

一、案例所需要具备知识

    常用Arraylist常用操作,和一些基础知识。代码注释很详细,简单但很重要。

二、代码

代码如下(示例):

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;//斗地主游戏
public class GameDemo {
//    存取全部牌
public static List<Cards> allcards=new ArrayList<>();
//数量确定类型确定使用数组
static {String[] sizes={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};String[] colors={"♣","♦","♥","♠"};int index=0;
//    List继承了collection,使用foreach循环简单;for (String size : sizes) {index++;for (String color : colors) {
//            使用变量接取Cards c=new Cards(size,color,index);allcards.add(c);}}Cards c1=new Cards("","小🃏",++index);Cards c2=new Cards("","大🃏",++index);Collections.addAll(allcards,c1,c2);System.out.println("新牌是:"+allcards);
}public static void main(String[] args) {
//洗牌操作使用shuffleCollections.shuffle(allcards);System.out.println("洗牌后:"+allcards);
//        定义三个player,使用集合简单List<Cards> player01=new ArrayList<>();List<Cards> player02=new ArrayList<>();List<Cards> player03=new ArrayList<>();
//       发牌,留三张底牌for (int i = 0; i < allcards.size()-3; i++) {Cards c=allcards.get(i);
//            求3的余数,0,1,2if(i%3==0){player01.add(c);}else if(i%3==1){player02.add(c);}else if(i%3==2){player03.add(c);}}
//        进行大小排序;,使用方法简单;sort(player01);sort(player02);sort(player03);System.out.println("玩家1"+player01);System.out.println("玩家2"+player02);System.out.println("玩家3"+player03);
//        还有三张底牌,差点忘了,直接截取用sublist   包前不包后List<Cards> lastthreeCards=allcards.subList(allcards.size()-3,allcards.size());System.out.println("底牌三张"+lastthreeCards);}private static void sort(List<Cards> playercards) {Collections.sort(playercards, new Comparator<Cards>() {@Overridepublic int compare(Cards o1, Cards o2) {return o2.getIndex()- o1.getIndex();}});}
}
public class Cards {private String size;private String color;
//    定义牌自身属性大小判断本身大小private int index;public Cards() {}public Cards(String size, String color, int index) {this.size = size;this.color = color;this.index = index;}public String getSize() {return size;}public void setSize(String size) {this.size = size;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}@Overridepublic String toString() {return (size+color);}
}

2.运行结果


 

总结

     给个赞吧!!亲亲


http://www.ppmy.cn/news/583572.html

相关文章

斗地主AI算法——第十二章の主动出牌(1)

本章开始&#xff0c;我们介绍主动出牌的算法&#xff0c;和被动出牌类似&#xff0c;我们第一步把主要架子搭起来。 首先清空出牌序列 clsHandCardData.ClearPutCardList(); 主动出牌的策略按照优先级大体可以分为三类&#xff1a; 【一】能直接一手牌出去&#xff0c;优先出…

我赢职场c语言数组斗地主,职场就行斗地主,你看懂了么?

1、小王都会被大王拍死。说明副职没有实权&#xff01; 2、没有一张大牌开路&#xff0c;再顺的小牌都出不去。说明领导很重要&#xff01; 3、无论你多会记牌、打牌&#xff0c;都抵不过人家手中的一把好牌。说明实力比能力重要&#xff01; 4、如果一堆小牌连不起来&#xff…

斗地主AI算法——第十七章の总结整理

2.0版本的斗地主AI算法在这里就算告一段落了。 **********************完结撒花********************** 不过后续应该还会开发更智能的版本&#xff0c;毕竟当前版本还有很多策略没有加入。 比如说角色位置&#xff08;地主上家下家打法&#xff09;、比如说记牌算牌、又比如…

天天QQ记牌器2.37 去广告绿色版

帮一个朋友忙 把这款软件的广告nop掉 听说是挺好的一款记牌器 已经上传到资源里 简单说下步骤 1.脱壳.. 用看雪大牛的 Aspr2.XX_unpacker_v1.0SC.osc 脚本脱壳 具体用法就不说了 gg下就知道了 2.最简单的方法是 搜索 tntn.cn 把字符串都替换成 about:blank 就OK了 不过还…

斗地主笔记

很喜欢斗地主&#xff0c;一起交流下。 文章目录 牌力分析王牌双鬼炸弹 一流强牌飞机大鬼22 强牌小鬼2AA&#xff0c;KK顶A顺子(长顺子)3连对(或以上) 大牌一般顺子三张A、KQQ 中牌(小牌)送命牌 叫牌哪些情况可以叫牌 对局 牌力分析 王牌 顶级牌&#xff0c;使用几乎无限制&…

js实现斗地主计分器

文章目录 起因实现1、页面html2、js操作--全局变量3、js操作--数据初始化4、js操作--每局结算5、js操作--撤销 源码获取 起因 现在大家斗地主的时候往往喜欢在每局结束后进行微信转账&#xff0c;然而这样的转帐过程往往比较浪费时间&#xff0c;所以咱们可以自己写一个简单的…

人机(AI)四人斗地主

最近在使用Cocos Creator做一款四人斗地主的手机游戏&#xff0c;半成品&#xff08;仅前端&#xff09;代码附在最后&#xff0c;仅供参考。游戏中的单机&#xff08;人机&#xff09;模式以及游戏过程中的托管都需要出牌算法的设计&#xff0c;因此借这篇博客梳理一下现有的一…

InnoDB的三种行锁(提供具体sql执行案例分析)

InnoDB存储引擎有3种行锁的算法&#xff0c;其分别是&#xff1a; Record Lock&#xff08;记录锁&#xff09;&#xff1a;单个行记录上的范围 (锁住某一行记录)Gap Lock&#xff08;间隙锁&#xff09;&#xff1a;间隙锁&#xff0c;锁定一个范围&#xff0c;但不包含记录本…