專利名稱:一種通過牌型判斷是否可以大過上家牌的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種通過獲得玩家手中牌的牌型來判斷能否有大過上家出牌的方法, 特別涉及一種高重用的大過上家牌的集合的方法。
背景技術(shù):
目前判斷玩家手中能否有大過上家出牌的方法主要有以下兩種1、通過排序的方法獲得可以出的牌。這種方法實(shí)現(xiàn)簡單,它先將上家出的牌進(jìn)行排序,然后與玩家手中的牌比較大小, 從而獲得可以出的牌。但它的缺點(diǎn)是可重用性低,邏輯代碼的判斷復(fù)雜,臃腫。對于一次只 能出少量牌的簡單牌類游戲(例如比大比小)來說可以滿足需求,但對于一次可以出很多 張牌的牌類游戲(斗地主)來說,順序的邏輯判斷過于復(fù)雜,不能滿足要求。2、通過設(shè)置牌型的方法獲得可以出的牌。這種方法利用牌型對象將上家所出的牌進(jìn)行分類,得到上家所出的牌的牌型;根 據(jù)上家出牌的牌型將玩家手中剩余的牌進(jìn)行分類,得到與上家出牌牌型相同的所有牌的集 合,將集合中的每個元素與上家所出的牌進(jìn)行比較。從而得到可以大過上家所出的牌的集
I=I O
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是通過牌型判斷玩家打牌邏輯。根據(jù)傳入的上家所出 的牌獲得本次玩家可以大過上家所出牌的集合,以及該集合的可重用性。本發(fā)明所述的一種通過牌型判斷是否可以大過上家牌的方法,該方法至少包括如 下的步驟步驟1 聲明一個牌型枚舉對象。步驟2 將上家所出牌按牌型枚舉對象進(jìn)行分類,得到上家所出的牌的牌型。步驟3 將玩家手中剩余的牌按上家所出牌型進(jìn)行牌型分類。步驟4 將上家所出的最大牌對象值屬性與集合中的牌的值屬性進(jìn)行比較。步驟5 將大于上家所出最大牌的集合保留,其他移除,所得到的集合即是大過上 家牌的集合。本發(fā)明涉及的一種通過牌型判斷是否可以大過上家牌的方法,該方法提高了游戲 中對用戶的打牌邏輯判斷的處理能力,同時該邏輯也同樣適應(yīng)于出牌提示及電腦自動打牌 時的邏輯處理,在棋牌類游戲的大型項目中提高了系統(tǒng)的重用性。
具體實(shí)施例方式本發(fā)明的主要步驟如下步驟1 新建一個枚舉類型的對象,該對象擁有牌型枚舉值。根據(jù)不同的牌類游戲 規(guī)則可有不同的牌型枚舉值。例如斗地主的牌型有單張,兩張,三帶一,單順,炸彈,火箭寸。步驟2 新建一個牌對象,該對象擁有牌的花色和牌的值這兩個屬性。步驟3 新建一個獲取牌型的方法。該方法是一個需要一個牌對象的集合作為參 數(shù),返回牌的牌型的方法。步驟4 獲得上家出的牌,將其排序并放入牌對象類型的泛型“集合1 ”中。步驟5 調(diào)用獲取牌型方法,將集合1作為參數(shù),返回上家所出的牌的牌型。步驟6 新建一個返回指定牌型的牌集合的方法。該方法將已知牌型和集合牌對 象作為參數(shù),返回指定牌型的牌集合。步驟7 將上家所出牌型和玩家手中的牌做為參數(shù)傳遞給該方法,返回牌型為上 家牌型的所有牌集合對象2,這時集合對象2中的牌型和上家牌型一樣。步驟8 找出玩家手中的炸彈,將其添加到集合2中。步驟9 先將集合2中的元素進(jìn)行排序,然后利用循環(huán)技術(shù)將上家的牌和集合2中 的牌按牌對象的值屬性進(jìn)行比較,將小于上家牌值的集合移除掉。所得的集合即是可以壓 過上家牌的集合。上述步驟3新建一個獲取牌型的方法的具體步驟如下步驟31 先將集合中的牌進(jìn)行排序,找出集合中一樣張數(shù)的牌。步驟32 針對一樣張數(shù)的牌的數(shù)量進(jìn)行分析是何種牌型。例如斗地主中的5556, 有三個5和一個6,牌型為三帶一。步驟33 將所得的牌型枚舉值作為返回值返回。上述步驟6新建一個返回指定牌型的牌集合的方法的具體步驟如下步驟61 根據(jù)已知的牌型遍歷集合中的所有牌對象。牌型為單張則調(diào)用“找到集 合中的所有單張牌”的方法,牌型為三帶一,則先調(diào)用“找到集合中的所有三張牌”的方法, 然后再調(diào)用找到單張的方法(需要將單張中和三張一樣的牌值刪除掉。例如三張333,單 張中就不應(yīng)有3這個牌對象)。步驟62 “找到集合中的所有單張牌”和“找到集合中的所有三張牌”這兩個方法 會因游戲中所需牌型的不同從而有不同的定義。步驟63 將結(jié)果作為返回值返回。上述的技術(shù)方案實(shí)施時提高了游戲中對用戶的打牌邏輯判斷的處理能力,同時該 邏輯也同樣適應(yīng)于出牌提示及電腦自動打牌時的邏輯處理,在棋牌類游戲的大型項目中提 高了系統(tǒng)的重用性。最后所應(yīng)說明的是,以上實(shí)施例僅用以說明而并非限制本發(fā)明所描述的技術(shù)方 案;因此,盡管本說明書參照上述的實(shí)施例對本發(fā)明已進(jìn)行了詳細(xì)的說明,但是,本領(lǐng)域的 普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對本發(fā)明進(jìn)行修改或者等同地替換;而一切不脫離本發(fā) 明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
一種通過牌型判斷是否可以大過上家牌的方法,其特征在于該方法至少包括如下的步驟步驟1新建一個枚舉類型的對象,該對象擁有牌型枚舉值。根據(jù)不同的牌類游戲規(guī)則可有不同的牌型枚舉值。例如斗地主的牌型有單張,兩張,三帶一,單順,炸彈,火箭等。步驟2新建一個牌對象,該對象擁有牌的花色和牌的值這兩個屬性。步驟3新建一個獲取牌型的方法。該方法是一個需要一個牌對象的集合作為參數(shù),返回牌的牌型的方法。步驟4獲得上家出的牌,將其排序并放入牌對象類型的泛型“集合1”中。步驟5調(diào)用獲取牌型方法,將集合1作為參數(shù),返回上家所出的牌的牌型。步驟6新建一個返回指定牌型的牌集合的方法。該方法將已知牌型和集合牌對象作為參數(shù),返回指定牌型的牌集合。步驟7將上家所出牌型和玩家手中的牌做為參數(shù)傳遞給該方法,返回牌型為上家牌型的所有牌集合對象2,這時集合對象2中的牌型和上家牌型一樣。步驟8找出玩家手中的炸彈,將其添加到集合2中。步驟9先將集合2中的元素進(jìn)行排序,然后利用循環(huán)技術(shù)將上家的牌和集合2中的牌按牌對象的值屬性進(jìn)行比較,將小于上家牌值的集合移除掉。所得的集合即是可以壓過上家牌的集合。
2.根據(jù)權(quán)利要求1所述的一種通過牌型判斷是否可以大過上家牌的方法,其特征在 于新建一個獲取牌型的方法。該方法是一個需要一個牌對象的集合作為參數(shù),返回牌的牌 型的方法,其步驟為步驟31 先將集合中的牌進(jìn)行排序,找出集合中一樣張數(shù)的牌。 步驟32 針對一樣張數(shù)的牌的數(shù)量進(jìn)行分析是何種牌型。例如斗地主中的5556,有三 個5和一個6,牌型為三帶一。步驟33 將所得的牌型枚舉值作為返回值返回。
3.根據(jù)權(quán)利要求1所述的一種通過牌型判斷是否可以大過上家牌的方法,其特征在 于新建一個返回指定牌型的牌集合的方法。該方法將已知牌型和集合牌對象作為參數(shù),返 回指定牌型的牌集合,其步驟為步驟61 根據(jù)已知的牌型遍歷集合中的所有牌對象。牌型為單張則調(diào)用“找到集合中 的所有單張牌”的方法,牌型為三帶一,則先調(diào)用“找到集合中的所有三張牌”的方法,然后 再調(diào)用找到單張的方法。步驟62 “找到集合中的所有單張牌”和“找到集合中的所有三張牌”這兩個方法會因 游戲中所需牌型的不同從而有不同的定義。 步驟63 將結(jié)果作為返回值返回。
全文摘要
一種通過牌型判斷是否可以大過上家牌的方法,首先聲明一個牌型枚舉對象;將上家所出牌按牌型枚舉對象進(jìn)行分類,得到上家所出的牌的牌型;然后將玩家手中剩余的牌按上家所出牌型進(jìn)行牌型分類;將上家所出的最大牌對象值屬性與集合中的牌的值屬性進(jìn)行比較;最后將大于上家所出最大牌的集合保留,其他移除,所得到的集合即是大過上家牌的集合。本發(fā)明提高了游戲中對用戶的打牌邏輯判斷的處理能力,同時該邏輯也同樣適應(yīng)于出牌提示及電腦自動打牌時的邏輯處理,在棋牌類游戲的大型項目中提高了系統(tǒng)的重用性。
文檔編號A63F1/00GK101890220SQ20091008418
公開日2010年11月24日 申請日期2009年5月20日 優(yōu)先權(quán)日2009年5月20日
發(fā)明者劉立軍, 張守文, 王磊, 陶勇勝 申請人:灰熊(北京)科技有限公司