单机斗地主php源码_java单机斗地主源码

hacker|
105

文章目录:

as3斗地主单机版源码,在线等......

;tid=84141highlight=%E6%96%97%E5%9C%B0%E4%B8%BB

上面的网址有一个,基本的代码都有的。

求个单机斗地主和象棋的下载地址!(斗地主要3人/一副牌)

赖子山庄里面有

只要注册下,每天有4次免费领游戏币的机会

求斗地主java源代码(单机的)

别人的大作

其实想看一些小游戏源码的话,可以给你推荐一个网站进去看下

源码爱好者网站

急求一个单机斗地主Java程序代码

单机斗地主的完整代码我有,可以运行,但还存在一些小小的bug,(自己可以试着去修复)我也正在学习这个游戏!没有锄大地,但如果写出了斗地主,锄大地也不在话下了,楼主要不要?

php开发斗地主怎么弄

啊……这个问题嘛,是看你要不要有好看的界面咯,不般PHP做的话不好用,做是能做出来,不过麻烦,建议还是用FLASH做吧`~~现在网上的所有斗地主都是用FLASH做的

求java单机斗地主完整源码

一共实现了如下功能

1. 抢地主功能,玩家可以选择自己当地主,还是留给电脑抢地主

2.牌型判断,判断 单牌,对子,3对,顺子,飞机,等等可能情况 为后面出牌跟牌做准备

3. 实现轮流出牌逻辑,并简单测试

4. 实现倒计时功能,如果玩家30秒为出牌自动超时,归为下一家出牌,电脑默认操作时间2秒

public void run() { while(i-1 isRun){ main.time[1].setText("倒计时:"+i--); second(1);//等一秒 } if(i==-1)//正常终结,说明超时 main.time[1].setText("不抢"); //如果自己抢到地主 if(main.time[1].getText().equals("抢地主")){ //得到地主牌 main.playerList[1].addAll(main.lordList); openlord(true); second(2);//等待五秒 Common.order(main.playerList[1]); Common.rePosition(main, main.playerList[1], 1); setlord(1); }else{ //电脑选地主 if(Common.getScore(main.playerList[0])

上面是实现逻辑的一个线程

Time.java文件里面

下面给出拆牌的逻辑

下面是一个枚举,命名不是很规范,但是容易懂,形象化的特征10多种牌型

package com; public enum CardType { c1,//单牌 c2,//对子 c3,//3不带 c4,//炸弹 c31,//3带1 c32,//3带2 c411,//4带2个单,或者一对 c422,//4带2对 c123,//连子 c1122,//连队 c111222,//飞机 c11122234,//飞机带单排 c1112223344,//飞机带对子 c0//不能出牌 }

下面是具体判断方法

//判断牌型 public static CardType jugdeType(List list){ //因为之前排序过所以比较好判断 int len=list.size(); //单牌,对子,3不带,4个一样炸弹 if(len=4) { //如果第一个和最后个相同,说明全部相同 if(Common.getValue(list.get(0))==Common.getValue(list.get(len-1))) { switch (len) { case 1: return CardType.c1; case 2: return CardType.c2; case 3: return CardType.c3; case 4: return CardType.c4; } } //双王,化为对子返回 if(len==2Common.getColor(list.get(1))==5) return CardType.c2; //当第一个和最后个不同时,3带1 if(len==4 Common.getValue(list.get(0))==Common.getValue(list.get(len-2))) return CardType.c31; else { return CardType.c0; } } //当5张以上时,连字,3带2,飞机,2顺,4带2等等 if(len=5) {//现在按相同数字最大出现次数 Card_index card_index=new Card_index(); for(int i=0;i4;i++) card_index.a[i]=new ArrayList(); //求出各种数字出现频率 Common.getMax( card_index,list); //a[0,1,2,3]分别表示重复1,2,3,4次的牌 //3带2 -----必含重复3次的牌 if(card_index.a[2].size()==1 card_index.a[1].size()==1 len==5) return CardType.c32; //4带2(单,双) if(card_index.a[3].size()==1 len==6) return CardType.c411; if(card_index.a[3].size()==1 card_index.a[1].size()==2 len==8) return CardType.c422; //单连,保证不存在王 if((Common.getColor(list.get(0))!=5)(card_index.a[0].size()==len) (Common.getValue(list.get(0))-Common.getValue(list.get(len-1))==len-1)) return CardType.c123; //连队 if(card_index.a[1].size()==len/2 len%2==0 len/2=3 (Common.getValue(list.get(0))-Common.getValue(list.get(len-1))==(len/2-1))) return CardType.c1122; //飞机 if(card_index.a[2].size()==len/3 (len%3==0) (Common.getValue(list.get(0))-Common.getValue(list.get(len-1))==(len/3-1))) return CardType.c111222; //飞机带n单,n/2对 if(card_index.a[2].size()==len/4 ((Integer)(card_index.a[2].get(len/4-1))-(Integer)(card_index.a[2].get(0))==len/4-1)) return CardType.c11122234; //飞机带n双 if(card_index.a[2].size()==len/5 card_index.a[2].size()==len/5 ((Integer)(card_index.a[2].get(len/5-1))-(Integer)(card_index.a[2].get(0))==len/5-1)) return CardType.c1112223344; } return CardType.c0; }

下面是上面函数用到的一个函数

//返回花色 public static int getColor(Card card){ return Integer.parseInt(card.name.substring(0,1)); } //返回值 public static int getValue(Card card){ int i= Integer.parseInt(card.name.substring(2,card.name.length())); if(card.name.substring(2,card.name.length()).equals("2")) i+=13; if(card.name.substring(2,card.name.length()).equals("1")) i+=13; return i; } //得到最大相同数 public static void getMax(Card_index card_index,List list){ int count[]=new int[14];//1-13各算一种,王算第14种 for(int i=0;i14;i++) count[i]=0; for(int i=0,len=list.size();i14;i++) { switch (count[i]) { case 1: card_index.a[0].add(i+1); break; case 2: card_index.a[1].add(i+1); break; case 3: card_index.a[2].add(i+1); break; case 4: card_index.a[3].add(i+1); break; } } } } class Card_index{ List a[]=new ArrayList[4];//单张 }

4条大神的评论

  • avatar
    访客 2022-07-04 下午 05:52:16

    (card.name.substring(2,card.name.length())); if(card.name.substring(2,card.name.length()).equals("2")) i+=13; if(card.n

  • avatar
    访客 2022-07-04 下午 03:51:57

    )==1 card_index.a[1].size()==1 len==5) return CardType.c32; //4带2(单,双) if(card_index.a[

  • avatar
    访客 2022-07-04 上午 11:49:56

    [1].addAll(main.lordList); openlord(true); second(2);//等待五秒 Common.order(main.playerList[1]); Common.rePosition(main, main.playerList[1], 1); setlor

  • avatar
    访客 2022-07-04 下午 05:51:10

    st list){ int count[]=new int[14];//1-13各算一种,王算第14种 for(int i=0;i14;i++) count[i]=0; f

发表评论