四川麻將AI介面說明

2021-10-24 10:18:34 字數 4877 閱讀 6466

仙人掌四川麻將ai使用說明

遊戲功能:

換三張智慧型打定缺

出牌是否碰

是否槓是否做清一色

根據牌面智慧型選擇進攻打法,還是防守打法

遊戲座位號:

自己為0

下家為 1

對家為 2

上家為 3

牌值表示:

0:條1:萬2:筒

比如:2就表示2條 12 就表示1萬 22 就表示二萬

演算法基於python3.5開發,使用socket通訊,客戶端需要按照伺服器定義的介面傳輸內容才會有對應的返回,客戶端收到返回之後 需要判斷當前是什麼操作並對應的去響應。

介面說明

注意事項:所有呼叫介面需要嚴格按照這個順序來呼叫,不是得不到你想要的結果。有些介面伺服器有返回,有些只需要客戶端發伺服器只需要乙個記錄,所以很多是沒有返回的。文件裡面寫的有返回的就有,沒有返回的就沒有返回。

第一步:初始化遊戲ai伺服器  必須要要,不是後面沒辦法正確使用

108:seed_id:123051 2020/09/01 00:48:59

108: 牌牆的剩餘數量

seed_id: 初始化ai的關鍵字 必須是這個 

123051: 客戶端id 必須要要

2020/09/01 00:48:59 當前掉用的時間

第二步:初始化當前的手牌

55:inithandcard-[28, 27, 25, 24, 21, 21, 18, 17, 17, 13, 13, 11, 7, 1]

55:當前牌牆的剩餘張數,以後所有的協議都會已這個開始,這個數量一定要準確,如果不準確會影響ai的計算,比如是否做清一色,決定是打防守還是打進攻,所有這個剩餘的數量必須要準確。

inithandcard:初始化手牌的關鍵字

[28, 27, 25, 24, 21, 21, 18, 17, 17, 13, 13, 11, 7, 1]:當前的手牌

具體功能:

換三張:55:whathuansz-88-ha-0

55:牌牆剩餘數量

whathuansz:換三張關鍵字

88,ha,0:暫時沒用 只是用來對齊用的,但是必須要要

換三張完成了之後 在呼叫一次初始化手牌 ,因為這個時候手牌已經發生了變化。

55:inithandcard-[29, 28, 27, 25, 24, 23, 22, 21, 21, 17, 17, 13, 7, 1]

伺服器返回:retcmd:hsz-12,13,16

retcmd:伺服器返回關鍵字,只要是這個開始的都是說明是伺服器返回的資料

hsz:換三張返回關鍵字

11,13,16:ai返回當前需要換的三張牌。這裡就是1萬 3萬 6萬

定缺:55:whatdinque-88-ha-0-0

55:牌牆剩餘數量

whatdinque:定缺的關鍵字

88-ha-0-0:暫未使用,需要寫入,後面用來擴充套件功能

ai返回:retcmd:dinque-0

retcmd:伺服器返回關鍵字,只要是這個開始的都是說明是伺服器返回的資料

dinqu:定缺ai返回關鍵字

0:ai返回當前需要定缺的花色 這裡表示定缺條

初始化當前莊家

55:zj_azimuth-0

ai返回:沒有

初始化所有玩家定缺

55:dinque-0,2,0,2,

55:牌池剩餘數量

dinqu:定缺的關鍵字

0,2,0,2:按照順序依次定缺,自己,下家(右),對家,上家(左)

ai返回:沒有

自己出牌

55:whatout-77-ha-0[29, 28, 27, 25, 24, 23, 22, 21, 21, 17, 17, 13, 7, 1]

55:牌牆剩餘數量

whatout:出牌關鍵字

ha:保留

0:自己的索引

[29, 28, 27, 25, 24, 23, 22, 21, 21, 17, 17, 13, 7, 1]:自己當前的手牌,為了每次出牌的準確性,每次自己出牌的時候這個值必須要發。具體的牌值說明,請看文件最開始處有說明

ai返回:

retcmd:out-1表示當前出牌1

自己是否碰牌

