您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“java如何實現麻將和牌程序”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java如何實現麻將和牌程序”這篇文章吧。
以下是Java編寫的麻將和牌程序:
public class MaJiang2 { private boolean jiang=false;//是否找到將 public MaJiang2(){} //花色,判斷這個花色是否被減完了(如果沒有減完自然沒有和) private int huase(int[] hua) { if (hua.length==7) { //判斷字,自比較特殊,沒有順 for (int i=0;i<HUA.LENGTH ;i++ ) { if (hua[i]==3||hua[i]==4) { hua[i]=0; huase(hua); } //如果字有兩個,肯定是將 if (hua[i]==2&&!jiang) { hua[i]=0; jiang=true; huase(hua); } } } else { for (int i=0;i<HUA.LENGTH ;i++ ) { //如果沒有將,先把將減出去 if (!jiang&&hua[i]>=2) { hua[i]=hua[i]-2; jiang=true; int fanhui=huase(hua); //如果遞歸回來依舊沒有減完,則把將加回去 if (fanhui!=0) { hua[i]=hua[i]+2; jiang=false; } } if (hua[i]!=0&&i<7&&hua[i+1]!=0&&hua[i+2]!=0) { hua[i]--; hua[i+1]--; hua[i+2]--; huase(hua); int fanhui=huase(hua); //如果遞歸回來依舊沒有減完,減去的加回去 if (fanhui!=0) { hua[i]++; hua[i+1]++; hua[i+2]++; } } if (hua[i]==3||hua[i]==4) { int temp=hua[i]; hua[i]=0; huase(hua); int fanhui=huase(hua); //如果遞歸回來依舊沒有減完,減去的加回去 if (fanhui!=0) { hua[i]++; hua[i]=temp; } } } } int re=0; //最后判斷減沒減完 for (int i=0;i<HUA.LENGTH ;i++ ) { re=re+hua[i]; } return re; } public void Hu(int[] aWan,int[] aTiao,int[] aTong,int[] aZi) { //先從字開始,如果某一花色計算完之后依舊不為0,則肯定不和。如果所有的花色全部減完了,就和了,呵呵:-〉 int jieguo=huase(aZi); if (jieguo!=0) { System.out.println("沒和"); } else if ((jieguo=huase(aWan))!=0) { System.out.println("沒和"); } else if ((jieguo=huase(aTiao))!=0) { System.out.println("沒和"); } else if ((jieguo=huase(aTong))!=0) { System.out.println("沒和"); } else { System.out.println("和了,真不容易,一腦門子漢"); } } public static void main(String[] args) { MaJiang2 mj=new MaJiang2(); int[] w={3,1,1,2,1,1,1,1,3}; int[] ti={0,0,0,0,0,0,0,0,0}; int[] to={0,0,0,0,0,0,0,0,0}; int[] z={0,0,0,0,0,0,0}; mj.Hu(w,ti,to,z); } } |
以上是“java如何實現麻將和牌程序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。