- 浏览: 706530 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
因为觉得还是服务器判断和牌比较好。所以把flex代码的改成java的了
package util; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import edu.emory.mathcs.backport.java.util.Arrays; //检查是否糊了 public class WithCard { private List<Integer> wan; private List<Integer> tiao; private List<Integer> bing; private List<Integer> feng; public WithCard(){ this.wan=new ArrayList<Integer>(); this.tiao=new ArrayList<Integer>(); this.bing=new ArrayList<Integer>(); this.feng=new ArrayList<Integer>(); } public boolean checkIsHu(String value){ String checkArray[]=value.split(","); parseArrayToList(checkArray); return startCheck(); } private boolean startCheck(){ try { this.checkSingleMah(wan, 1); this.checkSingleMah(tiao, 2); this.checkSingleMah(bing, 3); this.checkSingleMah(feng, 4); } catch (SuccessException e) { System.out.println("糊了"); return true; //e.printStackTrace(); } return false; } //查看单独的一个如wan中取出相同 的看剩余是否能匹配组 private void checkSingleMah(List<Integer> list,int current) throws SuccessException{ //System.out.println("wwww"+list.toString()); Set<Integer> sames=this.serachSame(list); out:for(int i=0;i<sames.size();i++){ List<Integer> newSames=this.getNewList(sames); List<Integer> newList=this.getNewList(list); newList.remove(new Integer(newSames.get(i))); newList.remove(new Integer(newSames.get(i))); newList=this.sortList(newList); System.out.println("newList"+newList.toString()); if(this.checkIsGroup(newList)){ if(checkOtherLever(current)){ throw new SuccessException(); } }else{ if(i==sames.size()-1){ break out; }else{ continue out; } } } } private boolean checkOtherLever(int current) { boolean success=false; switch(current){ case 1:success=this.check(tiao)&&this.check(bing)&&this.check(feng);break; case 2:success=this.check(wan)&&this.check(bing)&&this.check(feng);break; case 3:success=this.check(wan)&&this.check(tiao)&&this.check(feng);break; case 4:success=this.check(wan)&&this.check(tiao)&&this.check(bing);break; } return success; } private boolean check(List<Integer> list){ return this.checkIsGroup(list); } //从list中查找两个相同的数 private Set<Integer> serachSame(List<Integer> list){ // List<Integer> sames=new ArrayList<Integer>(); Set<Integer> sames=new HashSet<Integer>(); Map<Integer,Integer> maps=new HashMap<Integer,Integer>(); for(int i=0;i<list.size();i++){ if(!maps.containsValue(list.get(i))){ maps.put(i, list.get(i)); }else{ sames.add(list.get(i)); } } System.out.println("sames_____"+sames.toString()); return sames; } //检查是否是组 public boolean checkIsGroup(List<Integer> list){ if(list.size()%3!=0){ return false; } if(list.size()==0){ return true; } switch(list.size()){ case 3:return checkIsAgroup(list); case 6:return checkIsTwoGroup(list); case 9:return checkIsThreeGroup(list); case 12:return checkIsFourGroup(list); } return false; } private boolean checkIsThreeGroup(List<Integer> list) { if(this.checkIsAgroup(list)){ // this.splice(0, 3, list); return this.checkIsTwoGroup(list.subList(3, list.size())); }else if(list.get(0)==list.get(1)){ List<Integer> newList=this.getNewList(list); if(!this.checkThreeFirstThing(list.get(0),list)){ List<Integer> six=this.getListByIndex(list,1,3,4,6,7,8); List<Integer> three=this.getListByIndex(list,0,2,5); if(this.checkIsAgroup(three)&&this.checkIsTwoGroup(six)){ return true; } }else{ return true;//这怎么还是true???? } }else if(list.get(0)+1==list.get(1)){ List<Integer> newList=this.getNewList(list); if(!this.checkThreeFirstThing(list.get(1)+1, newList)){ System.out.println("执行了sssssss"); return false; }else{ return true; } }else{ return false; } return false; } private boolean checkThreeFirstThing(int num,List<Integer> list){ List<Integer> newlist=list.subList(2, list.size());//删除前2个元素,查看剩余的值,是否是2组 int index=serachSpecify(num,newlist); //var index:int=serachSpecify(y,arrs);//找到指定值的索引值 if(index!=-1){ //list=list.subList(index, index+2);//因为api中说第2个参数不包含在内,所以+2 //this.splice(index, 1, newlist); newlist.remove(new Integer(newlist.get(index))); System.out.println("checkThreee"+newlist.toString()); return this.checkIsTwoGroup(newlist); //throw new Error(arrs.toString()+"shengxiade shushi "); }else{ return false; } } private int serachSpecify(int num, List<Integer> list) { System.out.println("要查找的书"+num+":"+list.toString()); for(int i=0;i<list.size();i++){ if(list.get(i)==num){ System.out.println(list.get(i)+"查找到得数是"+"index"+i); return i; } } return -1; } private boolean checkIsFourGroup(List<Integer> list) { List<Integer> newList=this.getNewList(list); if(this.checkIsAgroup(list)){ return this.checkIsThreeGroup(newList.subList(3, list.size())); }else{ List<Integer> three; List<Integer> newArray; try { int threeIndex=this.serachSpecify(list.get(2)+1, list); System.out.println(list.get(2)+"bbbbbbbbbbbb"); three = this.getListByIndex(list,0,2,threeIndex); System.out.println(list.get(0)+"___"+list.get(2)+" "+list.get(threeIndex)); System.out.println(list.get(threeIndex)+"getThreeIndex"+threeIndex); newArray = this.getNewList(list); System.out.println(newArray.toString()+"新Array"); this.splice(threeIndex, 1, newArray); this.splice(2, 1, newArray); this.splice(0, 1, newArray); } catch (RuntimeException e) { System.out.println("出错次数"); // e.printStackTrace(); return false; } // System.out.println(newArray.toString()+"删除后Array"); // System.out.println(three+"three__"); return this.checkIsAgroup(three)&&this.checkIsThreeGroup(newArray); } } private boolean checkIsTwoGroup(List<Integer> list) { //现看最简单方式123 456 ,111 444,111 456等组合 if(checkIsAgroup(list)&&isgroupUtil(3,4,5,list)){ return true; }else{ //否则的话 return this.checkIsTwoGroupThing(list); } } //检查是否两组的第2种情况 private boolean checkIsTwoGroupThing(List<Integer> list){ if(isgroupUtil(0,1,3,list)&&this.isgroupUtil(2, 4, 5, list)){ return true; }else if(isgroupUtil(0,2,4,list)&&this.isgroupUtil(1, 3, 5, list)){ return true; }else{ return false; } } private boolean checkIsAgroup(List<Integer> list) { return isgroupUtil(0,1,2,list); } private boolean isgroupUtil(int index,int index2,int index3,List<Integer> list){ if(list.get(index)+1==list.get(index2)&&list.get(index2)+1==list.get(index3)){ return true; }else if(list.get(index)==list.get(index2)&&list.get(index2)==list.get(index3)){ return true; }else{ return false; } } private List<Integer> getListByIndex(List<Integer> list,int ...args){ List<Integer> newList=new ArrayList<Integer>(); for(int i=0;i<args.length;i++){ System.out.println("参数是_________"+args[i]); newList.add(list.get(args[i])); } return newList; } private void parseArrayToList(String[] arr){ for(int i=0;i<arr.length;i++){ initEveryList(Integer.parseInt(arr[i])); } } private void initEveryList(int num){ Integer ac=num/9; switch(ac){ case 0:wan.add(num);break; case 1:tiao.add(num);break; case 2:bing.add(num);break; case 3:feng.add(num);break; } } private List<Integer> getNewList(Collection list){ return new ArrayList(list); } //对list进行排序 private List<Integer> sortList(List<Integer> list){ Integer[] li=new Integer[list.size()]; list.toArray(li); Arrays.sort(li); List<Integer> newList=new ArrayList<Integer>(); for(int i=0;i<li.length;i++){ newList.add(li[i]); } return newList; } //从指定位置删除指定个元素 private void splice(int fromIndex,int count,List<Integer> list){ List<Integer> li=new ArrayList(); for(int i=0;i<count;i++){ li.add(list.get(fromIndex+i)); } //从list中删除指定元素 for(int i=0;i<count;i++){ list.remove(new Integer(li.get(i)));//这有问题原来是list.get(i)应该是li.get(i); } } public static void main(String args[]){ WithCard wc=new WithCard(); System.out.println(wc.checkIsHu("" + "0,1,2," + "3,4,5," + "1,2,3," + "3,4,5," + "5,5")+"hu le??"); //System.out.println(wc.checkIsAgroup(list)) List<Integer> list=new ArrayList<Integer>(); list.add(0); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); list.add(1); list.add(2); list.add(3); list.add(5); list.add(5); list.add(5); System.out.println(wc.checkIsGroup(list)+"是否是组"+list.size()); // List l=wc.sortList(list); // System.out.println(l.toString()); // System.out.println(list.toString()); // System.out.println(list.remove(new Integer(2))); // test(list); // System.out.println(list.toString()); } public static void test(List list){ List li=new ArrayList(list); li.remove(0); } class SuccessException extends Exception{ /** * */ private static final long serialVersionUID = -4566456691989778658L; public SuccessException() { super(); } public SuccessException(String arg0) { super(arg0); } @Override public String getMessage() { return super.getMessage(); } } class Same{ int index; int value; } }
发表评论
-
flex麻将和牌源代码
2009-06-16 09:36 3364最简单的和牌方式 AA AAA AAA AAA AAA 思路 ... -
游戏中的遮挡
2009-05-22 18:42 717http://bbs.actionscript3.cn/thr ... -
flex45度游戏寻路————菱形
2009-05-15 02:14 3217一个个的菱形都是坐标同eb163.com 的mapEdit地图 ... -
flex 地图编辑器之得到所菱形选中的数组下标
2009-05-14 15:36 2399package shape { import flash ... -
Astar寻路1.0
2009-05-13 13:50 849http://www.eb163.com/club/threa ... -
flex简单基于A*寻路
2009-05-13 03:54 1042没设置障碍物,熬了一晚上,原来是个很简单的问题 packag ... -
flex游戏多人为实现
2009-05-07 22:54 2475借用了一下blazeds 广播信息produce consum ...
相关推荐
触屏Java游戏 触屏三国麻将.jar(含截图+源代码 )触屏Java游戏 触屏三国麻将.jar(含截图+源代码 )触屏Java游戏 触屏三国麻将.jar(含截图+源代码 )触屏Java游戏 触屏三国麻将.jar(含截图+源代码 )触屏Java游戏...
NULL 博文链接:https://fykyx521.iteye.com/blog/409109
麻将源代码里边有很多个麻将的规则 基于java+unity实现的,个人感觉值得学习
决战象棋麻将游戏源代码
这个麻将是我仿照台湾16张游戏,用MFC编写,图片和声音都是从原来游戏COPY
用MFC做的麻将连连看,源代码可直接运行,并设置了背景音乐和鼠标点击音乐。
麻将游戏源代码,WINDOWS平台可编译运行的C/C++代码,包含必要资源,实现了人机对战
java游戏代码 很值得收藏
J2ME麻将源代码J2ME麻将源代码J2ME麻将源代码J2ME麻将源代码J2ME麻将源代码
四川麻将单机版 unity源代码;仅供参考,请勿商用 有一个打包好的apk 和代码的包;
九江麻将的源代码
Andjong 麻将游戏的源代码,是一个日本的开源项目,注释很多很详细(不过是日文的^_^),对麻将类游戏开发有较大的帮助。
可以通过人工智能识别麻将,也可以通过定制化识别新的物体的人工智能软件代码开发出来的Demo. 源码实现原理和部分代码具体的请参考我的csdn博客。
麻将馆预约小程序:用户可以通过该小程序选择麻将馆、预约时间和人数,并进行在线支付。同时,麻将馆也可以通过该小程序管理预约信息,包括查看预约情况、接受或拒绝预约等操作。通过麻将馆预约小程序,用户和麻将馆...
cocos2dx+JS写的 棋牌 麻将源代码。 客户端+服务器 框架完整,直接可以运行。支持htm5,安卓,IOS。 cocos2dx+JS写的 棋牌 麻将源代码。 客户端+服务器 框架完整,直接可以运行。支持htm5,安卓,IOS。
源代码,希望大家仔细看看
一个用VC++编成的麻将游戏源代码,希望能给大家带来点帮助。
一个用MFC写的美女麻将游戏哦,点击敏感部位会叫的哦! 源代码写得很清楚,可以自动改进! 文件有27M,分成两卷上传!
自己做的一个简单的C源代码麻将胡牌算法 分享给大家学习.