欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
麻將游戲框架搭好(調(diào)試AI用)
[打印本頁]
作者:
liuyy
時(shí)間:
2015-1-11 19:55
標(biāo)題:
麻將游戲框架搭好(調(diào)試AI用)
paidui.java
mport java.util.Random;
//牌堆類用來創(chuàng)建一副麻將牌
public class paidui {
// 定義一副(新溝本地晃晃帶東南西北分)麻將牌:1*表示萬,2*表示筒,3*表示條,4*表示東,5*表示南
// 6*表示西,7*表示北,8*表示中,9*表示發(fā)財(cái),10*表示白板
int mj[] = { 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
19, 19, 19, 19, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24,
24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28,
28, 28, 29, 29, 29, 29, 31, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33,
33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37,
38, 38, 38, 38, 39, 39, 39, 39, 41, 41, 41, 41, 51, 51, 51, 51, 61,
61, 61, 61, 71, 71, 71, 71, 81, 81, 81, 81, 91, 91, 91, 91, 101,
101, 101, 101 };
int P_SZ = 136;// 定義一副麻將牌的張數(shù)
int mj_q[] = new int[P_SZ];// 用于回收棄掉的牌
int B = 0;// 發(fā)牌位置標(biāo)記
int Q = 0;// 回收棄牌位置標(biāo)記
public paidui() {
// 構(gòu)造函數(shù)用于初始化牌堆信息
for (int i = 0; i < P_SZ; i++) {
mj_q[i] = 0; // 初始化棄牌牌堆
}
}
public int xipai() {
// 提供一個(gè)洗牌方法
Random random = new Random();// 隨機(jī)產(chǎn)生對(duì)象的對(duì)象
for (int i = 0; i < P_SZ; i++) {
// 隨機(jī)產(chǎn)生一個(gè)下標(biāo)值如果和當(dāng)前下表不等則交換元素值,遍歷素組后就生成了一個(gè)隨機(jī)打亂的牌堆數(shù)組了
int j = random.nextInt(P_SZ);
if (i != j) {
int a;
a = mj[i];
mj[i] = mj[j];
mj[j] = a;
}
}
return 0;
}
public int fapai() {
// 提供一個(gè)發(fā)牌方法
if (B >= P_SZ)
return 0;// 牌已經(jīng)發(fā)完此局流局
int pai = mj[B]; // 返回當(dāng)前牌堆頂部的第一張牌
B++;// 牌堆頂部指針下移一位
return pai;
}
public int huishou(int pai) {
// 提供一個(gè)回收棄牌的方法
if(Q<P_SZ) mj_q[Q]=pai;
return 0;
}
public int[] get_qipai() {
// 提供一個(gè)返回棄牌牌堆信息的方法
return mj_q;
}
}
paizuo.java
//牌桌類這是麻將框架的最上層
public class paizuo {
// 一個(gè)牌桌應(yīng)該包含的所有屬性
guizhe GZ=new guizhe();// 一個(gè)游戲規(guī)則
paidui PD=new paidui();// 一副麻將牌
xuangshou XS1=new xuangshou();// 2個(gè)或4個(gè)選手
xuangshou XS2=new xuangshou();
//調(diào)試用
int XS1_SP[]=new int[15];
int XS2_SP[]=new int[15];
public int xipai() {
// 牌桌提供一個(gè)洗牌并開局發(fā)牌的方法
PD.xipai();
for(int i=0;i<13;i++)
{
XS1.mopai(PD.fapai());
XS2.mopai(PD.fapai());
}
return 0;
}
public int fapai() {
// 牌桌提供一個(gè)發(fā)牌的方法
return 0;
}
public int UI() {
// 牌桌提供一個(gè)獲取選手輸入和顯示當(dāng)前牌局信息的方法(這里我只用控制臺(tái)界面)
XS1.zhengli();
XS2.zhengli();
XS1_SP=XS1.get_SP();
XS2_SP=XS2.get_SP();
System.out.print("選手一初始化的手牌信息為:\n");
for(int i=0;i<13;i++){
print(XS1_SP[i]);
}
System.out.print("\n\n");
System.out.print("選手二初始化的手牌信息為:\n");
for(int i=0;i<13;i++){
print(XS2_SP[i]);
}
return 0;
}
public int print(int P) {
// 提供一個(gè)打印牌面信息的方法
switch (P) {
case 11:
System.out.print("一萬 ");
break;
case 12:
System.out.print("二萬 ");
break;
case 13:
System.out.print("三萬 ");
break;
case 14:
System.out.print("四萬 ");
break;
case 15:
System.out.print("五萬 ");
break;
case 16:
System.out.print("六萬 ");
break;
case 17:
System.out.print("七萬 ");
break;
case 18:
System.out.print("八萬 ");
break;
case 19:
System.out.print("九萬 ");
break;
case 21:
System.out.print("一筒 ");
break;
case 22:
System.out.print("二筒 ");
break;
case 23:
System.out.print("三筒 ");
break;
case 24:
System.out.print("四筒 ");
break;
case 25:
System.out.print("五筒 ");
break;
case 26:
System.out.print("六筒 ");
break;
case 27:
System.out.print("七筒 ");
break;
case 28:
System.out.print("八筒 ");
break;
case 29:
System.out.print("九筒 ");
break;
case 31:
System.out.print("一條 ");
break;
case 32:
System.out.print("二條 ");
break;
case 33:
System.out.print("三條 ");
break;
case 34:
System.out.print("四條 ");
break;
case 35:
System.out.print("五條 ");
break;
case 36:
System.out.print("六條 ");
break;
case 37:
System.out.print("七條 ");
break;
case 38:
System.out.print("八條 ");
break;
case 39:
System.out.print("九條 ");
break;
case 41:
System.out.print("東風(fēng) ");
break;
case 51:
System.out.print("西風(fēng) ");
break;
case 61:
System.out.print("南風(fēng) ");
break;
case 71:
System.out.print("北風(fēng) ");
break;
case 81:
System.out.print("紅中 ");
break;
case 91:
System.out.print("發(fā)財(cái) ");
break;
case 101:
System.out.print("白板 ");
break;
default:
;
}
return 0;
}
}
majiang_main.java
//調(diào)試用入口類
public class majiang_main {
public static void main(String[] args) {
paizuo PZ=new paizuo();
PZ.xipai();
PZ.UI();
}
}
復(fù)制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1