大家好,如果您还对单机合集网站源码分享在哪看不太了解,没有关系,今天就由本站为大家分享单机合集网站源码分享在哪看的知识,包括单机网站哪个好的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
本文实现了android端单机版的斗地主,一共三个玩家(一个地主,二个农民)游戏进入后,针对上家出的牌,如果本家有大的牌,可以出牌,如果没有相应的牌,可以选择不要牌,在组合牌型时,如果不符合斗地主的牌型要求,是不能出牌的,如果组合的牌型不能大过上家的牌,也是不能出牌的
本示例提供源码,需要源码的朋友可以下载
android开发环境配置http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1028
本项目是一个单机的斗地主项目源码,不过这个项目的分辨率有点问题,我在真机和模拟器的480*800上无论是横屏还是竖屏游戏都只能显示一部分画面,可能项目是使用的更低分辨率创建的,不过我玩了玩这个项目的却比javaapk.com以前发的斗地主项目算法要好一些,分配地主发牌都是随机的,根据谁的牌数先为0就是谁赢,再根据他的Id判断他是农民还是地主,每个人自动生成3分,结束后赢家加分输家扣分源码有注释,编码GBK默认编译版本4.4.2,需要的朋友可以下载研究一下
源码介绍:
扑克牌
publicclassCard{intvalue=0;intpokeType=0;int[]pokes;BitmappokeImage;intpersonID;publicCard(int[]pokes,BitmappokeImage,intid){this.personID=id;this.pokes=pokes;this.pokeImage=pokeImage;pokeType=Poke.getPokeType(pokes);value=Poke.getPokeTypeValue(pokes,pokeType);//显示的正确排列//如果有炸弹牌出现,分数翻倍if(pokeType==PokeType.huojian||pokeType==PokeType.zhadan){Desk.currentScore*=2;}}publicvoidpaint(Canvascanvas,intleft,inttop,intdir){Rectsrc=newRect();Rectdes=newRect();for(inti=0;i<pokes.length;i++){introw=Poke.getImageRow(pokes[i]);intcol=Poke.getImageCol(pokes[i]);if(dir==PokeType.dirV){row=Poke.getImageRow(pokes[i]);col=Poke.getImageCol(pokes[i]);src.set(col*35,row*52,col*35+35,row*52+52);des.set(left,top+i*13,left+35,top+52+i*13);}else{row=Poke.getImageRow(pokes[i]);col=Poke.getImageCol(pokes[i]);intselect=0;src.set(col*35,row*52,col*35+35,row*52+52);des.set(left+i*13,top-select,left+35+i*13,top-select+52);}canvas.drawBitmap(pokeImage,src,des,null);}}}
牌桌:Desk
publicclassDesk{publicstaticintwinId=-1;BitmappokeImage;Bitmaptishi;Bitmapbuyao;Bitmapchupai;publicstaticint[]personScore=newint[3];publicstaticintthreePokes[]=newint[3];//三张底牌privateintthreePokesPos[][]=newint[][]{{170,17},{220,17},{270,17}};privateint[][]rolePos={{60,310},{63,19},{396,19},};publicstaticPerson[]persons=newPerson[3];//三个玩家publicstaticint[]deskPokes=newint[54];//一副扑克牌publicstaticintcurrentScore=3;//当前分数publicstaticintboss=0;//地主/***-2:发牌<br>*-1:随机地主<br>*0:游戏中<br>*1:游戏结束,重新来,活退出<br>*/privateintop=-1;//游戏的进度控制publicstaticintcurrentPerson=0;//当前操作的人publicstaticintcurrentCircle=0;//本轮次数publicstaticCardcurrentCard=null;//最新的一手牌publicint[][]personPokes=newint[3][17];//gamingprivateinttimeLimite=310;privateint[][]timeLimitePos={{130,205},{118,76},{327,76}};privateintopPosX=240;privateintopPosY=200;DDZddz;publicDesk(DDZddz){this.ddz=ddz;pokeImage=BitmapFactory.decodeResource(ddz.getResources(),R.drawable.poker3552);tishi=BitmapFactory.decodeResource(ddz.getResources(),R.drawable.cp0);buyao=BitmapFactory.decodeResource(ddz.getResources(),R.drawable.cp1);chupai=BitmapFactory.decodeResource(ddz.getResources(),R.drawable.cp2);//init();}publicvoidgameLogic(){switch(op){case-2:break;case-1:init();op=0;break;case0:gaming();break;case1:break;case2:break;}}//存储当前一句的胜负得分信息intrs[]=newint[3];privatevoidgaming(){for(intk=0;k<3;k++){//当三个人中其中一个人牌的数量为0,则游戏结束if(persons[k].pokes.length==0){//切换到游戏结束状态op=1;//得到最先出去的人的idwinId=k;//判断哪方获胜if(boss==winId){//地主方获胜后的积分操作for(inti=0;i<3;i++){if(i==boss){//地主需要加两倍积分rs[i]=currentScore*2;personScore[i]+=currentScore*2;}else{//农民方需要减分rs[i]=-currentScore;personScore[i]-=currentScore;}}}else{//如果农民方胜利for(inti=0;i<3;i++){if(i!=boss){//农民方加分rs[i]=currentScore;personScore[i]+=currentScore;}else{//地主方减分rs[i]=-currentScore*2;personScore[i]-=currentScore*2;}}}return;}}//游戏没有结束,继续。//如果本家ID是NPC,则执行语句中的操作if(currentPerson==1||currentPerson==2){if(timeLimite<=300){//获取手中的牌中能够打过当前手牌Cardtempcard=persons[currentPerson].chupaiAI(currentCard);if(tempcard!=null){//手中有大过的牌,则出currentCircle++;currentCard=tempcard;nextPerson();}else{//没有打过的牌,则不要buyao();}}}//时间倒计时timeLimite-=2;}publicvoidinit(){deskPokes=newint[54];personPokes=newint[3][17];threePokes=newint[3];winId=-1;currentScore=3;currentCard=null;currentCircle=0;currentPerson=0;for(inti=0;i<deskPokes.length;i++){deskPokes[i]=i;}Poke.shuffle(deskPokes);fenpai(deskPokes);randDZ();Poke.sort(personPokes[0]);Poke.sort(personPokes[1]);Poke.sort(personPokes[2]);persons[0]=newPerson(personPokes[0],234,96,PokeType.dirH,0,this,ddz);persons[1]=newPerson(personPokes[1],54,28,PokeType.dirV,1,this,ddz);persons[2]=newPerson(personPokes[2],54,417,PokeType.dirV,2,this,ddz);persons[0].setPosition(persons[1],persons[2]);persons[1].setPosition(persons[2],persons[0]);persons[2].setPosition(persons[0],persons[1]);AnalyzePokeana=AnalyzePoke.getInstance();for(inti=0;i<persons.length;i++){booleanb=ana.testAnalyze(personPokes[i]);if(!b){init();System.out.println(“chongqinglaiguo”);break;}}for(inti=0;i<3;i++){StringBuffersb=newStringBuffer();sb.append(“chushipai—“+i+”:”);for(intj=0;j<personPokes[i].length;j++){sb.append(personPokes[i][j]+”,”);}System.out.println(sb.toString());}}//随机地主,将三张底牌给地主privatevoidrandDZ(){boss=Poke.getDZ();currentPerson=boss;int[]newPersonPokes=newint[20];for(inti=0;i<17;i++){newPersonPokes[i]=personPokes[boss][i];}newPersonPokes[17]=threePokes[0];newPersonPokes[18]=threePokes[1];newPersonPokes[19]=threePokes[2];personPokes[boss]=newPersonPokes;}publicvoidfenpai(int[]pokes){for(inti=0;i<51;){personPokes[i/17][i%17]=pokes[i++];}threePokes[0]=pokes[51];threePokes[1]=pokes[52];threePokes[2]=pokes[53];}publicvoidresult(){}publicvoidpaint(Canvascanvas){switch(op){case-2:break;case-1:break;case0:paintGaming(canvas);break;case1:paintResult(canvas);break;case2:break;}}privatevoidpaintResult(Canvascanvas){Paintpaint=newPaint();paint.setColor(Color.WHITE);paint.setTextSize(20);canvas.drawText(“本局得分总分”,110,66,paint);for(inti=0;i<3;i++){canvas.drawText(i+”:本局得分:”+rs[i]+”总分:”+personScore[i],110,96+i*30,paint);}}privatevoidpaintGaming(Canvascanvas){persons[0].paint(canvas);persons[1].paint(canvas);persons[2].paint(canvas);paintThreePokes(canvas);paintRoleAndScore(canvas);if(currentPerson==0){Rectsrc=newRect();Rectdst=newRect();src.set(0,0,chupai.getWidth(),chupai.getHeight());dst.set(opPosX,opPosY,opPosX+chupai.getWidth(),opPosY+chupai.getHeight());canvas.drawBitmap(chupai,src,dst,null);if(currentCircle!=0){src.set(0,0,tishi.getWidth(),tishi.getHeight());dst.set(opPosX+40,opPosY,opPosX+tishi.getWidth()+40,opPosY+tishi.getHeight());canvas.drawBitmap(tishi,src,dst,null);src.set(0,0,buyao.getWidth(),buyao.getHeight());dst.set(opPosX-40,opPosY,opPosX+buyao.getWidth()-40,opPosY+buyao.getHeight());canvas.drawBitmap(buyao,src,dst,null);}}if(persons[0].card!=null){persons[0].card.paint(canvas,130,140,PokeType.dirH);}if(persons[1].card!=null){persons[1].card.paint(canvas,73,56,PokeType.dirV);}if(persons[2].card!=null){persons[2].card.paint(canvas,365,56,PokeType.dirV);}paintTimeLimite(canvas);Paintpaint=newPaint();paint.setTextAlign(Align.LEFT);paint.setStyle(Style.FILL_AND_STROKE);paint.setTextSize(14);canvas.drawText(“当前底分:”+currentScore,165,308,paint);}privatevoidpaintTimeLimite(Canvascanvas){Paintpaint=newPaint();paint.setColor(Color.BLUE);paint.setTextSize(16);for(inti=0;i<3;i++){if(i==currentPerson){canvas.drawText(“”+(timeLimite/10),timeLimitePos[i][0],timeLimitePos[i][1],paint);}}}privatevoidpaintRoleAndScore(Canvascanvas){Paintpaint=newPaint();for(inti=0;i<3;i++){if(boss==i){paint.setColor(Color.RED);canvas.drawText(“地主(得分:”+personScore[i]+”)”,rolePos[i][0],rolePos[i][1],paint);}else{paint.setColor(Color.WHITE);canvas.drawText(“农民(得分:”+personScore[i]+”)”,rolePos[i][0],rolePos[i][1],paint);}}}privatevoidpaintThreePokes(Canvascanvas){Rectsrc=newRect();Rectdst=newRect();for(inti=0;i<3;i++){introw=Poke.getImageRow(threePokes[i]);intcol=Poke.getImageCol(threePokes[i]);src.set(col*35,row*52,col*35+35,row*52+52);dst.set(threePokesPos[i][0],threePokesPos[i][1],threePokesPos[i][0]+35,threePokesPos[i][1]+52);canvas.drawBitmap(pokeImage,src,dst,null);}}publicvoidonTuch(Viewv,MotionEventevent){for(inti=0;i<persons.length;i++){StringBuffersb=newStringBuffer();sb.append(i+”:”);for(intj=0;j<persons[i].pokes.length;j++){sb.append(persons[i].pokes[j]+(persons[i].pokes[j]>=10?””:””)+”,”);}System.out.println(sb.toString());}if(op==1){System.out.println(“ddz.handler:”+ddz.handler);init();op=0;//ddz.handler.sendEmptyMessage(DDZActivity.MENU);}if(currentPerson!=0){return;}intx=(int)event.getX();inty=(int)event.getY();if(Poke.inRect(x,y,opPosX,opPosY,38,23)){System.out.println(“chupai”);Cardcard=persons[0].chupai(currentCard);if(card!=null){currentCard=card;currentCircle++;nextPerson();}}if(currentCircle!=0){if(Poke.inRect(x,y,opPosX-40,opPosY,38,23)){System.out.println(“buyao”);buyao();}}if(Poke.inRect(x,y,opPosX+40,opPosY,38,23)){System.out.println(“tishi”);tishi();}persons[0].onTuch(v,event);}privatevoidtishi(){}//不要牌的操作privatevoidbuyao(){//轮到下一个人currentCircle++;//清空当前不要牌的人的最后一手牌persons[currentPerson].card=null;//定位下一个人的idnextPerson();//如果已经转回来,则该人继续出牌,本轮清空,新一轮开始if(currentCard!=null&¤tPerson==currentCard.personID){currentCircle=0;currentCard=null;//转回到最大牌的那个人再出牌persons[currentPerson].card=null;}}//定位下一个人的id并重新倒计时privatevoidnextPerson(){switch(currentPerson){case0:currentPerson=2;break;case1:currentPerson=0;break;case2:currentPerson=1;break;}timeLimite=310;}}
胡牌分析器:AnalyzePoke
packagecom.peiandsky;importjava.util.Vector;publicclassAnalyzePoke{privateint[]pokes;privateint[]countPokes=newint[12];privateintcount2;privateintcountWang;privateVector<int[]>card_zhadan=newVector<int[]>(3);privateVector<int[]>card_sanshun=newVector<int[]>(3);privateVector<int[]>card_shuangshun=newVector<int[]>(3);privateVector<int[]>card_sanzhang=newVector<int[]>(3);privateVector<int[]>card_danshun=newVector<int[]>(3);privateVector<int[]>card_duipai=newVector<int[]>(3);privateVector<int[]>card_danpai=newVector<int[]>(5);publicint[]getCountPokes(){returncountPokes;}publicintgetCount2(){returncount2;}publicintgetCountWang(){returncountWang;}publicVector<int[]>getCard_zhadan(){returncard_zhadan;}publicVector<int[]>getCard_sanshun(){returncard_sanshun;}publicVector<int[]>getCard_shuangshun(){returncard_shuangshun;}publicVector<int[]>getCard_sanzhang(){returncard_sanzhang;}publicVector<int[]>getCard_danshun(){returncard_danshun;}publicVector<int[]>getCard_duipai(){returncard_duipai;}publicVector<int[]>getCard_danpai(){returncard_danpai;}privateAnalyzePoke(){}publicstaticAnalyzePokegetInstance(){//if(analyzePoke==null){//analyzePoke=newAnalyzePoke();//}//returnanalyzePoke;returnnewAnalyzePoke();}privatevoidinit(){for(inti=0;i<countPokes.length;i++){countPokes[i]=0;}count2=0;countWang=0;card_zhadan.clear();card_sanshun.clear();card_shuangshun.clear();card_sanzhang.clear();card_danshun.clear();card_duipai.clear();card_danpai.clear();}publicbooleanlastCardTypeEq(intpokeType){if(remainCount()>1){returnfalse;}switch(pokeType){casePokeType.sanzhang:returncard_sanzhang.size()==1;casePokeType.duipai:returncard_duipai.size()==1;casePokeType.danpai:returncard_danpai.size()==1;}returnfalse;}publicint[]getPokes(){returnpokes;}publicvoidsetPokes(int[]pokes){Poke.sort(pokes);this.pokes=pokes;try{this.analyze();}catch(Exceptione){e.printStackTrace();}}publicintremainCount(){returncard_zhadan.size()+card_sanshun.size()+card_shuangshun.size()+card_sanzhang.size()+card_danshun.size()+card_duipai.size()+card_danpai.size();}publicint[]getMinType(Personlast,Personnext){AnalyzePokelastAna=AnalyzePoke.getInstance();lastAna.setPokes(last.pokes);AnalyzePokenextAna=AnalyzePoke.getInstance();nextAna.setPokes(next.pokes);intlastCount=lastAna.remainCount();intnextCount=nextAna.remainCount();intneedSmart=-1;if(Desk.boss==next.id||(Desk.boss!=next.id&&Desk.boss!=last.id)){//是对手if(next.pokes.length<=2){needSmart=next.pokes.length;}}//TODOintpokeType=-1;intminValue=55;intpokeIdx=0;intsize;Vector<int[]>temp;temp=card_sanshun;size=temp.size();for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(minValue>p[0]){pokeType=PokeType.sanshun;minValue=p[0];pokeIdx=i;}}temp=card_shuangshun;size=temp.size();for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(minValue>p[0]){pokeType=PokeType.shuangshun;minValue=p[0];pokeIdx=i;}}temp=card_danshun;size=temp.size();for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(minValue>p[0]){pokeType=PokeType.danshun;minValue=p[0];pokeIdx=i;}}temp=card_sanzhang;size=temp.size();for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(minValue>p[0]){pokeType=PokeType.sanzhang;minValue=p[0];pokeIdx=i;}}if(needSmart==2){if(pokeType!=-1){returnnewint[]{pokeType,pokeIdx};}else{temp=card_duipai;size=temp.size();intmin2=-1;for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(min2<=p[0]){pokeType=PokeType.duipai;minValue=p[0];min2=p[0];pokeIdx=i;}}}}else{temp=card_duipai;size=temp.size();for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(minValue>p[0]){pokeType=PokeType.duipai;minValue=p[0];pokeIdx=i;}}}if(needSmart==1){if(pokeType!=-1){returnnewint[]{pokeType,pokeIdx};}else{intmin1=-1;for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(min1<=p[0]){pokeType=PokeType.danpai;minValue=p[0];min1=p[0];pokeIdx=i;}}}}else{temp=card_danpai;size=temp.size();for(inti=0;i<size;i++){int[]p=temp.elementAt(i);if(minValue>p[0]){pokeType=PokeType.danpai;minValue=p[0];pokeIdx=i;}}}returnnewint[]{pokeType,pokeIdx};}publicbooleantestAnalyze(intpokes[]){try{init();for(inti=0;i<pokes.length;i++){intv=Poke.getPokeValue(pokes[i]);if(v==16||v==17){countWang++;}elseif(v==15){count2++;}else{countPokes[v-3]++;}}//System.out.println(“analyzesanshun”);//三顺intstart=-1;intend=-1;for(inti=0;i<=countPokes.length-1;i++){if(countPokes[i]==3){if(start==-1){start=i;}else{end=i;}}else{if(end!=-1&&start!=-1){intdur=end-start+1;int[]ss=newint[dur*3];intm=0;for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v>=start&&v<=end){ss[m++]=pokes[j];}}if(m==dur*3-1){System.out.println(“sanshunisover!!!”);}else{System.out.println(“sanshunerror!!!”);}card_sanshun.addElement(ss);for(ints=start;s<=end;s++){countPokes[s]=-1;}start=end=-1;continue;}else{start=end=-1;}}}//System.out.println(“analyzeshuangshun”);//shuangshunintsstart=-1;intsend=-1;for(inti=0;i<countPokes.length;i++){if(countPokes[i]==2){if(sstart==-1){sstart=i;}else{send=i;}}else{if(sstart!=-1&&send!=-1){intdur=send-sstart+1;if(dur<3){sstart=send=-1;continue;}else{intshuangshun[]=newint[dur*2];intm=0;for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v>=sstart&&v<=send){shuangshun[m++]=pokes[j];}}card_shuangshun.addElement(shuangshun);for(ints=sstart;s<=send;s++){countPokes[s]=-1;}sstart=send=-1;continue;}}else{sstart=send=-1;}}}//System.out.println(“analyzedanshun”);//danshunintdstart=-1;intdend=-1;for(inti=0;i<countPokes.length;i++){if(countPokes[i]>=1){if(dstart==-1){dstart=i;}else{dend=i;}}else{if(dstart!=-1&&dend!=-1){intdur=dend-dstart+1;if(dur>=5){intm=0;int[]danshun=newint[dur];for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==dend){danshun[m++]=pokes[j];countPokes[dend]–;dend–;}if(dend==dstart-1){break;}}card_danshun.addElement(danshun);}dstart=dend=-1;}else{dstart=dend=-1;}}}//System.out.println(“analyzesanzhang”);//sanzhangfor(inti=0;i<countPokes.length;i++){if(countPokes[i]==3){countPokes[i]=-1;int[]sanzhang=newint[3];intm=0;for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==i){sanzhang[m++]=pokes[j];}}card_sanzhang.addElement(sanzhang);}}//System.out.println(“analyzeduipai”);//duipaifor(inti=0;i<countPokes.length;i++){if(countPokes[i]==2){int[]duipai=newint[2];for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==i){duipai[0]=pokes[j];duipai[1]=pokes[j+1];card_duipai.addElement(duipai);break;}}countPokes[i]=-1;}}//System.out.println(“analyzedanpai”);//danpaifor(inti=0;i<countPokes.length;i++){if(countPokes[i]==1){for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==i){card_danpai.addElement(newint[]{pokes[j]});countPokes[i]=-1;break;}}}}//System.out.println(“analyze2”);switch(count2){case4:card_zhadan.addElement(newint[]{pokes[countWang],pokes[countWang+1],pokes[countWang+2],pokes[countWang+3]});break;case3:card_sanzhang.addElement(newint[]{pokes[countWang],pokes[countWang+1],pokes[countWang+2]});break;case2:card_duipai.addElement(newint[]{pokes[countWang],pokes[countWang+1]});break;case1:card_danpai.addElement(newint[]{pokes[countWang]});break;}//System.out.println(“analyzezhadan”);//炸弹for(inti=0;i<countPokes.length-1;i++){if(countPokes[i]==4){card_zhadan.addElement(newint[]{i*4+3,i*4+2,i*4+1,i*4});countPokes[i]=-1;}}//System.out.println(“analyzewang”);if(countWang==1){card_danpai.addElement(newint[]{pokes[0]});}elseif(countWang==2){card_zhadan.addElement(newint[]{pokes[0],pokes[1]});}}catch(Exceptione){e.printStackTrace();returnfalse;}returntrue;}//分析几大主要牌型privatevoidanalyze(){//初始化牌型容器init();//分析王,2,普通牌的数量for(inti=0;i<pokes.length;i++){intv=Poke.getPokeValue(pokes[i]);if(v==16||v==17){countWang++;}elseif(v==15){count2++;}else{countPokes[v-3]++;}}//分析三顺牌型intstart=-1;intend=-1;for(inti=0;i<=countPokes.length-1;i++){if(countPokes[i]==3){if(start==-1){start=i;}else{end=i;}}else{if(end!=-1&&start!=-1){intdur=end-start+1;int[]ss=newint[dur*3];intm=0;for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v>=start&&v<=end){ss[m++]=pokes[j];}}if(m==dur*3-1){System.out.println(“sanshunisover!!!”);}else{System.out.println(“sanshunerror!!!”);}card_sanshun.addElement(ss);for(ints=start;s<=end;s++){countPokes[s]=-1;}start=end=-1;continue;}else{start=end=-1;}}}//分析双顺牌型intsstart=-1;intsend=-1;for(inti=0;i<countPokes.length;i++){if(countPokes[i]==2){if(sstart==-1){sstart=i;}else{send=i;}}else{if(sstart!=-1&&send!=-1){intdur=send-sstart+1;if(dur<3){sstart=send=-1;continue;}else{intshuangshun[]=newint[dur*2];intm=0;for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v>=sstart&&v<=send){shuangshun[m++]=pokes[j];}}card_shuangshun.addElement(shuangshun);for(ints=sstart;s<=send;s++){countPokes[s]=-1;}sstart=send=-1;continue;}}else{sstart=send=-1;}}}//分析单顺牌型intdstart=-1;intdend=-1;for(inti=0;i<countPokes.length;i++){if(countPokes[i]>=1){if(dstart==-1){dstart=i;}else{dend=i;}}else{if(dstart!=-1&&dend!=-1){intdur=dend-dstart+1;if(dur>=5){intm=0;int[]danshun=newint[dur];for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==dend){danshun[m++]=pokes[j];countPokes[dend]–;dend–;}if(dend==dstart-1){break;}}card_danshun.addElement(danshun);}dstart=dend=-1;}else{dstart=dend=-1;}}}//分析三张牌型for(inti=0;i<countPokes.length;i++){if(countPokes[i]==3){countPokes[i]=-1;int[]sanzhang=newint[3];intm=0;for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==i){sanzhang[m++]=pokes[j];}}card_sanzhang.addElement(sanzhang);}}//分析对牌for(inti=0;i<countPokes.length;i++){if(countPokes[i]==2){int[]duipai=newint[2];for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==i){duipai[0]=pokes[j];duipai[1]=pokes[j+1];card_duipai.addElement(duipai);break;}}countPokes[i]=-1;}}//分析单牌for(inti=0;i<countPokes.length;i++){if(countPokes[i]==1){for(intj=0;j<pokes.length;j++){intv=Poke.getPokeValue(pokes[j])-3;if(v==i){card_danpai.addElement(newint[]{pokes[j]});countPokes[i]=-1;break;}}}}//根据2的数量进行分析switch(count2){case4:card_zhadan.addElement(newint[]{pokes[countWang],pokes[countWang+1],pokes[countWang+2],pokes[countWang+3]});break;case3:card_sanzhang.addElement(newint[]{pokes[countWang],pokes[countWang+1],pokes[countWang+2]});break;case2:card_duipai.addElement(newint[]{pokes[countWang],pokes[countWang+1]});break;case1:card_danpai.addElement(newint[]{pokes[countWang]});break;}//分析炸弹for(inti=0;i<countPokes.length-1;i++){if(countPokes[i]==4){card_zhadan.addElement(newint[]{i*4+3,i*4+2,i*4+1,i*4});countPokes[i]=-1;}}//分析火箭if(countWang==1){card_danpai.addElement(newint[]{pokes[0]});}elseif(countWang==2){card_zhadan.addElement(newint[]{pokes[0],pokes[1]});}}}
好了,文章到此结束,希望可以帮助到大家。
