地方麻將吉林過蛋玩法演算法

2021-08-07 08:43:10 字數 3836 閱讀 8716

using system.collections;

using system.collections.generic;

using system.linq;

using unityengine;

////// 判斷 過蛋/補蛋 牌邏輯 類

/// 輸入:手牌中的蛋牌

/// 輸出:可過蛋牌的 所有 排列組合

/// 方法:

/// 1. 無 混 :

/// 所有蛋牌排列組合

/// 2.有混:

/// 2.1.一張混牌所有排列組合

/// 2.2 兩張混牌所有排列組合

///public

class eggctro

; int egg2 = ;

int egg3 = ;

int egg4 = ;

list alleggs = new list();

//標準蛋牌

public

static eggctro instance

}#region 過蛋

void init()

////// 獲取可過蛋牌列表

//////

///public listint>> geteggcardvalues(list handcards)

else

if (item == 9 || item == 19 || item == 29)

else

if (item == 31 || item == 32 || item == 33 || item == 34)

else

if (item >= 35 || item == 36 || item == 37)

}if (huncount == 1)

else

if (huncount >= 2)

}return outputeggs;

//showlog();

}// 兩混 新增提示 蛋牌 列表

private

void

addeggcard(list curyaoeggcard)

}//乙個混 三張 牌加入

private

void

addoutputthree(list handeggcards)

else

if (handeggcards.count >= 3)}}

//無混 排列組合

public

void

nohunegg()

else

if (samecount == 4)}}

}void showlog()

str += " 】";

}debug.log("輸出蛋牌為:" + str + " " + outputeggs.count);

}///

/// 是否包含標準蛋牌(風牌 三張組合例外)

//////

標準蛋牌

list existseggtype(int egg)

}return tempegg;

}///

/// 手牌中是否包含混牌

//////

bool ishandhuncard()

//混牌數量

int gethuncount());}

//移除混牌 的手牌列表

void removehuncard()

}//去除重複牌

void distinctcard()

//m選n 排列組合

list arrage(list input, int _n)

);for (int i = 0; i < n - 1; i++)

.concat(x).toarray()));

}list resultlist = new list();

foreach (int item in result)

return resultlist;

}#endregion

#region 補蛋

/// /// 找出手牌中可以補蛋的牌!

//////

當前手中蛋牌

///已過蛋牌

public list addegg(list curhandcards,listint>> yeteggs)

if (inputeggcard.count == 0)

addeggcardlist.clear();

////先判斷蛋牌區 無 混牌情況

//再判斷蛋牌區 有 混牌情況

//如果是 替換 么雞 的蛋牌 ,需要將么雞替換掉 並 加到頭像下 +1

foreach (int handcard in inputeggcard)

}//無混 蛋牌

foreach (list egg in cureggcardlist)

}break;}}

//有混 蛋牌

list huneggs = gethuneggvalue();

foreach (int hunegg in huneggs)

string eggstr = "";

foreach (int item in addeggcardlist)

debug.logerror("可補蛋的牌:" + eggstr);

return addeggcardlist;

}///

/// 獲取牌所屬蛋牌型

//////

牌值///

public

int geteggtype(int cardvalue)}}

return eggs;

}///

/// //獲取hun 蛋牌 中被混牌取代的值

//////

含混蛋///

list gethunegginstead(int egg)

////// 獲取含混蛋牌 中的 非混牌值

//////

含混牌的 蛋

list getnohunvalue(int hunegg)

}return values;

}//獲取包含 混牌 的蛋

list gethuneggvalue()

}return yitiaoeggs;

}//是否包含混牌

bool ishuncard(list eggs)

}return

false;

}///

/// //獲得 已 過蛋的 牌值

//////

///public list getasaddegg(int cardvalue)}}

}return

null;

}///

/// 替換 list 值

//////

//////

被替換的值

public

void

replacelistvalue(ref list item, int curvalue, int repvalue)

);if (index < item.count)

item[index] = repvalue;

}///

/// 獲得列表中大於1個的 重複組

//////

///(dic《值-個數》)

public dictionary getlistrepitgroup(list listvalue)

}return repetgroup;

}#endregion

}

夢想曾經到達過的地方

2015 年下半年,小林參與研發的一款基於 android 作業系統深度定製的 xibot 小西機械人,在美國拉斯維加斯 ces 2016 展出,很順利就拿到乙份出席會議邀請函。小林讓愛人 anna 研究 ds 160 很快在朋友的指導下,準備好材料 填寫好 就這樣在網上繳完費,並預約好了去美國大使...