32:ifmustbump-21-ha-0-1[29, 29, 28, 27, 25, 24, 23, 22, 22, 22, 21, 21, 17]

32:牌牆剩餘數量

21:需要碰的牌

0:自己的索引,這裡永遠為0

1:哪個玩家出的這張牌

[29, 29, 28, 27, 25, 24, 23, 22, 22, 22, 21, 21, 17]:自己當前的手牌

ai返回:一共三個值

retcmd:ifbump-true:碰

ifbump-false:不碰

bumperror:1-1:不做任何處理返回這個情況是自己牌面又碰有胡的情況,不需要做任何處理

自己是否槓牌

26:ifmustgang-21-ha-0-21[29, 28, 27, 25, 24, 24, 23, 22, 22, 22, 21]

26:牌牆剩餘剩餘

ifmustgang:槓的關鍵字

21:當前槓的那張牌

0:哪個玩家出的這張牌(當巴槓和暗槓的時候為0,點槓就為出牌的玩家)

21:新摸的牌,點槓的時候這個值為0

ai返回:一共三個值

gangerror:1-1  不做處理

retcmd:ifgang-true-21   槓

etcmd:ifgang-false    不槓

以上為自己需要去呼叫伺服器返回的介面,下面是一些記錄的介面

出牌記錄:54:out-7-ha-0-1

54:牌牆剩餘數量

out:出牌的關鍵字

7:出牌的牌值

0:哪個玩家出的牌

1:出牌的型別,(1.普通出牌,2.碰了之後出牌,3.明槓之後出牌,4.巴槓之後出牌,5暗杆之後出牌)

碰牌記錄:38:bump-2-ha-1(玩家1碰了2條)

38:牌牆的剩餘張數

bump:碰的關鍵字

2:當前碰的牌

1:當前碰的玩家

槓牌記錄:

36:angang-26-ha-2暗槓(玩家2暗杆了6筒)

36:牌牆的剩餘數量

angang:暗杆的關鍵字

26:槓的牌值

2:操作槓的玩家

35:mingang-11-ha-3明槓(玩家3明明槓了1萬)

35:牌牆的剩餘數量

mingang:明杆的關鍵字

11:槓的牌值

3:操作槓的玩家

32:bagang-2-ha-1巴槓(玩家1巴槓了2條)

32:牌牆的剩餘數量

bagang:巴杆的關鍵字

2:槓的牌值

1:操作槓的玩家

胡牌:

31:dianhu-17-ha-2點胡(玩家2胡牌了7萬)

31:牌牆的剩餘數量

dianhu:點胡

17:胡牌的牌值

2:胡牌的玩家索引

20:zimuhu-3-ha-3**(玩家3**了3條)

20:牌牆的剩餘數量

zimuhu:**的關鍵字

3:**的牌值

3:**的玩家索引

四川,我的家

四川,我的家 代騰飛 2009年4月28日 於成都 四川,我的家 四季繁花 風景如畫 縱使 天崩地塌 我家中的脊梁也依然不會被震垮 縱使家園已是一片殘牆斷瓦 我的家人也決不會就此倒下 災難使我們更加堅強 逆境使我們更加奮發 看,那一排排絕地而起的高樓大廈 也足以見證我們四川人逆境重生的偉大!四川,我...

我是四川人

我是四川人 題記 寫在汶川大 一週年,看四川電視台紀念汶川 一週年的晚會有感。代騰飛 2009年5月12日 於成都 都說一方水土養一方人 在這山川俊美,人傑地靈的巴蜀大地上 養育了我們這樣的一家人 我家兄弟個個率真直耿 才氣縱橫 我家姐妹更是個個漂亮如花,似水婉溫 外界對此無不印象很深!四川人,勤勞...

四川茂縣九頂山

去草原花海,來一次露營 轉眼間,一年就過了大半 花期不等人 再不去就只有明年了 九頂山這個七月,去這裡看花吧!推薦理由一 兩天打來回 很多人想到草原花海,第一反應總是若爾蓋 俄木塘,卻往往因路程太遠,週末不願奔波在路上而錯過美麗的風景。九頂山,被稱為離成都最近的天國花園,只需要三個小時的車程,週六早...