專(zhuān)利名稱(chēng):使用短信息進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法
技術(shù)領(lǐng)域:
本發(fā)明是一種結(jié)合了計(jì)算機(jī)及通信領(lǐng)域的技術(shù),使用戶(hù)能夠使用短信息的通訊方式相互間不用見(jiàn)面在遠(yuǎn)程就能進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法。
背景技術(shù):
目前,隨著計(jì)算機(jī)及通信技術(shù)的發(fā)展,人們不用相互見(jiàn)面坐在一起就能通過(guò)計(jì)算機(jī)及計(jì)算機(jī)網(wǎng)絡(luò)、或者通過(guò)手機(jī)進(jìn)行各種各樣的棋牌游戲。這些通信方式的出現(xiàn)極大地豐富了人們的生活,但是也有不足。缺點(diǎn)在于,要進(jìn)行這種遠(yuǎn)程棋牌游戲的用戶(hù)必須給自己配備電腦或高性能的手機(jī)(比如支持BREW的手機(jī)),而這些設(shè)備的價(jià)格并不便宜。另外,對(duì)于電腦用戶(hù),由于電腦的普及率不高,一個(gè)家庭中每個(gè)家庭成員都配備有電腦的情況不多,這就增加了成員之間的矛盾,此外還必須將電腦連上INTERNET網(wǎng),這不僅增加家庭的支出,而且對(duì)于使用有線接入方式的用戶(hù)來(lái)說(shuō)則不具備移動(dòng)性,即使使用無(wú)線接入方式的便攜機(jī)用戶(hù)因?yàn)楸銛y機(jī)的尺寸和電池供電時(shí)間的限制,也限制了不可能隨時(shí)隨地游玩游戲。雖然電腦用戶(hù)面臨的問(wèn)題對(duì)于手機(jī)用戶(hù)不存在,但是由于當(dāng)前手機(jī)屏幕大小的限制,一些棋牌游戲還不能在手機(jī)上實(shí)現(xiàn),比如圍棋,再加前述所說(shuō)的這類(lèi)手機(jī)的高價(jià)格,以及軟件平臺(tái)的不統(tǒng)一,這一切都限制了這些娛樂(lè)方式在手機(jī)用戶(hù)中的推廣。
發(fā)明內(nèi)容
為了讓使用普通手機(jī)的用戶(hù)也能進(jìn)行棋牌游戲,本發(fā)明設(shè)計(jì)了一種采用短信息這種已為廣大消費(fèi)者熟悉的通信方式進(jìn)行棋類(lèi)游戲的方法,以及一種同樣采用短信息進(jìn)行牌類(lèi)游戲的方法。
兩種方法都使用如下的軟硬件體系。
應(yīng)用服務(wù)器、短信息網(wǎng)關(guān)、通信網(wǎng)絡(luò)、通信終端。通信網(wǎng)絡(luò)是由通信設(shè)備組成的數(shù)據(jù)通訊網(wǎng)絡(luò),包括無(wú)線通信網(wǎng)絡(luò)和有線通信網(wǎng)絡(luò),使用電話通信技術(shù)與數(shù)據(jù)通信技術(shù)聯(lián)結(jié)通信終端與短信網(wǎng)關(guān),在通信終端與短信息網(wǎng)關(guān)之間傳送短信息(short message service)。通信終端包含手機(jī)(mobile phone)和具有短信息功能的固定電話機(jī),手機(jī)通過(guò)無(wú)線方式與通信網(wǎng)絡(luò)聯(lián)結(jié),固定電話機(jī)使用固定電話線與通信網(wǎng)絡(luò)聯(lián)結(jié),它們都使用短信息與短信網(wǎng)關(guān)通訊。短信息網(wǎng)關(guān)是一個(gè)運(yùn)行有數(shù)據(jù)通信處理程序的計(jì)算機(jī),一方面按通信網(wǎng)絡(luò)規(guī)定的格式接收包含有用戶(hù)發(fā)來(lái)的短信息的報(bào)文,將報(bào)文處理后提供給應(yīng)用服務(wù)器進(jìn)一步處理,另一方面也將應(yīng)用服務(wù)器提供的須反饋回用戶(hù)的短信息發(fā)回用戶(hù)。應(yīng)用服務(wù)器由可以由幾臺(tái)計(jì)算機(jī),也可以只由一臺(tái)計(jì)算機(jī)組成,它至少具備如下功能1、接收并保存用戶(hù)的注冊(cè)信息;2、為用戶(hù)匹配玩家;3、為對(duì)弈的各位玩家登記對(duì)弈信息,包括各方的ID號(hào),正在進(jìn)行的游戲種類(lèi),哪位玩家先手;4、對(duì)接收到的玩家短信按規(guī)則進(jìn)行檢驗(yàn),對(duì)于不滿(mǎn)足規(guī)則的短信回復(fù)相關(guān)提示錯(cuò)誤的短信,對(duì)滿(mǎn)足規(guī)則的短信處理后轉(zhuǎn)發(fā)給其它玩家;5、維持各位玩家發(fā)送短信的次序,為每位玩家計(jì)時(shí),保證游戲的秩序;6、判斷游戲的結(jié)束與輸贏,對(duì)各玩家的積分進(jìn)行相應(yīng)增減后保存到數(shù)據(jù)庫(kù)。短信息網(wǎng)關(guān)與應(yīng)用服務(wù)器在本文中合稱(chēng)為系統(tǒng)。
在描述本方法之前,這里先介紹一下設(shè)計(jì)的基本思路。本方法設(shè)計(jì)的基本思路就是,用戶(hù)自己準(zhǔn)備棋具,在自己的棋盤(pán)上下棋,將下的每一步棋按系統(tǒng)規(guī)定的格式用短信發(fā)送到系統(tǒng),由系統(tǒng)轉(zhuǎn)發(fā)給其他一起對(duì)弈的用戶(hù),另外,該用戶(hù)還接受系統(tǒng)轉(zhuǎn)發(fā)來(lái)的描述其他一起對(duì)弈的用戶(hù)的每步棋的短信,并根據(jù)短信內(nèi)容為其他一起對(duì)弈的用戶(hù)在自己棋盤(pán)上為相應(yīng)的用戶(hù)走出這步棋。在下棋過(guò)程中系統(tǒng)要負(fù)責(zé)校驗(yàn)每步棋的短信保證它能夠滿(mǎn)足格式上和游戲規(guī)則上的規(guī)定、為對(duì)弈的用戶(hù)之間傳遞每步棋的短信、維持游戲的規(guī)則與秩序,以實(shí)現(xiàn)為用戶(hù)提供一個(gè)開(kāi)放的,公平的,合理的,有秩序的游戲平臺(tái)。
和所有的短信服務(wù)一樣,在開(kāi)始游戲之前,用戶(hù)須發(fā)送短信到系統(tǒng)進(jìn)行注冊(cè),系統(tǒng)接受用戶(hù)的注冊(cè)后會(huì)將用戶(hù)的ID發(fā)回給用戶(hù)。隨同ID一起發(fā)送的可能還有游戲的操作方法、步驟和各種功能的短信格式,游戲規(guī)則,或者如何是用短信獲取上述信息的方法,或者是如何通過(guò)其它媒體方式獲取上述信息的方法。用戶(hù)在了解上述信息后就可以開(kāi)始游戲了。
根據(jù)上面的設(shè)計(jì)思路,本方法在游戲的過(guò)程包括以下幾個(gè)步驟。
第一步,用戶(hù)自己準(zhǔn)備好的棋具,這里的棋具可以是真實(shí)的棋具或者是電腦模擬的棋具,用戶(hù)作好下棋前的準(zhǔn)備工作比如擺放好棋子。
第二步,用戶(hù)按系統(tǒng)指定的開(kāi)始游戲的短信格式向系統(tǒng)發(fā)送短信,表示開(kāi)始某項(xiàng)游戲。比如系統(tǒng)指定只須發(fā)送“WQ”、“JQ”、“ZQ”、“GQ”就可以分別開(kāi)始圍棋、軍棋、中國(guó)象棋、國(guó)際象棋,則用戶(hù)發(fā)送上面的一個(gè)編碼到系統(tǒng)后,系統(tǒng)就進(jìn)入下一步驟。當(dāng)然,在實(shí)際系統(tǒng)中有可能使用更復(fù)雜的編碼格式,使得用戶(hù)在開(kāi)始游戲的同時(shí)可以指定更多的信息,比如,系統(tǒng)可以規(guī)定開(kāi)始游戲編碼的后面還可以跟一個(gè)用戶(hù)ID號(hào)來(lái)表示發(fā)送短信的用戶(hù)只愿意跟這位ID號(hào)的用戶(hù)對(duì)弈。
第二步,如果系統(tǒng)收到的短信格式有誤,系統(tǒng)將向用戶(hù)提示錯(cuò)誤,等待用戶(hù)的下一條短信。如果沒(méi)有錯(cuò)誤,系統(tǒng)則根據(jù)設(shè)計(jì)的匹配規(guī)則和用戶(hù)設(shè)置的匹配信息為該用戶(hù)尋找足夠多位等待開(kāi)始游戲的用戶(hù),匹配成功后,再為各用戶(hù)設(shè)定走棋次序,方位或者棋子顏色,并將上述信息用短信告訴用戶(hù),隨后,系統(tǒng)開(kāi)始等待先手的用戶(hù)發(fā)來(lái)他的第一步棋的編碼。具體的匹配模式隨系統(tǒng)的實(shí)現(xiàn)各不相同,比如最簡(jiǎn)單的模式就是在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,從第一位ID起,提取足夠多位的ID與該用戶(hù)匹配成一個(gè)盤(pán)棋的各對(duì)弈方,如果當(dāng)前等待的用戶(hù)位數(shù)還不夠多則將該用戶(hù)ID寫(xiě)入該隊(duì)列,與原先等待的用戶(hù)一起,等待足夠數(shù)量的用戶(hù)。
第三步,參加游戲的用戶(hù)在收到系統(tǒng)發(fā)來(lái)的包含次序、方位或顏色的短信后,根據(jù)上述信息調(diào)整好自己的棋盤(pán)方向,先手的用戶(hù)下出自己的第一步棋,并根據(jù)所了解的系統(tǒng)制定的對(duì)一步棋進(jìn)行編碼的規(guī)則,編輯這步棋的短信然后發(fā)送到系統(tǒng)。對(duì)一步棋如何編碼,一個(gè)不需要考慮就可以采用的方法就是采用各類(lèi)棋的當(dāng)前廣泛使用的記譜法,記譜法事實(shí)上就是對(duì)每步棋進(jìn)行編碼的方法。不過(guò),由于歷史的原因,有些棋產(chǎn)生了許多的記譜的方法,比如圍棋、中國(guó)象棋,有漢字式的,有字母數(shù)字式的,而有的棋由于誕生時(shí)間不長(zhǎng),還沒(méi)有統(tǒng)一的記譜法,比如軍棋、中國(guó)跳棋。但不管哪種記譜法,或是新設(shè)計(jì)一種記譜法,都應(yīng)包含有原棋位和新棋位的信息,或是包含有走這步棋的棋子與新棋位的信息,當(dāng)然對(duì)于圍棋等這類(lèi)下棋是擺放棋子而不移動(dòng)棋子的棋類(lèi)游戲來(lái)說(shuō),是不存在原棋位和棋子的信息的。系統(tǒng)在實(shí)現(xiàn)時(shí)具體采用哪種方法描述一步棋,一步棋在短信中應(yīng)具有什么樣的格式,可以視情況而定,比如為了減少用戶(hù)錯(cuò)誤可以采用信息含量多使用多類(lèi)符號(hào)的編碼,為了方便用戶(hù)輸入可以采用信息含量少符號(hào)類(lèi)別少長(zhǎng)度短的編碼。無(wú)論采用哪一種最重要要的一點(diǎn)是讓用戶(hù)知道編碼的方法。在此還對(duì)上面的名詞“棋位”作一下說(shuō)明,本文所說(shuō)的棋位,對(duì)于棋子擺放在棋盤(pán)經(jīng)緯線的交叉點(diǎn)上就是指棋線的交點(diǎn),對(duì)于棋子擺放在棋盤(pán)經(jīng)緯線組成的格內(nèi)就是指棋格。
第四步,系統(tǒng)對(duì)收到的短信進(jìn)行檢驗(yàn),判斷它是否違反了對(duì)一步棋的編碼規(guī)則和是否違反了游戲規(guī)則,如果有錯(cuò)誤,系統(tǒng)將向用戶(hù)提示錯(cuò)誤,開(kāi)始等待用戶(hù)的下一條短信。如果沒(méi)有錯(cuò)誤,系統(tǒng)則將包含描述這位用戶(hù)的這步棋的短信發(fā)給下一位按秩序輪到走棋的用戶(hù)。
第五步,下一位按秩序輪到走棋的用戶(hù)收到系統(tǒng)發(fā)來(lái)的上一位用戶(hù)的走棋信息的短信,根據(jù)短信內(nèi)容在自己的棋具上走出對(duì)弈方的那步棋,然后考慮自己的應(yīng)招,當(dāng)下出自己的一步棋后,根據(jù)編碼規(guī)則將這步棋編輯成短信后發(fā)送到系統(tǒng)。如果是多人對(duì)弈的棋類(lèi)游戲,用戶(hù)將收到其余各對(duì)弈方的走棋短信,并為其余各對(duì)弈方走棋后,才考慮自己的棋怎么走。
第六步,依下棋秩序在各位用戶(hù)之間重復(fù)第四步與第五步直到游戲結(jié)束。
第七步,結(jié)束游戲。當(dāng)其中的一位用戶(hù)出現(xiàn)下列情況后,系統(tǒng)為該用戶(hù)結(jié)束游戲1、該用戶(hù)發(fā)送系統(tǒng)指定格式的認(rèn)輸短信到系統(tǒng);2、根據(jù)游戲規(guī)則該用戶(hù)取勝或失敗,比如比賽時(shí)間用完;3、根據(jù)游戲規(guī)則該用戶(hù)無(wú)棋可下;4、參于游戲的各方都同意結(jié)束游戲。
第八步,當(dāng)所有用戶(hù)都結(jié)束游戲后,系統(tǒng)為每位用戶(hù)根據(jù)游戲規(guī)則判定勝負(fù)并計(jì)算各自得分,在系統(tǒng)中登記后,將得分情況發(fā)送給參于這次游戲的每位用戶(hù)。
之后系統(tǒng)將在設(shè)定的時(shí)間內(nèi)等待剛才參于游戲的每位用戶(hù)開(kāi)始游戲的短信,如果每位用戶(hù)在此時(shí)間內(nèi)都表示重新開(kāi)始則系統(tǒng)繼續(xù)游戲,否則將只為確定開(kāi)始的用戶(hù)重新匹配新的用戶(hù)以開(kāi)始新一輪的游戲。
不過(guò),根據(jù)上面的步驟,用戶(hù)可能還無(wú)法進(jìn)行軍棋和四國(guó)軍棋游戲,因?yàn)樗鼈冮_(kāi)局時(shí),還有一個(gè)布陣的步驟。所以,在用戶(hù)收到系統(tǒng)發(fā)來(lái)的包含方位或顏色的短信后,在走第一步棋前,須將自己的布陣信息按規(guī)定的格式發(fā)送到系統(tǒng)。系統(tǒng)可以規(guī)定兩種次序的編碼方式,一種是按一定棋子順序?qū)⒚總€(gè)棋子所在棋位的編碼順序?qū)懗?,一種是按棋位的一定次序?qū)⒚總€(gè)棋位上的棋子名稱(chēng)或編號(hào)順序?qū)懗?。各方都發(fā)送完布陣信息后,經(jīng)系統(tǒng)檢查無(wú)誤后,系統(tǒng)就可以用短信告知第一位開(kāi)始走棋的用戶(hù)走出第一步棋。
本方法的有益效果就是,對(duì)于廣大的手機(jī)用戶(hù)來(lái)說(shuō),為他們提供了一種廉價(jià)的進(jìn)行棋類(lèi)游戲的方法,用戶(hù)無(wú)須購(gòu)置高價(jià)的設(shè)備,也能與陌生人進(jìn)行遠(yuǎn)程棋類(lèi)游戲。此外,這種方法對(duì)于廣大的手機(jī)用戶(hù)來(lái)說(shuō),因?yàn)槭褂昧?xí)以為常的短信方式和記譜法,還有易掌握,移動(dòng)性好,在家里,在公園里,只要有能擺下棋盤(pán)的地方,有移動(dòng)通訊信號(hào),隨時(shí)隨地可以“來(lái)一盤(pán)”,如果用戶(hù)使用袖珍的棋具,那么在火車(chē)上,在汽車(chē)上,只要巴掌大的地方也都可以享受到“手談”的樂(lè)趣,驅(qū)走旅途的寂寞。對(duì)于移動(dòng)運(yùn)營(yíng)商來(lái)說(shuō),本方法也為他們提供了一種投資少,見(jiàn)效快,回報(bào)具大的新業(yè)務(wù),因?yàn)檫\(yùn)營(yíng)商無(wú)須更換、升級(jí)通信設(shè)備,只須采用現(xiàn)有的成熟的計(jì)算機(jī)技術(shù)與通信技術(shù),經(jīng)過(guò)短時(shí)間的開(kāi)發(fā)與測(cè)試,就可為廣大的手機(jī)用戶(hù)提供一種新的娛樂(lè)方式。
上述的方法,雖然使通過(guò)只具短信功能的手機(jī)也能進(jìn)行遠(yuǎn)程棋類(lèi)游戲的想法變?yōu)榱丝赡?,但是也有可能為用?hù)帶來(lái)不便。如何對(duì)一步棋進(jìn)行有效的編碼,讓用戶(hù)輸入方便,同時(shí)也讓用戶(hù)便于查看就是上面要說(shuō)的不便之處。也許大家都體會(huì)到過(guò)這么一個(gè)事實(shí),在所有的字符中,只有阿拉伯?dāng)?shù)字是在手機(jī)上最容易輸入的符號(hào),只須將手機(jī)輸入法切換到數(shù)字輸入法后,一個(gè)阿拉伯?dāng)?shù)字按一次鍵,很快就能完成阿拉伯?dāng)?shù)字輸入。但是同時(shí)大家也會(huì)體會(huì)到這么一個(gè)事實(shí),數(shù)字同時(shí)是最易混淆,最不易記憶的東西。根據(jù)前一個(gè)事實(shí),可以設(shè)想出,如果對(duì)每一步棋的描述都使用阿拉伯?dāng)?shù)字編碼,那么這樣的編碼毫無(wú)疑問(wèn)在輸入上是最簡(jiǎn)便的。所以如果系統(tǒng)參照一些新的全阿拉伯?dāng)?shù)字式記譜方法,用戶(hù)就可以很方便快捷的輸入短信?!白T氏記譜法”就是一種全阿拉伯?dāng)?shù)字記譜法,可以肯定如果系統(tǒng)在中國(guó)象棋中采用這種記譜法的規(guī)則規(guī)定對(duì)一步棋的編碼格式,那么用戶(hù)將會(huì)以更短的時(shí)間輸入一步棋的編碼。但是全是阿拉伯?dāng)?shù)字也會(huì)存在問(wèn)題,比如在“譚氏記譜法”中一步棋使用四個(gè)阿拉伯?dāng)?shù)字表示,比如“3537”,說(shuō)是有一步棋從(3,5)的位置走到了(3,7)的位置,解析出來(lái)的話很清晰明確,但是,沒(méi)解析出來(lái)前卻很容易搞混,很容易就混淆了橫豎坐標(biāo),而讀者恰恰只能接觸到?jīng)]解析出來(lái)的信息,解析過(guò)程要全憑自己想象。這也可能是“譚氏記譜法”未能得以普遍使用的一個(gè)原因。同樣也可能是國(guó)際象棋的記譜法經(jīng)歷的幾百年的發(fā)展也未發(fā)展成全阿拉伯?dāng)?shù)字方式的原因。對(duì)此原因最簡(jiǎn)短的一個(gè)描述就是,好“記”不好“讀”。不管是不是這個(gè)原因,也不管以上的分析是否正確,根據(jù)現(xiàn)有的一些數(shù)字記譜法,在這里提出一個(gè)統(tǒng)一的全阿拉伯?dāng)?shù)字的編碼方法,以方便用戶(hù)的對(duì)一步棋進(jìn)行短信輸入。
該方法是首先將棋盤(pán)進(jìn)行分區(qū),分區(qū)的方法滿(mǎn)足不同的分區(qū)含有不同的棋位;相鄰的分區(qū)可以包含部分相同的棋位;棋盤(pán)上每一棋位都包含于至少一個(gè)分區(qū);整個(gè)棋盤(pán)可以只分一個(gè)區(qū),或者說(shuō)沒(méi)有分區(qū);每個(gè)分區(qū)都用不同于其它分區(qū)的阿拉伯?dāng)?shù)字進(jìn)行編號(hào)。例如可以將圍棋、象棋、中國(guó)象棋、軍棋只分成一個(gè)區(qū);將四國(guó)軍棋分成五個(gè)區(qū),四位玩家的布棋區(qū)為一個(gè)區(qū),中間前線區(qū)為一個(gè)區(qū),總共五個(gè)區(qū);將跳棋按六片不同著色區(qū)分成六個(gè)區(qū),六個(gè)區(qū)都包含最中間的棋位,每個(gè)區(qū)只包含相鄰公共邊的左邊上的棋位。
然后對(duì)各分區(qū)內(nèi)的棋位進(jìn)行阿拉伯?dāng)?shù)字編號(hào)。編號(hào)方法有兩種,對(duì)于分區(qū)形狀是四方形的,可以采用坐標(biāo)法進(jìn)行編號(hào)。也就是對(duì)分區(qū)內(nèi)棋位的橫排用遞增的阿拉伯?dāng)?shù)字隊(duì)列順次編號(hào),同時(shí)分區(qū)內(nèi)棋位的縱排也用遞增的阿拉伯?dāng)?shù)字隊(duì)列順次編號(hào),這樣分區(qū)內(nèi)每一棋位都有不同于其它棋位的橫縱數(shù)字坐標(biāo)。例如將圍棋的19條經(jīng)線和19條緯線分別從下至上從左至右用1至19這19個(gè)阿拉伯?dāng)?shù)字進(jìn)行編號(hào);將中國(guó)象棋從下至上從左至右分別用從1開(kāi)始的數(shù)字進(jìn)行編號(hào),這樣緯線最大編號(hào)為10,經(jīng)線最大編號(hào)為9。除了坐標(biāo)法,另一種方法是,直接用阿拉伯?dāng)?shù)字對(duì)分區(qū)內(nèi)的棋位順次進(jìn)行編號(hào)。例如將跳棋的每個(gè)分區(qū)的公共棋位編號(hào)為0,然后從左至右、從上至下從數(shù)字1開(kāi)始順次對(duì)該分區(qū)內(nèi)每個(gè)棋位進(jìn)行數(shù)字編號(hào)。這樣一來(lái),棋盤(pán)上的每一個(gè)棋位都可以用包含有分區(qū)號(hào)和棋位編碼的信息來(lái)標(biāo)志了。
除了對(duì)棋盤(pán)編號(hào),還可以對(duì)棋子進(jìn)行阿拉伯?dāng)?shù)字編號(hào)。編號(hào)方法為,采用遞增的阿拉伯?dāng)?shù)字隊(duì)列對(duì)棋盤(pán)上的每一個(gè)棋子進(jìn)行編號(hào),保證同一著色的棋子編號(hào)各不相同。另外,著色不同但名稱(chēng)一樣或?qū)?yīng)的棋子編號(hào)可以相同。例如將中國(guó)象棋從“兵”開(kāi)始,按棋子擺放的位置,從上到下,從左到右,用從1開(kāi)始的阿拉伯?dāng)?shù)字進(jìn)行編號(hào),這樣5個(gè)“兵”的編號(hào)分別為1至5,兩個(gè)“炮”的編號(hào)為6、7,兩個(gè)“車(chē)”的編號(hào)為8、16。
通過(guò)以上的方法,棋盤(pán)上每一棋位都有一個(gè)唯一的編碼,每一方的棋子都有一個(gè)唯一的編碼。描述一步棋就可以采用下面的編碼方式“AB”、“BA”、“CB”或“BC”式,其中A代表原棋位這個(gè)元素的編碼,B代表新棋位這個(gè)元素的編碼,C代表棋子這個(gè)元素的編碼。根據(jù)前述,棋位的編碼又由分區(qū)號(hào)這個(gè)元素和在這個(gè)分區(qū)內(nèi)的棋位編碼這個(gè)元素組成,自然當(dāng)沒(méi)有分區(qū)時(shí),分區(qū)號(hào)元素去掉。而分區(qū)內(nèi)的棋位這個(gè)元素編碼又由橫坐標(biāo)元素和縱坐標(biāo)元素組成,或者就是一個(gè)整數(shù)組成。在用戶(hù)輸入方便的情況下,以上的每個(gè)元素之間可以輸入非數(shù)字符作為分隔符,也可以不輸入。另外將以上各式中的各元素的順序打亂也是可以采用的編碼方式,比如在AB式中,先A的橫坐標(biāo),再B的橫坐標(biāo),再A的縱坐標(biāo),再B的縱坐標(biāo)。不過(guò),如果在以上各式中各元素之間不加分隔符,在有些情況下會(huì)出現(xiàn)問(wèn)題。這種情況就是當(dāng)以上元素中,如果中間有兩個(gè)元素的編碼的最大數(shù)值都為十位數(shù)組成的,也就都是由多于一個(gè)阿拉伯?dāng)?shù)字的多個(gè)阿拉伯?dāng)?shù)字組成,比如圍棋中橫堅(jiān)坐標(biāo)的最大數(shù)都可以是19,都是十位數(shù),則如果不將這兩個(gè)元素的編碼與其它元素分隔開(kāi),會(huì)產(chǎn)生系統(tǒng)無(wú)法解析的問(wèn)題。比如圍棋中有一手棋在棋盤(pán)坐標(biāo)(11,1)這個(gè)點(diǎn)上布上棋子,則這手棋根據(jù)剛才規(guī)則不加分隔符的編碼就是“111”,顯然這個(gè)編碼發(fā)送到系統(tǒng)時(shí),系統(tǒng)是無(wú)法解析出來(lái)的,因?yàn)?11,1)與(1,11)都會(huì)對(duì)應(yīng)編碼“111”。解決的辦法有兩種,在不同元素的編碼之間加上任一非數(shù)字符號(hào)作為分隔符,比如前例中若采用“,”作分隔符,則“11,1”對(duì)系統(tǒng)而言就是正確的。另外一種方法,將這種最大值為多位數(shù)的元素的編碼中的位數(shù)小于最大值位數(shù)的編碼的前面補(bǔ)上足夠多的“0”,使得組成它的編碼的數(shù)字的個(gè)數(shù)等于最大值位數(shù)。比如,前例中,因?yàn)榭v坐標(biāo)的的最大值為“19”,是兩位數(shù),所以應(yīng)為縱坐標(biāo)編碼為個(gè)位數(shù)的編碼前面加上一個(gè)“0”,所以(11,1)應(yīng)寫(xiě)成“1101”,這樣系統(tǒng)就不會(huì)混淆了。
顯然如果在前述用短信進(jìn)行棋類(lèi)游戲的方法中,如果再對(duì)每步棋的編碼方式采用上述的數(shù)字式編碼方式,則可以方便用戶(hù)快速、方便的輸入每步棋的編碼,進(jìn)一步增強(qiáng)這種娛樂(lè)方式的推廣價(jià)值。
采用了數(shù)字式的編碼方式后,雖然達(dá)到了一個(gè)顯而易見(jiàn)的效果,可以方便用戶(hù)輸入,但是,如前分析,如果不加處理地將這種數(shù)字式的編碼發(fā)送給用戶(hù),可能會(huì)給用戶(hù)帶來(lái)視覺(jué)上的疲勞。一個(gè)原因是,現(xiàn)在的一些棋盤(pán)的棋位標(biāo)注大都采用英文字母加阿拉伯?dāng)?shù)字的方式,這樣,在尋找該棋位時(shí)確實(shí)可以減少差錯(cuò)。另外,很多棋類(lèi)的記譜法,對(duì)每步棋的描述除了說(shuō)明了棋子的移動(dòng)或落點(diǎn)情況外,還說(shuō)明這步棋中是哪顆棋子移動(dòng)了,這步棋的動(dòng)作在該類(lèi)棋的術(shù)語(yǔ)上稱(chēng)之為一種什么動(dòng)作,這步棋產(chǎn)生了什么樣的影響或結(jié)果,比如吃了什么子,提了什么子,開(kāi)始將軍了,打劫等等情況。
參照于這些情況,這里先對(duì)全阿拉伯?dāng)?shù)字標(biāo)注的棋盤(pán)作一下處理,就是在每種棋類(lèi)游戲的棋盤(pán)中只將將縱坐標(biāo)中編號(hào)為1的坐標(biāo)再標(biāo)注英文字母A,編號(hào)為2的坐標(biāo)順次再標(biāo)注英文字母B,依照從標(biāo)數(shù)值從小到大,英文字母從A至Z的順序,直到所有的縱坐標(biāo)都標(biāo)注了相應(yīng)的英文字母。同理,也可以將所有橫坐標(biāo)也標(biāo)注上相應(yīng)的英文字母。在實(shí)際使用中可以只對(duì)一邊坐標(biāo),即只對(duì)橫坐標(biāo)或只對(duì)縱坐標(biāo)進(jìn)行如上的英文字母標(biāo)注。
這里再對(duì)前述用短信進(jìn)行棋類(lèi)游戲的方法中的第四步中,系統(tǒng)發(fā)往用戶(hù)的描述一步棋的短信進(jìn)行更進(jìn)一步的處理。其處理細(xì)節(jié)如下,如果當(dāng)前的棋類(lèi)游戲由多于兩個(gè)玩家的用戶(hù)組成,則先在數(shù)字式編碼前加上玩家的名稱(chēng)或編碼。再將數(shù)字式編碼中的各元素用分隔符進(jìn)行分隔,比如前述“1101”可以分隔為“(11,1)”。然后將數(shù)字式編碼替換為一邊坐標(biāo)為英文字母編碼的字母數(shù)字式棋位編碼。比如前述可能替換為“(11,A)”。之后可以加上這步棋的棋子名稱(chēng)或編碼。比如有這么一步棋的編碼“101102,,(由于橫坐標(biāo)只有一個(gè)十位數(shù),所以雖然最大值由兩年阿拉伯?dāng)?shù)字組成,縱坐標(biāo)前也不用加“0”)表示棋子“車(chē)”從棋位(10,1)走到棋位(10,2),則經(jīng)過(guò)以上處理后就是“車(chē)(J,1)至(J,2)”。最后還可以加上這步棋的影響或結(jié)果。又如上例中的“車(chē)”,假如在那步棋中吃了“J,2”位上的“炮”,并“將軍”,則這時(shí)可以寫(xiě)成“車(chē)(J,1)至(J,2)吃[炮]將軍”。顯然如果用戶(hù)收到了短信“車(chē)(J,1)至(J,2)吃[炮]將軍”將比收到短信“101102”更容易清楚對(duì)方走了一步棋。
所以當(dāng)系統(tǒng)對(duì)一步棋的編碼經(jīng)過(guò)以上處理后,用戶(hù)將更清晰地理解各對(duì)弈方的走棋情況,以減少用戶(hù)出錯(cuò)的情況,也有利于游戲能夠正常進(jìn)行下去。
根據(jù)上述的用短信玩棋類(lèi)游戲的方法,相應(yīng)也可以設(shè)計(jì)出進(jìn)行牌類(lèi)游戲的方法。與棋類(lèi)游戲相類(lèi)似,它也包括下列大致差不多的幾個(gè)步驟。
第一步,用戶(hù)自己準(zhǔn)備好的牌具,這里的牌具可以是真實(shí)的牌具或者是電腦模擬的牌具,或者僅是一張空白紙和一支筆。用戶(hù)作好打牌前的準(zhǔn)備工作比如清理好每張牌,將所有需要參于游戲的整套牌分花色,按一定大小順序排列好。
第二步,用戶(hù)按系統(tǒng)指定的開(kāi)始游戲的短信格式向系統(tǒng)發(fā)送短信,表示開(kāi)始某項(xiàng)游戲。比如系統(tǒng)指定只須發(fā)送“DDZ”、“SJ”、“CDD”、“GZ”、“SDH”、“MJ”就可以分別開(kāi)始斗地主、升級(jí)、鋤大地、拱豬、三打哈這幾類(lèi)撲克游戲或麻將游戲,則用戶(hù)發(fā)送上面的一個(gè)編碼到系統(tǒng)后,系統(tǒng)就進(jìn)入下一步驟。當(dāng)然,在實(shí)際系統(tǒng)中有可能使用更復(fù)雜的編碼格式,使得用戶(hù)在開(kāi)始游戲的同時(shí)可以指定更多的信息,比如,系統(tǒng)可以規(guī)定開(kāi)始游戲編碼的后面還可以跟幾個(gè)用戶(hù)ID號(hào)來(lái)表示發(fā)送短信的用戶(hù)只愿意跟這幾位ID號(hào)的用戶(hù)打牌。
第三步,如果系統(tǒng)收到的短信格式有誤,系統(tǒng)將向用戶(hù)提示錯(cuò)誤,等待用戶(hù)的下一條短信。如果沒(méi)有錯(cuò)誤,系統(tǒng)則根據(jù)設(shè)計(jì)的匹配規(guī)則和用戶(hù)設(shè)置的匹配信息為該用戶(hù)匹配足夠多位等待開(kāi)始游戲的用戶(hù),匹配成功后,再為各用戶(hù)設(shè)定方位,然后系統(tǒng)為各位用戶(hù)發(fā)牌。發(fā)完牌后將每位用戶(hù)所得牌的情況,根據(jù)編碼規(guī)則將每位用戶(hù)分得牌的信息編輯成短信,連同方位信息一起發(fā)送它們給它們各自的用戶(hù),這樣每位用戶(hù)都將獲得、也只獲得各自的發(fā)牌信息和方位信息。如果這一步中就能確定莊家信息,則本局牌的各位用戶(hù)還將獲得哪個(gè)方位是莊家的信息。
上述的匹配模式隨系統(tǒng)的實(shí)現(xiàn)可能各不相同,比如最簡(jiǎn)單的模式就是在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,從第一位ID起,提取足夠多位的ID與該用戶(hù)匹配成牌局的各對(duì)局方,如果當(dāng)前等待的用戶(hù)位數(shù)還不夠多則將該用戶(hù)ID寫(xiě)入該隊(duì)列,與原先等待的用戶(hù)一起,等待足夠數(shù)量的用戶(hù)。
對(duì)所得牌如何編碼的規(guī)則,也可采用各種不同方式。一個(gè)須掌握的原則就是,對(duì)撲克的游戲,如果游戲中須要牌的花色評(píng)判大小,則需要將用戶(hù)分得的牌先分花色再按一定大小順序編碼發(fā)給用戶(hù),如果游戲中不需要比較牌的花色,則只須按一定大小順序?qū)⑺门瓢l(fā)給用戶(hù);對(duì)于麻將則是先分花色,再按一定大小順序?qū)⑺门频母鱾€(gè)名稱(chēng)發(fā)給用戶(hù)就行。更具體一點(diǎn),可以將撲克四個(gè)花色“黑桃、紅心、梅花、方塊”用四個(gè)漢字或四個(gè)字母代替,比如用“桃、心、梅、方”代替,保持各張牌的點(diǎn)數(shù)不變,編寫(xiě)每張牌的點(diǎn)數(shù)時(shí)依然用原符號(hào)“2、3、4、5、6、7、8、9、10、J、Q、K、A”代替,對(duì)于彩色王牌和黑白王牌可以用英文字母或漢字代替。比如可以用兩個(gè)不同的字母代替或者一個(gè)字母的大寫(xiě)和小寫(xiě)代替。更具體一點(diǎn),比如可以用兩個(gè)不同的字母W代替彩色王牌和G代替黑白王牌;或者使用字母G的大寫(xiě)G代替彩色王牌,小寫(xiě)字母g代替黑白王牌。顯然用來(lái)代替的字母不能是AJQK這四個(gè)已經(jīng)出現(xiàn)的字母?;蛘咧苯釉诙绦胖袑⒉噬跖坪秃诎淄跖浦苯訉?xiě)成“大王、小王”。如果在所玩牌類(lèi)游戲中不需要花色比較每手牌的大小,則所得牌的編碼不必出現(xiàn)花色編碼,直接將所得牌按一定大小順序?qū)⒚繌埮频狞c(diǎn)數(shù)編寫(xiě)入短信。對(duì)于麻將,可以說(shuō)已經(jīng)有些牌有“現(xiàn)成的編碼了”,比如“一萬(wàn)”至“九萬(wàn)”、“東”“西”“南”“北”“中”“發(fā)”,就可以用牌面上現(xiàn)成的漢字作編碼,類(lèi)似地,可以將花色俗稱(chēng)為“筒”(也稱(chēng)為“餅”)的點(diǎn)數(shù)從1到9的九張牌,編碼成“一筒”至“九筒”,將花色俗稱(chēng)為“條”(也稱(chēng)為“索”)的點(diǎn)數(shù)從1到9的九張牌,編碼成“一條”至“九條”,對(duì)于俗稱(chēng)“門(mén)板”(也稱(chēng)為“白板”)的牌,可以用一個(gè)漢字,比如“門(mén)”,來(lái)代表。
第三步,用戶(hù)根據(jù)自己所得牌的短信,在牌具中將所得牌對(duì)應(yīng)的牌挑出來(lái),或者將所得牌重新記到紙上,便于后面的步驟中自己的查看,同時(shí)進(jìn)入打牌前的初始化步驟。
第四步,這里將第四步稱(chēng)為的打牌前的初始化步驟。這是一個(gè)對(duì)一些小步驟的總稱(chēng),它包括第三步之后和某個(gè)用戶(hù)打出整局牌的第一手牌之前的步驟,對(duì)于具體不同撲克游戲的玩法,包含的具體步驟也不一樣。
對(duì)于“斗地主”撲克游戲,初始化步驟包括下列步驟1、參于本局游戲的各位用戶(hù),在系統(tǒng)規(guī)定的時(shí)間內(nèi)發(fā)送包含“叫分”信息的短信息到系統(tǒng)。未在指定時(shí)間內(nèi)發(fā)送該信息的用戶(hù)將由系統(tǒng)叫出最低分或者不叫分,發(fā)送錯(cuò)誤格式“叫分”編碼的用戶(hù)系統(tǒng)可以視為不叫分。叫分短信可以直接由所叫分?jǐn)?shù)的數(shù)值組成,比如一位用戶(hù)叫三分,可以直接發(fā)送“3”到系統(tǒng),一位用戶(hù)不叫分,可以發(fā)送“0”到系統(tǒng)。
2、系統(tǒng)將叫分達(dá)到最高分的用戶(hù)設(shè)為莊家,如果達(dá)到最高分的用戶(hù)有多位或者當(dāng)前最高分的用戶(hù)有多位,系統(tǒng)則根據(jù)坐莊的輪流次序和方位次序,或者由系統(tǒng)隨機(jī)指定,來(lái)確定本局中的莊家。如果都沒(méi)叫分,系統(tǒng)則根據(jù)坐莊的輪流次序和方位次序,或者由系統(tǒng)隨機(jī)指定,確定一位莊家,或者不指定莊家將本局作廢,發(fā)送作廢短信到各位用戶(hù),等待各位用戶(hù)重新開(kāi)始。莊家確定后,系統(tǒng)將剩余還未發(fā)出的屬于莊家的牌按所得牌的編碼方式編輯成短信后與所確定的莊家信息一起發(fā)給所有這局牌的用戶(hù),莊家再根據(jù)這些短信中的信息,再將所對(duì)應(yīng)的牌挑出來(lái)或者記錄下來(lái)。如果游戲規(guī)則是非莊家看不到這幾張牌,則非莊家將只獲得哪位用戶(hù)是莊家信息,比如“莊家是您的上家”、“莊家是您的下家”。
對(duì)于“升級(jí)”撲克游戲,初始化步驟包括下列步驟1、參于本局游戲的各位用戶(hù)根據(jù)所得牌的情況在規(guī)定時(shí)間內(nèi)發(fā)送自己想叫的“將牌”(也有的地方叫“主牌”)的花色編碼到系統(tǒng),系統(tǒng)可以提供本輪暫時(shí)不叫和本局都不叫的編碼格式,用戶(hù)可以據(jù)此發(fā)送本輪暫時(shí)不叫或本局不叫的短信到系統(tǒng),在規(guī)定時(shí)間內(nèi)未發(fā)送短信的用戶(hù)系統(tǒng)可以視為該用戶(hù)本輪暫時(shí)不叫或本局不叫。
2、系統(tǒng)將,在規(guī)定時(shí)間內(nèi)最先獲得的花色信息作為本次“將牌”的花色,然后檢查每位用戶(hù)的所得牌確定是否有哪幾位用戶(hù)沒(méi)有發(fā)送本局不叫牌并且具有“反將”的能力,如果有則發(fā)送第一輪所確定的花色和是否“反將”的短信到這幾位用戶(hù),進(jìn)行新一輪的叫牌。如果第一輪都沒(méi)叫花色,則系統(tǒng)可進(jìn)行例外的處理,比如指定一種花色,繼續(xù)下去;或者,莊家“垮莊”;或者僅本局作廢,重新開(kāi)始一局。
3、如此進(jìn)行第1和第2步的反復(fù),最后確定“將牌”花色后,將“將牌”花色和莊家信息發(fā)送給每一位用戶(hù)。在第一局的升級(jí)游戲中,還會(huì)有確定莊家的步驟,一個(gè)簡(jiǎn)單的方法就是系統(tǒng)在這時(shí),將確定本局“將牌”花色的用戶(hù)確定為本局的莊家,其它方法由于在不同地方的玩法中會(huì)不一樣,本文中不一而足。
4、系統(tǒng)將莊家所應(yīng)獲得的底牌按所得牌的編碼方式編碼后發(fā)給莊家。
5、莊家將底牌對(duì)應(yīng)的牌再挑出來(lái)或記錄下來(lái)。根據(jù)前后兩次得牌情況,選擇出要“扣”的底牌,然后按所得牌的編碼方式,在規(guī)定時(shí)間內(nèi)發(fā)回給系統(tǒng)。
6、系統(tǒng)將檢查發(fā)回短信中所指定的要“扣”的牌是否屬于莊家,如果屬于則發(fā)送短信給莊家,提示莊家出第一手牌。
對(duì)于“三打哈”游戲,初始化步驟包括下列步驟1、參于本局游戲的各位用戶(hù),在系統(tǒng)規(guī)定的時(shí)間內(nèi)發(fā)送包含“叫分”信息的短信息到系統(tǒng)。未在指定時(shí)間內(nèi)發(fā)送該信息的用戶(hù)將由系統(tǒng)叫出最低分或者不叫分,發(fā)送錯(cuò)誤格式“叫分”編碼的用戶(hù)系統(tǒng)可以視為不叫分。叫分短信可以直接由所叫分?jǐn)?shù)的數(shù)值組成,比如一位用戶(hù)叫80分,可以直接發(fā)送“80”到系統(tǒng),一位用戶(hù)不叫分,可以發(fā)送“1”到系統(tǒng),因?yàn)椤?”分在游戲規(guī)則中是無(wú)效叫分。
2、系統(tǒng)將叫分達(dá)到最高分或最低分(具體是最高分還是最低分視實(shí)現(xiàn)時(shí)游戲規(guī)則而定)的用戶(hù)設(shè)為莊家,如果達(dá)到最值分的用戶(hù)有多位系統(tǒng)則根據(jù)坐莊的輪流次序和方位次序,或者由系統(tǒng)隨機(jī)指定,來(lái)確定本局中的莊家。如果當(dāng)前最值分都沒(méi)達(dá)到能叫到的最高分,但是也有多位用戶(hù),系統(tǒng)則發(fā)送短信給這幾位用戶(hù)要求他們進(jìn)行第二輪的叫分。如果都沒(méi)叫分,系統(tǒng)則根據(jù)坐莊的輪流次序和方位次序,或者由系統(tǒng)隨機(jī)指定,確定一位莊家,或者不指定莊家將本局作廢,發(fā)送作廢短信到各位用戶(hù),等待各位用戶(hù)重新開(kāi)始。
3、莊家確定后系統(tǒng)發(fā)送短信到莊家,要求他確定本局“將牌”的花色。莊家根據(jù)當(dāng)前所得牌的情況將確定的花色發(fā)送到系統(tǒng)。系統(tǒng)也可以將此信息指定在叫分的步驟隨同叫分的分?jǐn)?shù)一同發(fā)送到系統(tǒng)。
4、系統(tǒng)將莊家所應(yīng)獲得的底牌按所得牌的編碼方式編碼后發(fā)給莊家。
5、莊家將底牌對(duì)應(yīng)的牌再挑出來(lái)或記錄下來(lái)。根據(jù)前后兩次得牌情況,選擇出要“扣”的底牌,然后按所得牌的編碼方式,在規(guī)定時(shí)間內(nèi)發(fā)回給系統(tǒng)。在有的地方的“三打哈”游戲中,“將牌”花色在獲得底牌后確定。
6、系統(tǒng)將檢查發(fā)回短信中所指定的要“扣”的牌是否屬于莊家,如果屬于則發(fā)送短信給莊家,提示莊家出第一手牌。
在其它一些撲克游戲中,也需要一些初始化步驟,這里不一一說(shuō)明。
第五步,本局中應(yīng)當(dāng)?shù)谝晃怀雠频挠脩?hù)按照所得牌的編碼規(guī)則,將自己出的第一手牌再?gòu)乃门浦刑舫鰜?lái),或者在紙上從所得牌中劃去,編輯成短信后,發(fā)送到系統(tǒng)。
第六步,系統(tǒng)首先檢查編碼的格式是否正確,再檢查短信內(nèi)所包含的牌是不是這位用戶(hù)的,最后檢查所出的牌是否符合當(dāng)前游戲的游戲規(guī)則。如果沒(méi)錯(cuò)誤,進(jìn)入下一步。
第七步,系統(tǒng)根據(jù)具體的牌類(lèi)游戲規(guī)則,確定當(dāng)前是哪位用戶(hù)獲得發(fā)牌權(quán),確定后,將這位用戶(hù)從最近一次獲得發(fā)牌權(quán),至本次獲得發(fā)牌權(quán)的期間,其它用戶(hù)的出牌情況用短信發(fā)給用戶(hù)。出牌情況用每個(gè)用戶(hù)信息后面加跟他所出的那手牌的編碼進(jìn)行描述,其中短信中每手牌的編碼的先后順序與實(shí)際出牌順序相對(duì)應(yīng)。也就是,即使某個(gè)用戶(hù)在此期間出了兩手牌,如果這兩手牌中間還有其它用戶(hù)出牌,則這兩手牌的編碼在短信中將會(huì)被插入其它用戶(hù)的出牌編碼。如果這期間有用戶(hù)沒(méi)出牌,可以在短信直接寫(xiě)明,也可以通過(guò)在短信中不包含該用戶(hù)出牌信息的方式來(lái)表示該用戶(hù)沒(méi)出牌。對(duì)于麻將這種牌類(lèi)游戲,用戶(hù)收到的短信中除了其它用戶(hù)的出牌情況,還應(yīng)包括這期間發(fā)生的“吃”“碰”“桿”牌的信息,和當(dāng)前系統(tǒng)發(fā)給用戶(hù)的那張牌的信息。
第八步,輪到發(fā)牌權(quán)的用戶(hù)根據(jù)其它用戶(hù)的出牌情況,將自己要出的一手牌從所得牌中挑出來(lái),或者在紙上從所得牌中劃去,編輯成短信后,發(fā)送到系統(tǒng)。玩麻將游戲的用戶(hù)根據(jù)出牌情況可能需要重新調(diào)整自己當(dāng)前手上剩余的牌。
第九步,在本局牌的各位用戶(hù)之間重復(fù)第六、七、八步。
第十步,當(dāng)出現(xiàn)下列情況時(shí),一位用戶(hù)中止第九步的循環(huán),該用戶(hù)結(jié)束出牌1、他的牌已出完;2、根據(jù)游戲規(guī)則,他已獲勝或失?。?、本局牌中的其它用戶(hù)都已出完牌。
當(dāng)本局牌中的所有用戶(hù)都結(jié)束出牌后,系統(tǒng)根據(jù)當(dāng)前牌類(lèi)游戲規(guī)則為各位用戶(hù)評(píng)判輸贏、記分將上述信息發(fā)給各位用戶(hù)后,提示用戶(hù)發(fā)送開(kāi)始游戲的短信到系統(tǒng),開(kāi)始下一局牌的游戲。
之后系統(tǒng)將在設(shè)定的時(shí)間內(nèi)等待剛才參于游戲的每位用戶(hù)開(kāi)始游戲的短信,如果每位用戶(hù)在此時(shí)間內(nèi)都表示重新開(kāi)始則從系統(tǒng)繼續(xù)游戲,否則將只為確定開(kāi)始的用戶(hù)重新匹配新的用戶(hù)以開(kāi)始新一輪的游戲。
在以上步驟中,玩麻將游戲可能還有些問(wèn)題,因?yàn)樵谄綍r(shí)打牌中“吃碰桿”牌的動(dòng)作是由用戶(hù)根據(jù)牌情主動(dòng)發(fā)出的,這種動(dòng)作改變了用戶(hù)中的出牌權(quán),并且是當(dāng)發(fā)生這個(gè)動(dòng)作時(shí),就改變,不像撲克類(lèi)游戲,一般通過(guò)比較上一輪各用戶(hù)所出牌大小,在下一輪中才改變出牌權(quán)的順序。使用短信玩麻將游戲,要想實(shí)現(xiàn)上述的動(dòng)作的一種方法是,在每位用戶(hù)出牌后都將他的出牌信息告訴其它用戶(hù),由用戶(hù)根據(jù)自己牌情選擇是否“吃碰桿”,如果決定要采取其中的一種動(dòng)作,在系統(tǒng)規(guī)定的時(shí)間內(nèi)將動(dòng)作編碼發(fā)給系統(tǒng)。雖然這種方法可以實(shí)現(xiàn)上述的機(jī)制,但是由于采用短信這種方式進(jìn)行通訊,系統(tǒng)的實(shí)時(shí)性不是很高,所以上述方法將影響整個(gè)的游戲的速度。所以,系統(tǒng)采用下述方法實(shí)現(xiàn)。在上述第六步中系統(tǒng)通過(guò)對(duì)牌的編碼一系列的檢查后,再進(jìn)行下述檢查,根據(jù)記錄的其它三位用戶(hù)的當(dāng)前手中剩余牌的信息,查找是否有用戶(hù)對(duì)剛出的那張牌可以進(jìn)行“碰”和“桿”的情況,如果有,則向且只向這位用戶(hù)發(fā)送詢(xún)問(wèn)是否“碰桿”牌的短信,再根據(jù)用戶(hù)反饋的信息進(jìn)行下一步的操作;在檢查沒(méi)用戶(hù)可以進(jìn)行“碰”和“桿”后,再檢查是否有用戶(hù)根據(jù)當(dāng)前的規(guī)則可以“吃”,如果有則同樣向且只向這位用戶(hù)發(fā)送詢(xún)問(wèn)是否“吃”牌的短信,再根據(jù)用戶(hù)反饋的信息進(jìn)行下一步的操作。
本方法的有益效果就是,與用手機(jī)進(jìn)行棋類(lèi)游戲的方法一樣,對(duì)于廣大的手機(jī)用戶(hù)來(lái)說(shuō),為他們提供了一種廉價(jià)的進(jìn)行牌類(lèi)游戲的方法,用戶(hù)無(wú)須購(gòu)置高價(jià)的設(shè)備,也能與陌生人進(jìn)行遠(yuǎn)程牌類(lèi)游戲。此外,這種方法對(duì)于廣大的手機(jī)用戶(hù)來(lái)說(shuō),還有易掌握,因?yàn)槭褂昧?xí)以為常的短信方式,對(duì)牌的描述也是習(xí)慣中使用的符號(hào),移動(dòng)性好,在家里,在公園里、在火車(chē)上,在汽車(chē)上,只要帶上牌甚至只需紙和筆,有移動(dòng)通訊信號(hào),隨時(shí)隨地可以“來(lái)一把”,驅(qū)走旅行生法中的無(wú)聊和寂寞。對(duì)于移動(dòng)運(yùn)營(yíng)商來(lái)說(shuō),本方法也為他們提供了一種投資少,見(jiàn)效快,回報(bào)具大的新業(yè)務(wù),因?yàn)檫\(yùn)營(yíng)商無(wú)須更換、升級(jí)通信設(shè)備,只須采用現(xiàn)有的成熟的計(jì)算機(jī)技術(shù)與通信技術(shù),經(jīng)過(guò)短時(shí)間的開(kāi)發(fā)與測(cè)試,就可為廣大的手機(jī)用戶(hù)提供一種新的娛樂(lè)方式。
在以上的牌類(lèi)游戲的方法中,用戶(hù)在每一輪出牌后都必須記住自己手里剩余的牌,一種方法是用牌具,一種方法是用紙和筆,這里就提出一種更好的方法,可以讓用戶(hù)不用牌具,不用紙和筆,也能進(jìn)行牌類(lèi)游戲。該方法很簡(jiǎn)單,就是在上述步驟中,一切在系統(tǒng)第一次發(fā)了牌之后到結(jié)束前的系統(tǒng)發(fā)往某位用戶(hù)的短信中,都加上這位用戶(hù)的當(dāng)前手中剩余牌的編碼,將這位用戶(hù)當(dāng)前手中剩余牌的情況直接用短信發(fā)給這位用戶(hù)。在有些需要為參加游戲的各方記分的游戲中,一起發(fā)送的還有當(dāng)前各方的積分信息。為了實(shí)現(xiàn)此功能,系統(tǒng)當(dāng)然要登記下這位用戶(hù)最先獲得了什么牌,之后還獲得什么牌,用戶(hù)出的每手牌是什么牌,據(jù)此計(jì)算出每手牌之后還剩什么牌。要發(fā)送記分信息的,系統(tǒng)還要在每手牌后為各方登記分?jǐn)?shù)變化。
通過(guò)以上方法,用戶(hù)就可以脫離牌具或紙和筆,只使用手機(jī)也能玩上牌類(lèi)游戲了。
與棋類(lèi)游戲相類(lèi)似,為了用戶(hù)輸入的方便,在用戶(hù)發(fā)往系統(tǒng)的短信,還可以使用全數(shù)字的編碼方式對(duì)每手牌和打牌中的一些動(dòng)作進(jìn)行編碼。當(dāng)然,將這些信息進(jìn)行數(shù)字化編碼的方式,由于設(shè)計(jì)思路的不同,可能有多種多樣。在本節(jié)中,主要描述一下里面的重點(diǎn),更具體的實(shí)現(xiàn),可參見(jiàn)后繼“實(shí)施方式”。在本方法,對(duì)撲克游戲中的各張牌的點(diǎn)數(shù)作如下替換,保持點(diǎn)數(shù)“2、3、4、5、6、7、8、9、10”的編碼依然為“2、3、4、5、6、7、8、9、10”,“A、J、Q、K”在編碼中對(duì)應(yīng)為“1、11、12、13”,黑白王牌和彩色王牌在編碼中對(duì)應(yīng)“14、15”?!昂谔?、紅心、梅花、方塊”也用四個(gè)阿拉伯?dāng)?shù)字代替,可以就對(duì)應(yīng)“1、2、3、4”這種它們平常在一些牌類(lèi)游戲中花色的大小順序。在撲克游戲打出的每手牌中,先將一種花色的牌輸入完,再輸入另一種花色的牌;每一種花色的牌,先輸入花色的數(shù)字編碼再輸入該花色下每張牌點(diǎn)數(shù)的數(shù)字編碼;黑白王牌和彩色王牌可以加入整手牌中的任何一種花色隊(duì)列的編碼中,如果整手牌只出現(xiàn)黑白王牌和彩色王牌,可以將它們的花色編碼設(shè)定為任一花色編碼,在輸入花色編碼后再輸入它們的點(diǎn)數(shù);如果具體牌類(lèi)游戲中花色不參加比較大小,則在上述的編碼中花色編碼一律去掉,所有的牌按一種花色規(guī)則進(jìn)行編碼。
還可以采用數(shù)量詞后跟牌的點(diǎn)數(shù)的方式化簡(jiǎn)化一手牌的輸入。也就是,如果一手牌在同一花色的編碼隊(duì)列中出現(xiàn)了2次及兩次以上,可以采用先輸入一個(gè)表示出現(xiàn)次數(shù)的阿拉伯?dāng)?shù)字再輸入這張牌的點(diǎn)數(shù)的方式簡(jiǎn)化編碼。比如,在“斗地主”游戲中,有某位用戶(hù)出了三張“J”帶一對(duì)“3”,由于在“斗地主”游戲中,花色不區(qū)分大小,根據(jù)以上規(guī)則可以使用輸入以下編碼表示這手牌“31123”。為了讓系統(tǒng)在對(duì)該編碼解析時(shí)使用比較簡(jiǎn)單的算法,可以要求在每個(gè)表次數(shù)的數(shù)字前加上分隔符,比如前例加分隔符后為“311.23”,“.”作分隔符。如果在手機(jī)的數(shù)字輸入法中,輸入非數(shù)字分隔符不方便,可以用兩個(gè)“0”作分隔符,比如前例可為“3110023”,雖然對(duì)用戶(hù)兩說(shuō)有些頭暈,但是系統(tǒng)在解析時(shí)算法不見(jiàn)得比“311.23”要復(fù)雜多少。
在麻將游戲中,與撲克游戲類(lèi)似,將四種花色“筒、條、萬(wàn)、風(fēng)”用四個(gè)阿拉伯?dāng)?shù)字代替,可以為“0、1、2、3”,用“0”象形“筒”牌上的刻紋特征,用“1”象形“條”牌上的刻紋特征,按順序用“2、3”表示“萬(wàn)、風(fēng)”。“筒、條、萬(wàn)”各張牌的點(diǎn)數(shù)分別用“1”至“9”代替,“東西南北中發(fā)白”,也用7人數(shù)字代替,可用“6、4、8、2、5”替換“東、西、南、北、中”,這些數(shù)字在手機(jī)按鍵上的方位對(duì)應(yīng)“東西南北中”,“發(fā)、白”可以相應(yīng)對(duì)應(yīng)“7、9”。因?yàn)榇虺鰜?lái)的一手牌就是一張牌,所以,對(duì)一張牌的編碼可以根據(jù)平時(shí)玩麻將的習(xí)慣,點(diǎn)數(shù)編碼在前,花色編碼在后。
對(duì)于“吃、碰、桿”的動(dòng)作編碼,可以用“1、2、3”依次代替,如果不進(jìn)行“吃碰桿”的動(dòng)作,可以直接發(fā)送“0”至系統(tǒng),對(duì)于“吃、碰”的動(dòng)作,可以發(fā)送“吃、碰”動(dòng)作編碼后加要出的牌的編碼給系統(tǒng);如果要“桿”牌,直接發(fā)送動(dòng)作編碼給系統(tǒng),比如發(fā)送“3”表示用3張牌“桿”,系統(tǒng)則將新發(fā)牌及用戶(hù)的當(dāng)前的剩余牌再一次發(fā)給用戶(hù)。
采用了阿拉伯?dāng)?shù)字式的編碼方式后,達(dá)到了一個(gè)顯而易見(jiàn)的效果,可以方便用戶(hù)輸入。但是,如前分析,如果不加處理地將這種數(shù)字式的編碼發(fā)送給用戶(hù),可能會(huì)給用戶(hù)帶來(lái)視覺(jué)上的疲勞。比如有一個(gè)用戶(hù)在“斗地主”游戲中,出了三張“”帶一個(gè)“J”,這時(shí)他的數(shù)字式編碼可以是“11111”,顯然其它兩位用戶(hù)如果收到了這樣的編碼“下11111”或“上11111”分別表示下家或上家的出牌,那么估計(jì)這兩位用戶(hù)需要想半天才能搞明白到底表示什么牌,但是根據(jù)游戲規(guī)則,這手牌只可能表示三張“A”帶一個(gè)“J”。所以當(dāng)用戶(hù)在接收其它玩家出牌的編碼時(shí),使用數(shù)字式編碼方式是很不友好的。為此,一個(gè)更貼近用戶(hù)的方法是,將用戶(hù)發(fā)來(lái)的數(shù)字式編碼處理成非全數(shù)字編碼。對(duì)于撲克游戲,這種處理可以包括以下幾種情況1、為不同點(diǎn)數(shù)的牌之間加上分隔符,比如前例處理后就是“11111”,使用空格作分隔符;2、將編碼中代替點(diǎn)數(shù)“A、J、Q、K”的數(shù)字,替換回“A、J、Q、K”,比如前例經(jīng)過(guò)處理后就是“AAA J”,兩張王牌也可以用兩個(gè)非“AJQK”的字母代替;3、將代替花色的數(shù)字替換成相對(duì)應(yīng)的漢字或者英文字母;4、加上每手牌的用戶(hù)編碼,盡量采用漢字作為用戶(hù)編碼。
對(duì)于連同一起發(fā)送回用戶(hù)的剩余牌的信息,則只進(jìn)行第2種處理,然后將各張牌先分花色再按點(diǎn)數(shù)的一定大小順序排列,點(diǎn)數(shù)之間不加分隔符,不同花色隊(duì)列之間可加分隔符。如果在具體的牌類(lèi)游戲中比較牌的大小不需要花色,則不分花色,所有剩余牌只按點(diǎn)數(shù)一定的大小順序排列,點(diǎn)數(shù)之間不加分隔符。
對(duì)于麻將游戲,首先用以下的編碼方式替換每一張牌。將阿拉伯?dāng)?shù)字“1”至“9”、小寫(xiě)漢字“一”至“九”、大寫(xiě)漢字“壹”至“玖”,分別代表“條萬(wàn)筒”三種花色的9個(gè)點(diǎn)數(shù)牌,比如使用阿拉伯?dāng)?shù)字“1”至“9”依次代表“條”花色1點(diǎn)至9點(diǎn)的牌,使用小寫(xiě)漢字“一”至“九”依次代表“萬(wàn)”花色1點(diǎn)至9點(diǎn)的牌、使用大寫(xiě)漢字“壹”至“玖”依次代表“筒”花色1點(diǎn)至9點(diǎn)的牌,使用漢字“東西南北中發(fā)”分別代表“東西南北中發(fā)”六張牌,使用“白”代替“白板”這張牌,當(dāng)然這張牌也可以使用其它的漢字。在上述中,也可以用一些其它表示順序的字符組合來(lái)替換不同花色的九張牌,大寫(xiě)的字母“A”至“I”、小寫(xiě)的字母“a”至“i”、十二天干中的前九個(gè)漢字,十地支中的前九個(gè)漢字,顯然前述的三種組合來(lái)得更清楚些。
通過(guò)這種方法,可以有效地使用一個(gè)字符就能表示好一張牌。對(duì)于系統(tǒng)而言減少了編碼長(zhǎng)度,對(duì)于用戶(hù)而言,用戶(hù)可以很清晰地區(qū)分出每一張牌。
由于在麻將游戲中一位用戶(hù)的當(dāng)前剩余牌中,有經(jīng)過(guò)“吃碰桿”過(guò)的明牌,其它的玩家都看得到,還有其它玩家都看不到的暗牌,在加上剛摸的牌,總共有三種牌。在系統(tǒng)發(fā)往用戶(hù)的當(dāng)前剩余牌的暗牌編碼中,按下列規(guī)則列出每一張牌,先按一定順序的花色,花色內(nèi)再按點(diǎn)數(shù)大小順序排列每張牌,對(duì)于“風(fēng)”色的牌,可以按“東西南北中發(fā)白”的順序。比如“柒柒123三四五東”就是合法的編碼,而“柒柒213三四五東”破壞了花色內(nèi)大小順序,“1柒柒23三四五東”破壞了花色順序。對(duì)于明牌,如果也要在編碼內(nèi)出現(xiàn),首先需要與暗牌用分隔符分隔開(kāi),然后可以按照“吃碰桿”的順序排列每組牌,在“吃”的牌內(nèi)按點(diǎn)數(shù)大小順序排列。比如前例再加上暗牌可能是“(789)柒柒柒123三四五東”用圓括號(hào)分隔明牌與暗牌。對(duì)于系統(tǒng)新發(fā)給用戶(hù)的牌,系統(tǒng)可以不加區(qū)別的按規(guī)則填入暗牌編碼中去,也可以置于暗牌的牌尾。一種更友好的方法是將它按規(guī)則填入暗牌編碼中去,但是用分隔符將它與其它牌的編碼分隔開(kāi),比如前例可以為“(789)柒柒柒123三[三]四五東”。最好再加上表示這張牌還有多少?gòu)堖@位用戶(hù)沒(méi)看到的數(shù)字,比如前例可以為“(789)柒柒柒123三[三0]四五東”,表示“三”這張牌對(duì)于這位用戶(hù)來(lái)說(shuō)只有0張?jiān)谙到y(tǒng)的未發(fā)牌中。采用本節(jié)的編碼方式后,用戶(hù)可以很清晰地獲得當(dāng)前剩余牌的信息,可以提高用戶(hù)的出牌速度。
如果在牌的編碼中使用了漢字,那么一條短信中最多只能有70個(gè)字符。而對(duì)于麻將這種游戲,玩家在游戲中除了關(guān)心其它的玩家打了什么牌外,最關(guān)心的還是自己要的牌在自己沒(méi)看見(jiàn)的牌中還剩幾張。所以系統(tǒng)發(fā)往用戶(hù)的當(dāng)前剩余牌的編碼中,可以加入用戶(hù)當(dāng)前未看見(jiàn)的牌的編碼,為了減少這部分的編碼長(zhǎng)度,可以用數(shù)量詞后跟牌的編碼來(lái)實(shí)現(xiàn),比如先由“4”開(kāi)頭,后跟所有這位用戶(hù)還未看見(jiàn)的牌的數(shù)量為4的牌的編碼,再以3開(kāi)頭加入剩余數(shù)量為3的牌的編碼,依次到數(shù)量1,每個(gè)數(shù)量隊(duì)列用分隔符隔開(kāi)。比如可以是“4.二七15壹玖;3.一3捌;2.三6伍;1.九”。當(dāng)然在剛開(kāi)始打牌的時(shí)候,幾乎每張牌的編碼都會(huì)出現(xiàn),這時(shí)可以在前幾輪對(duì)看到的牌進(jìn)行編碼,后面幾輪再對(duì)未看到的牌進(jìn)行編碼。采用本節(jié)編碼方式后,用戶(hù)可以更清晰地確定出自己出哪張牌更好。
因?yàn)槁閷⒂螒蛑?,一位玩家?duì)于其它玩家打出來(lái)的牌更看重打出來(lái)什么牌,至于哪張牌是誰(shuí)打的,則稍顯忽視。所以可以對(duì)這位用戶(hù)從上次出牌到這次再獲得發(fā)牌權(quán)期間內(nèi)其它用戶(hù)出牌的編碼前面省略用戶(hù)編碼,對(duì)于沒(méi)有“吃碰桿”的牌,即打出來(lái)的“廢牌”,按先后順序列出,對(duì)“吃碰桿”的牌先按“吃碰桿”這三種動(dòng)作的順序,每個(gè)動(dòng)作內(nèi)再按牌的先后順序列出牌的編碼,其中每隊(duì)牌的編碼前面加上這對(duì)牌的動(dòng)作編碼,并且之間進(jìn)行分隔。比如某玩家從上一輪打牌到這一輪開(kāi)始打牌,下家打了一個(gè)“二”,對(duì)家吃了“二”擺出來(lái)了“一二三”的牌并打了“四”,上家是莊家打了一個(gè)“6”,被對(duì)家碰了并打了“7”,之后上家又打了一個(gè)“東”,這時(shí),上面的信息的編碼可以是“吃二;碰6;打四7東”加上分隔符只用了十個(gè)字符也說(shuō)明了大部分的情況。如果照前述的編碼方式可能是“下二;對(duì)吃二打四;莊6;對(duì)碰6打7;莊東”,用了20個(gè)漢字,對(duì)于一條短信只有70個(gè)漢字的約束是一個(gè)不小的挑戰(zhàn),如果加上前面的玩家當(dāng)前牌信息和未看到牌信息,很有可能會(huì)突破70個(gè)字符的大關(guān)。所以對(duì)于麻將這種更強(qiáng)調(diào)“自我修煉”的娛樂(lè),哪位玩家打什么牌可能并不是關(guān)鍵,這里面更關(guān)鍵的是“吃碰桿”的動(dòng)作和結(jié)果,而不是進(jìn)行動(dòng)作的對(duì)象。所以上面的方法,還是一種有效的簡(jiǎn)化方式。采用本節(jié)編碼方式后,用戶(hù)可以清晰地確定出當(dāng)前出牌的大部分情況,而系統(tǒng)則可以更加容易在一條短信中將用戶(hù)所需的大部分信息發(fā)送給用戶(hù)。
具體實(shí)施例方式
對(duì)于本方法的具體實(shí)施方式
,顯然對(duì)于一些硬件,比如通信網(wǎng)絡(luò),是沒(méi)有選擇,毫無(wú)疑問(wèn)是要使用現(xiàn)在有線或無(wú)線通信網(wǎng)絡(luò)。通信終端用戶(hù)可以自備。對(duì)于系統(tǒng)部分,也就是通信網(wǎng)關(guān)與應(yīng)用服務(wù)器,計(jì)算機(jī)設(shè)備可以購(gòu)買(mǎi),但是配套的軟件必須自己開(kāi)發(fā)。為在先期節(jié)約投入成本,可以只用一臺(tái)計(jì)算機(jī)實(shí)現(xiàn)通信網(wǎng)關(guān)與應(yīng)用服務(wù)器。通信網(wǎng)關(guān)配套的軟件可以根據(jù)運(yùn)營(yíng)商的接口規(guī)范來(lái)開(kāi)發(fā)。應(yīng)用服務(wù)器相關(guān)的軟件可以分下面三個(gè)部分兩分來(lái)實(shí)現(xiàn)1、用戶(hù)的靜態(tài)數(shù)據(jù)維護(hù),主要是管理用戶(hù)的注冊(cè)信息;2、用戶(hù)數(shù)據(jù)的動(dòng)態(tài)管理,主要是為發(fā)送了開(kāi)始游戲短信的用戶(hù)匹配相當(dāng)?shù)挠脩?hù),根據(jù)各位用戶(hù)在一局游戲結(jié)束后的發(fā)向系統(tǒng)的信息,實(shí)現(xiàn)重新開(kāi)始游戲或重新匹配用戶(hù);3、安排好一局游戲中的各用戶(hù)之間的信息發(fā)送秩序,將編碼規(guī)則與游戲規(guī)則轉(zhuǎn)化為算法,檢驗(yàn)用戶(hù)的編碼,記錄下每局牌中發(fā)牌和出牌情況,保證編碼的正確性與整個(gè)游戲的公平性。其中將游戲規(guī)則轉(zhuǎn)化為算法可能是整個(gè)系統(tǒng)實(shí)現(xiàn)起來(lái)相對(duì)較難的部分,比如圍棋,雖然游戲規(guī)則簡(jiǎn)單,但是由于棋形的千變?nèi)f化,所以實(shí)現(xiàn)起來(lái)可能需要仔細(xì)研究,對(duì)此一個(gè)更好的辦法就是購(gòu)買(mǎi)一些現(xiàn)成的算法,或是現(xiàn)成的軟件模塊,這樣既可以加快整個(gè)系統(tǒng)的開(kāi)發(fā)進(jìn)度,也避免了重復(fù)性勞動(dòng)。
在中國(guó)象棋游戲中,可以采用如下的步驟、編碼規(guī)則。
系統(tǒng)可以采用如下的編碼規(guī)則將棋盤(pán)的10條橫線從一根底線到另一根底線從下至上順次用1至10這10個(gè)阿拉伯?dāng)?shù)字標(biāo)注,同時(shí)也用英文字母“A”至“J”順次標(biāo)注。將9條豎線從左至右依次用用1至9這9個(gè)阿拉伯?dāng)?shù)字標(biāo)注。規(guī)定紅棋擺放在橫線標(biāo)注為1的一側(cè),綠棋擺放在橫線標(biāo)注為10的一側(cè)。用戶(hù)發(fā)往系統(tǒng)的一步棋的編碼,先是原棋位的信息,再是新棋位的信息。每個(gè)棋位信息先輸入橫坐標(biāo),再輸入縱坐標(biāo)。橫坐標(biāo)可以采用對(duì)應(yīng)的數(shù)字或?qū)?yīng)的英文字母,縱坐標(biāo)采用數(shù)字,所有編碼之間不加分隔符。系統(tǒng)發(fā)往用戶(hù)的一步棋編碼中,先是棋子的漢字名稱(chēng),后隨原棋位編碼,再隨新棋位編碼,原棋位和新棋位的編碼之間加分隔符“->”,棋位編碼中,橫坐標(biāo)采用英文字母,縱坐標(biāo)采用數(shù)字,如果這步棋吃子,則加上漢字“吃”,后隨所吃子的名稱(chēng),如果這步棋將軍,加上“將軍”兩字。
另外,系統(tǒng)還規(guī)定,除了須遵循中國(guó)象棋的游戲規(guī)則外,在游戲時(shí)必須兩分鐘之內(nèi)走一步棋,各方都只有20分鐘的走棋時(shí)間,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。用戶(hù)在下棋過(guò)程中可以發(fā)送“3”到系統(tǒng)認(rèn)負(fù),發(fā)送“4”到系統(tǒng)求和,發(fā)送“1”表示同意求和,發(fā)送“0”表示不同意求和。和棋不加分,勝一局加1分,負(fù)一局減一分。
系統(tǒng)采用如下的步驟第一步,用戶(hù)自己準(zhǔn)備好的棋具,擺放好已方和對(duì)方棋子。
第二步,用戶(hù)發(fā)送“ZQ”到系統(tǒng),表示開(kāi)始中國(guó)象棋的游戲。
第三步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在第一位的用戶(hù)ID,如果一位用戶(hù)也沒(méi)有則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待下一位開(kāi)始中國(guó)象棋游戲的用戶(hù)。
第四步,系統(tǒng)為用戶(hù)匹配好對(duì)弈的用戶(hù)后,發(fā)來(lái)的他使用棋的顏色。比如,系統(tǒng)向用戶(hù)發(fā)送“您當(dāng)前使用的是綠棋,對(duì)家ID15626,呢稱(chēng)東方不敗,積分31,勝72負(fù)41和12”。
每五步,用戶(hù)如果坐在棋盤(pán)的紅棋方,則可以調(diào)轉(zhuǎn)一下棋盤(pán)的方向,將綠棋置于自己的身邊。如果系統(tǒng)指定他使用的是紅棋,則在規(guī)定的時(shí)間內(nèi)下出自己的第一步棋,并根據(jù)對(duì)一步棋進(jìn)行編碼的規(guī)則,編輯這步棋的短信然后發(fā)送到系統(tǒng)。如果這位用戶(hù)第一步棋是將炮從C2位挪到了C5位上,則他可以發(fā)送“C2C5”或“3235”到系統(tǒng)。
第六步,系統(tǒng)對(duì)收到的短信進(jìn)行檢驗(yàn),首先判斷它是否違反了對(duì)一步棋的編碼規(guī)則,再判斷是否違反了游戲規(guī)則。如果有錯(cuò)誤,系統(tǒng)將向用戶(hù)提示錯(cuò)誤,在錯(cuò)誤中指明確切的錯(cuò)誤原因。比如用戶(hù)發(fā)送“3035”,系統(tǒng)則指明“您的編碼錯(cuò)誤,請(qǐng)重新發(fā)送!”;用戶(hù)發(fā)送“3226”,系統(tǒng)則指明“您違反炮的走棋規(guī)則,請(qǐng)重新發(fā)送!”。給用戶(hù)錯(cuò)誤提示后,開(kāi)始等待用戶(hù)的下一條短信。如果沒(méi)有錯(cuò)誤,系統(tǒng)則將按系統(tǒng)發(fā)送給用戶(hù)的短信格式重新編排,再發(fā)給他的對(duì)手。比如上步棋系統(tǒng)將轉(zhuǎn)化為“炮C2->C5”。
第七步,下一位輪到走棋的用戶(hù)收到系統(tǒng)發(fā)來(lái)的上一位用戶(hù)的走棋信息的短信,根據(jù)短信內(nèi)容在自己的棋具上走出對(duì)弈方的那步棋,然后考慮自己的應(yīng)招,當(dāng)下出自己的一步棋后,根據(jù)編碼規(guī)則將這步棋編輯成短信后發(fā)送到系統(tǒng)。
第八步,依下棋秩序在各位用戶(hù)之間重復(fù)第六、七步直到游戲結(jié)束。
第九步,結(jié)束游戲。當(dāng)其中的一位用戶(hù)出現(xiàn)下列情況后,系統(tǒng)為該用戶(hù)結(jié)束游戲1、該用戶(hù)發(fā)送系統(tǒng)“3”到系統(tǒng);2、根據(jù)中國(guó)象棋游戲規(guī)則該用戶(hù)吃了對(duì)方的“將”或“帥”,或者“將”或“帥”被對(duì)方吃掉;3、該用戶(hù)在兩分鐘內(nèi)還沒(méi)下出一步棋;4、該用戶(hù)二十分鐘的下棋時(shí)間用完;5、該用戶(hù)的編碼錯(cuò)誤的次數(shù)達(dá)到4次。
第十步,系統(tǒng)為每位用戶(hù)根據(jù)游戲規(guī)則計(jì)算各自得分并登記,之后將得分情況發(fā)送給參于這次游戲的每位用戶(hù),并提示用戶(hù)繼續(xù)游戲發(fā)送“1”,退出游戲發(fā)送“0”。
之后系統(tǒng)將在設(shè)定的時(shí)間內(nèi)比如兩分等待剛才參于游戲的兩用戶(hù)開(kāi)始游戲的短信,如果兩位用戶(hù)在兩分鐘內(nèi)都表示重新開(kāi)始則從系統(tǒng)繼續(xù)游戲,否則將只為確定開(kāi)始的用戶(hù)重新匹配新的用戶(hù)以開(kāi)始新一輪的中國(guó)象棋游戲。
在圍棋游戲中,可以采用如下的編碼規(guī)則。
系統(tǒng)可以采用如下的編碼規(guī)則將棋盤(pán)的19條橫線從下至上順次用1至19這19個(gè)阿拉伯?dāng)?shù)字標(biāo)注。將19條豎線從左至右依次用用1至19這19個(gè)阿拉伯?dāng)?shù)字標(biāo)注,同時(shí)也用英文字母“a”至“h”順次標(biāo)注。用戶(hù)發(fā)往系統(tǒng)的一步棋的編碼,只有新棋位的信息,先輸入橫坐標(biāo),再輸入縱坐標(biāo)。橫坐標(biāo)可以采用對(duì)應(yīng)的數(shù)字,縱坐標(biāo)采用對(duì)應(yīng)的數(shù)字或英文字母。如果縱坐標(biāo)采用英文字母,則編碼之間不加分隔符。如果縱坐標(biāo)采用數(shù)字,可以在編碼之間加任何非“0”至“9”的字符作為分隔符,比如“4.14”;或者,不加分隔符,而對(duì)橫縱坐標(biāo),標(biāo)注為“1”至“9”這九條線的單數(shù)字編碼前加上“0”,比如“0414”。系統(tǒng)發(fā)往用戶(hù)的一步棋編碼中,橫坐標(biāo)采用數(shù)字,縱坐標(biāo)采用英文字母,如果這步棋提子,則加上漢字“提子”,兩字之間再加上所提子數(shù)量的阿拉伯?dāng)?shù)字。
另外,系統(tǒng)還規(guī)定,除了須遵循圍棋的游戲規(guī)則外,在游戲時(shí)必須五分鐘之內(nèi)走一步棋,各方都只有一個(gè)小時(shí)的走棋時(shí)間,編碼錯(cuò)誤的次數(shù)不能超過(guò)5次,否則判負(fù)。用戶(hù)在下棋過(guò)程中可以發(fā)送“3”到系統(tǒng)認(rèn)負(fù),發(fā)送“4”到系統(tǒng)求和,之后對(duì)方發(fā)送“1”表示同意求和,發(fā)送“0”表示不同意求和。發(fā)送5到系統(tǒng)表示和棋不加分,勝一局加1分,負(fù)一局減一分。
在國(guó)際象棋游戲中,可以采用如下的編碼規(guī)則。
系統(tǒng)可以采用如下的編碼規(guī)則將棋盤(pán)的8條橫格從下至上順次用1至8這8個(gè)阿拉伯?dāng)?shù)字標(biāo)注。將8條豎格從左至右依次用用1至8這8個(gè)阿拉伯?dāng)?shù)字標(biāo)注,同時(shí)也用英文字母“A”至“S”順次標(biāo)注。用戶(hù)發(fā)往系統(tǒng)的一步棋的編碼,先是原棋位的信息,再是新棋位的信息。每個(gè)棋位編碼,先輸入橫坐標(biāo),再輸入縱坐標(biāo)。橫坐標(biāo)可以采用對(duì)應(yīng)的數(shù)字,縱坐標(biāo)采用對(duì)應(yīng)的數(shù)字或英文字母。系統(tǒng)發(fā)往用戶(hù)的一步棋編碼中,先是棋子的名稱(chēng)編碼,后隨原棋位編碼,再隨新棋位編碼,原棋位和新棋位的編碼之間加分隔符“->”,棋位編碼中,橫坐標(biāo)采用數(shù)字,縱坐標(biāo)采用英文字母,如果這步棋吃子,則加上“吃”這個(gè)動(dòng)作的編碼,后隨所吃子的名稱(chēng)編碼,如果這步棋將軍,加上“將軍”這個(gè)動(dòng)作的編碼。
另外,系統(tǒng)還規(guī)定,除了須遵循國(guó)際象棋的游戲規(guī)則外,在游戲時(shí)必須五分鐘之內(nèi)走一步棋,各方都只有一個(gè)小時(shí)的走棋時(shí)間,編碼錯(cuò)誤的次數(shù)不能超過(guò)5次,否則判負(fù)。用戶(hù)在下棋過(guò)程中可以發(fā)送“3”到系統(tǒng)認(rèn)負(fù),發(fā)送“4”到系統(tǒng)求和,之后對(duì)方發(fā)送“1”表示同意求和,發(fā)送“0”表示不同意求和。發(fā)送5到系統(tǒng)表示和棋不加分,勝一局加1分,負(fù)一局減一分。
在軍棋游戲中,可以采用如下的步驟、編碼規(guī)則。
系統(tǒng)可以采用如下的編碼規(guī)則將棋盤(pán)的12條橫線從一根底線到另一根底線從下至上順次用1至12這12個(gè)阿拉伯?dāng)?shù)字標(biāo)注,同時(shí)也用大寫(xiě)英文字母“A”至“L”順次標(biāo)注。將5條豎線從左至右依次用1至5這5個(gè)阿拉伯?dāng)?shù)字標(biāo)注。規(guī)定紅棋擺放在橫線標(biāo)注為1的一側(cè),白棋擺放在橫線標(biāo)注為12的一側(cè)。用戶(hù)發(fā)往系統(tǒng)的一步棋的編碼,先是原棋位的信息,再是新棋位的信息。每個(gè)棋位信息先輸入橫坐標(biāo),再輸入縱坐標(biāo)。橫坐標(biāo)可以采用對(duì)應(yīng)的數(shù)字或?qū)?yīng)的英文字母,縱坐標(biāo)采用數(shù)字,所有編碼之間不加分隔符,如果橫坐標(biāo)采用數(shù)字方式,在個(gè)位數(shù)的橫坐標(biāo)坐標(biāo)編號(hào)前加“0”。系統(tǒng)發(fā)往用戶(hù)的一步棋編碼中,先是原棋位編碼,再隨新棋位編碼,原棋位和新棋位的編碼之間加分隔符“->”,棋位編碼中,橫坐標(biāo)采用英文字母,縱坐標(biāo)采用數(shù)字,如果這步棋吃了子,則加上漢字“吃”,后隨所吃子的名稱(chēng),如果這步棋“碰死”,則系統(tǒng)向這步棋的用戶(hù)指明他的哪顆棋“碰死”了,如果與對(duì)方的棋子同歸于盡,則系統(tǒng)向用戶(hù)指明,他的哪顆子與對(duì)方的哪顆棋子同歸于盡了。
對(duì)于布陣信息,系統(tǒng)規(guī)定按照“司令”至“工兵”、“地雷”、“炸彈”24枚子的順序,在短信中將順序?qū)懭肷鲜?4枚棋子在布陣中的棋位信息,每個(gè)棋子的棋位編碼之可加分隔符,也可以不加,如果不加分隔符且橫坐標(biāo)采用數(shù)字方式,則在個(gè)位數(shù)的橫坐標(biāo)坐標(biāo)編號(hào)前加“0”。
另外,系統(tǒng)還規(guī)定,除了須遵循軍棋的游戲規(guī)則外,在游戲時(shí)必須兩分鐘之內(nèi)走一步棋,各方都只有20分鐘的走棋時(shí)間,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。用戶(hù)在下棋過(guò)程中可以發(fā)送“3”到系統(tǒng)認(rèn)負(fù),發(fā)送“4”到系統(tǒng)求和,被求和方在收到求和短信后,回復(fù)“1”表示同意求和,回復(fù)“0”表示不同意求和。和棋不加分,勝一局加1分,負(fù)一局減一分。
系統(tǒng)采用如下的步驟第一步,用戶(hù)自己準(zhǔn)備好的棋具,擺放好已方和對(duì)方棋子。
第二步,用戶(hù)發(fā)送“3”到系統(tǒng),表示開(kāi)始中國(guó)象棋的游戲。
第三步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在第一位的用戶(hù)ID,如果一位用戶(hù)也沒(méi)有則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待下一位開(kāi)始中國(guó)象棋游戲的用戶(hù)。
第四步,系統(tǒng)為用戶(hù)匹配好對(duì)弈的用戶(hù)后,發(fā)來(lái)的他使用棋的顏色,并提醒用戶(hù)開(kāi)始布陣。比如,系統(tǒng)向用戶(hù)發(fā)送“您當(dāng)前使用的是白棋,請(qǐng)布陣。對(duì)家ID15626,呢稱(chēng)東方不敗,積分31,勝72負(fù)41和12”。
第五步,用戶(hù)如果坐在棋盤(pán)的紅棋方,則可以調(diào)轉(zhuǎn)一下棋盤(pán)的方向,將白棋置于自己的身邊。接下來(lái)調(diào)整自己棋子在自己布陣區(qū)的棋位,調(diào)整完畢后根據(jù)前述系統(tǒng)的規(guī)定,將布陣短信發(fā)給系統(tǒng)。
第六步,系統(tǒng)檢查用戶(hù)的布陣短信是否有錯(cuò)誤,如果有錯(cuò),發(fā)送描述錯(cuò)誤詳情的短信給用戶(hù),要求用戶(hù)據(jù)此將布陣短信改正再發(fā)回系統(tǒng)。如果雙方都沒(méi)有錯(cuò)誤,系統(tǒng)發(fā)送短信給持紅棋的用戶(hù),請(qǐng)求他走出自己的每一步棋。
第七步,持紅棋的用戶(hù),則在規(guī)定的時(shí)間內(nèi)下出自己的第一步棋,并根據(jù)對(duì)一步棋進(jìn)行編碼的規(guī)則,編輯這步棋的短信然后發(fā)送到系統(tǒng)。
第八步,系統(tǒng)對(duì)收到的短信進(jìn)行檢驗(yàn),首先判斷它是否違反了對(duì)一步棋的編碼規(guī)則,再判斷是否違反了游戲規(guī)則。如果有錯(cuò)誤,系統(tǒng)將向用戶(hù)提示錯(cuò)誤,在錯(cuò)誤中指明確切的錯(cuò)誤原因。給用戶(hù)錯(cuò)誤提示后,開(kāi)始等待用戶(hù)的下一條短信。如果沒(méi)有錯(cuò)誤,系統(tǒng)將按前述系統(tǒng)發(fā)送給用戶(hù)的短信格式重新編排。具體來(lái)講,系統(tǒng)將棋位中橫坐標(biāo)的數(shù)字替換成相應(yīng)的字母,然后在兩個(gè)棋位編碼之間加上“->”,如果這步棋沒(méi)有發(fā)生碰子情況,則就將此編碼發(fā)給這位用戶(hù)的對(duì)弈方。如果有碰子情況,1、走棋方的棋子死,則在前述編碼前再加這枚棋子的漢字名稱(chēng),末尾加上“碰死”字樣;2、走棋方的棋子生,對(duì)弈方的棋子死,則在前述編碼末尾加碰死的棋子的漢字名稱(chēng),再加上“死”字樣;3、走棋方與對(duì)弈方的棋子同歸于盡,則在前述編碼前再加這枚棋子的漢字名稱(chēng),末尾加上對(duì)弈方一同碰死的棋子的漢字名稱(chēng)。同時(shí),如果有碰子情況,可以在將這位用戶(hù)的走棋信息發(fā)送給他的對(duì)弈方后,也馬上將碰子的結(jié)果發(fā)回給這位用戶(hù)。可用“X棋YY死”的格式描述每一顆碰死的棋子,其中,X表示碰死的棋子的顏色,為“紅”或“白”,YY棋子的漢字名稱(chēng)。
第九步,下一位輪到走棋的用戶(hù)收到系統(tǒng)發(fā)來(lái)的上一位用戶(hù)的走棋信息的短信,根據(jù)短信內(nèi)容在自己的棋具上走出對(duì)弈方的那步棋,如果有碰子情況,雙方根據(jù)短信中的碰子信息,將相應(yīng)的棋子拿到。然后輪到走棋的用戶(hù)考慮自己的應(yīng)招,當(dāng)下出自己的一步棋后,根據(jù)編碼規(guī)則將這步棋編輯成短信后發(fā)送到系統(tǒng)。
第十步,依下棋秩序在各位用戶(hù)之間重復(fù)第八步與第九步直到游戲結(jié)束。
第十一步,結(jié)束游戲。當(dāng)其中的一位用戶(hù)出現(xiàn)下列情況后,系統(tǒng)為該用戶(hù)結(jié)束游戲1、該用戶(hù)發(fā)送“3”到系統(tǒng);2、根據(jù)軍棋游戲規(guī)則一方取勝;3、該用戶(hù)在兩分鐘內(nèi)還沒(méi)下出一步棋;4、該用戶(hù)二十分鐘的下棋時(shí)間用完;5、該用戶(hù)的編碼錯(cuò)誤的次數(shù)達(dá)到4次。
第十二步,系統(tǒng)為每位用戶(hù)根據(jù)游戲規(guī)則計(jì)算各自得分并登記,之后將得分情況發(fā)送給參于這次游戲的兩位用戶(hù),并提示用戶(hù)繼續(xù)游戲發(fā)送“1”,退出游戲發(fā)送“0”。
之后系統(tǒng)將在設(shè)定的時(shí)間內(nèi)比如兩分鐘內(nèi)等待剛才參于游戲的兩用戶(hù)開(kāi)始游戲的短信,如果兩位用戶(hù)在兩分鐘內(nèi)都表示重新開(kāi)始則繼續(xù)游戲,否則將只為確定開(kāi)始的用戶(hù)重新匹配新的用戶(hù)以開(kāi)始新一輪的軍棋游戲。
在“斗地主”撲克游戲中,可以采用如下的步驟、編碼規(guī)則。
對(duì)打出的一手牌,用戶(hù)發(fā)往系統(tǒng)的編碼采用數(shù)字式編碼方式,即不分花色,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,對(duì)“A、J、Q、K”在編碼中依次為“1、11、12、13”,黑白王牌和彩色王牌在編碼依次用“14、15”替換,對(duì)一手牌編碼時(shí),只須在短信中依次鍵入每張牌所對(duì)應(yīng)的數(shù)字,牌的編碼之間可加也可不加非數(shù)字分隔符。對(duì)打出的一手牌,系統(tǒng)發(fā)給用戶(hù)的短信中,也不分花色,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,黑白王牌和彩色王牌在編碼依次用英文字母“X、Y”替換,對(duì)于順子牌按從大到小的順序排列每張牌,對(duì)于三帶一或四帶二的牌,主牌在前,帶牌在后,主牌與帶牌之間加空格符作分隔;每手牌之前加用戶(hù)座次,用漢字“莊、上、下”表示,分別代表莊家、上家、下家;如果前一輪中某個(gè)用戶(hù)未出牌,則在用戶(hù)的座次后面加“0”表示。
系統(tǒng)發(fā)往用戶(hù)的當(dāng)前剩余牌的編碼,不分花色,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,黑白王牌和彩色王牌在編碼依次用英文字母“X、Y”替換,按從大到小的順序排列每張牌,即按“YX2AKQJ109876543”的順序,每張牌的編碼之間不加分隔符。
另外,系統(tǒng)還規(guī)定,在游戲時(shí)兩分鐘之內(nèi)必須出牌,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。
第一步,用戶(hù)發(fā)送“DDZ”到系統(tǒng),表示開(kāi)始“斗地主”游戲。
第二步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在前兩位的用戶(hù)ID,如果等待用戶(hù)數(shù)不到兩家,則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待足夠多家的用戶(hù)。匹配成功后,為各位用戶(hù)設(shè)定方位,即三人之間的上下家關(guān)系。然后系統(tǒng)為各位用戶(hù)發(fā)牌。發(fā)完牌后將每位用戶(hù)所得牌的情況,根據(jù)剩余牌的編碼規(guī)則將每位用戶(hù)分得牌的信息編輯成短信,連同方位信息一起發(fā)送它們給它們各自的用戶(hù)。
第三步,用戶(hù)根據(jù)自己當(dāng)前剩余牌(也就是第三步中的所得牌)的信息,決定自己是否叫分,叫幾分。不叫分則發(fā)送“0”至系統(tǒng),叫分則將所叫分?jǐn)?shù)的數(shù)字發(fā)送到系統(tǒng)。
第四步,系統(tǒng)將叫分達(dá)到最高分的用戶(hù)設(shè)為莊家,如果達(dá)到最高分的用戶(hù)有多位或者當(dāng)前最高分的用戶(hù)有多位,系統(tǒng)則再根據(jù)發(fā)送短信的次序,確定次序在先的為莊家。系統(tǒng)將超時(shí)未發(fā)送叫分信息的用戶(hù)的叫分設(shè)為沒(méi)叫分,如果都沒(méi)叫分,本局作廢,發(fā)送作廢短信到各位用戶(hù),等待各位用戶(hù)重新開(kāi)始。莊家確定后,系統(tǒng)將剩余還未發(fā)出的屬于莊家的三張牌按剩余牌的編碼方式編輯成短信后與所確定的莊家信息一起發(fā)給所有這局牌的非莊家的兩位用戶(hù),而莊家收到的是插入了這三張牌的所有當(dāng)前剩余牌的編碼,莊家憑此信息進(jìn)行出牌。
第五步,莊家將自己出的第一手牌按前述數(shù)字式方式編碼,也可以采用系統(tǒng)發(fā)往用戶(hù)的一手牌的方式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第六步,系統(tǒng)首先檢查編碼的格式是否正確,再檢查短信內(nèi)所包含的牌是不是這位用戶(hù)的,最后檢查所出的牌是否符合當(dāng)前游戲的游戲規(guī)則。如果沒(méi)錯(cuò)誤,進(jìn)入下一步。
第七步,系統(tǒng)將一位用戶(hù)出牌后,再次獲得發(fā)牌權(quán)這前,其它兩位用戶(hù)的出牌信息按系統(tǒng)發(fā)給用戶(hù)的編碼方式編碼,再加上他的當(dāng)前剩余牌的編碼,然后發(fā)送到這位用戶(hù)。
第八步,輪到發(fā)牌權(quán)的用戶(hù)根據(jù)其它用戶(hù)的出牌情況,及自己當(dāng)前剩余牌的信息,將自己要出的一手牌按數(shù)字式方式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第九步,在本局牌的各位用戶(hù)之間重復(fù)第六、七、八步。
第十步,當(dāng)出現(xiàn)下列情況時(shí),游戲結(jié)束1、任何一位用戶(hù)將自己的牌出完;2、一位用戶(hù)在規(guī)定的時(shí)間內(nèi)未出牌;3、一位用戶(hù)的編碼錯(cuò)誤達(dá)到4次。
在“升級(jí)”撲克游戲中,可以采用如下的步驟、編碼規(guī)則。
對(duì)打出的一手牌,用戶(hù)發(fā)往系統(tǒng)的編碼采用數(shù)字式編碼方式,將四種花色“黑桃、紅心、梅花、方塊”依次分別用“1、2、3、4”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,對(duì)“A、J、Q、K”在編碼中依次為“1、11、12、13”,黑白王牌和彩色王牌在編碼依次用“14、15”替換,對(duì)一手牌編碼時(shí),先在短信中鍵入這手牌中的一種花色編碼,再鍵入這個(gè)花色下每張牌的點(diǎn)數(shù),然后是第二種花色的編碼及這個(gè)花色下每張牌的點(diǎn)數(shù),直到輸入完這手牌中每一種花色和這個(gè)花色下的每張牌的點(diǎn)數(shù);黑白王牌和彩色王牌對(duì)應(yīng)的數(shù)字編碼,可以在任何花色的隊(duì)列中出現(xiàn)。每個(gè)花色隊(duì)列之間必須使用非數(shù)字符作為分隔符,點(diǎn)數(shù)之間不使用分隔符。對(duì)打出的一手牌,在系統(tǒng)發(fā)給用戶(hù)的短信中,將花色“黑桃、紅心、梅花、方塊”依次分別用“黑、紅、梅、方”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,黑白王牌和彩色王牌在編碼依次用英文字母“X、Y”替換,也和用戶(hù)發(fā)往系統(tǒng)的編碼一樣,先將一種花色和它下面的點(diǎn)數(shù)輸完再輸另種花色和它下面的點(diǎn)數(shù);黑白王牌和彩色王牌對(duì)應(yīng)的數(shù)字編碼,可以在任何花色的隊(duì)列中出現(xiàn);每手牌之前加用戶(hù)座次,用漢字“莊、上、對(duì)、下”表示,分別代表莊家、上家、下家、對(duì)家。
系統(tǒng)發(fā)往用戶(hù)的當(dāng)前剩余牌的編碼,將花色“黑桃、紅心、梅花、方塊”依次分別用“黑、紅、梅、方”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,黑白王牌和彩色王牌在編碼依次用英文字母“X、Y”替換;編碼時(shí),先對(duì)剔除所有“特殊”“將牌”之后的牌,如前一樣,按各個(gè)花色隊(duì)列將這些牌編碼,這里的“特殊”“將牌”指的是這些牌,如果莊家打“9”則點(diǎn)數(shù)為“9”與“2”的牌還有黑白王牌和彩色王牌都是“特殊”“將牌”;再對(duì)“特殊”“將牌”,如前一樣,按各個(gè)花色隊(duì)列將這些牌編碼。
另外,系統(tǒng)還規(guī)定,在游戲時(shí)兩分鐘之內(nèi)必須出牌,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。
第一步,用戶(hù)發(fā)送“SJ”到系統(tǒng),表示開(kāi)始“升級(jí)”游戲。
第二步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在前三位的用戶(hù)ID,如果等待用戶(hù)數(shù)不到三家,則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待足夠多家的用戶(hù)。匹配成功后,為各位用戶(hù)設(shè)定方位,即四人之間的上下家關(guān)系。然后系統(tǒng)為各位用戶(hù)發(fā)牌。發(fā)完牌后將每位用戶(hù)所得牌的情況,根據(jù)剩余牌的編碼規(guī)則將每位用戶(hù)分得牌的信息編輯成短信,連同方位信息一起發(fā)送它們給它們各自的用戶(hù)。
第三步,用戶(hù)根據(jù)自己當(dāng)前剩余牌的信息,決定“將牌”叫成什么花色,并發(fā)花色編碼到系統(tǒng)。用王牌叫花色則發(fā)送“5”至系統(tǒng)。
第四步,系統(tǒng)先剔除無(wú)效的花色編碼,再根據(jù)用戶(hù)所發(fā)的牌(也可稱(chēng)這為剩余牌)的情況,按“升級(jí)”游戲的規(guī)則,確定誰(shuí)的花色大,再根據(jù)收到短信的先后順序,確定這局牌“將牌”的花色。如果這一局是這四位用戶(hù)的第一局,則將確定“將牌”花色的用戶(hù)也設(shè)定為莊家。之后,系統(tǒng)將剩余還未發(fā)出的屬于莊家的八張牌加入當(dāng)前剩余牌一起編碼后發(fā)給莊家,莊家憑此信息扣底牌。
第五步,莊家將自己要扣的底牌按要出的一手牌的數(shù)字式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,之后發(fā)送給系統(tǒng),系統(tǒng)確認(rèn)沒(méi)有錯(cuò)誤后發(fā)送短信到用戶(hù)提示他出牌。
第六步,莊家將自己出的第一手牌按前述數(shù)字式方式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第七步,系統(tǒng)首先檢查編碼的格式是否正確,再檢查短信內(nèi)所包含的牌是不是這位用戶(hù)的,最后檢查所出的牌是否符合當(dāng)前游戲的游戲規(guī)則。如果沒(méi)錯(cuò)誤,進(jìn)入下一步。
第八步,系統(tǒng)將一位用戶(hù)出牌后,再次獲得發(fā)牌權(quán)之前,其它三位用戶(hù)的出牌信息按系統(tǒng)發(fā)給用戶(hù)的編碼方式編碼,然后發(fā)送到這位用戶(hù),每手牌的前后順序按出牌的先后順序排列,也就是即使這期間一位用戶(hù)出了兩手牌,如果它們之間有其它用戶(hù)出牌,那么這兩手牌會(huì)按先后順序隔開(kāi)。同時(shí)發(fā)送的還有這位用戶(hù)的當(dāng)前剩余牌的編碼,以及閑家當(dāng)前的撿分分?jǐn)?shù)。如果用戶(hù)不是一輪出牌中第一位出牌的用戶(hù),并且他當(dāng)前剩余牌有足夠多這一輪出牌花色的牌,則發(fā)向他的當(dāng)前剩余牌的編碼,可以不發(fā)送其它花色編碼的牌,只發(fā)送這一輪出牌花色的牌,比如,在一輪中第一位出牌的用戶(hù)出了一個(gè)“黑桃A”,并且第三位出牌的用戶(hù)還有兩張“黑桃”花色的牌,則這一輪輪到他出牌時(shí),系統(tǒng)可以只發(fā)送他當(dāng)前剩余牌中花色為“黑桃”的幾張牌的編碼。
第九步,輪到發(fā)牌權(quán)的用戶(hù)根據(jù)其它用戶(hù)的出牌情況,和自己當(dāng)前剩余牌的信息,將自己要出的一手牌按數(shù)字式方式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第十步,在本局牌的各位用戶(hù)之間重復(fù)第七、八、九步。
第十一步,當(dāng)出現(xiàn)下列情況時(shí),游戲結(jié)束1、所有用戶(hù)將自己的牌出完;2、一位用戶(hù)在規(guī)定的時(shí)間內(nèi)未出牌;3、一位用戶(hù)的編碼錯(cuò)誤達(dá)到4次。
如果閑家扣底成功,則重新統(tǒng)計(jì)撿分分?jǐn)?shù)。最后根據(jù)撿分分?jǐn)?shù)確定這局的輸贏。
在“三打哈”撲克游戲中,可以采用如下的步驟、編碼規(guī)則。
“三打哈”游戲是湖南地區(qū)流行的一種撲克玩法,類(lèi)似于“升級(jí)”,區(qū)別在于“三打哈”中莊家只一人,其它玩家都是閑家,莊家通過(guò)叫分取得資格,“將牌”花色由莊家定。
對(duì)打出的一手牌,用戶(hù)發(fā)往系統(tǒng)的編碼采用數(shù)字式編碼方式,將四種花色“黑桃、紅心、梅花、方塊”依次分別用“1、2、3、4”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,對(duì)“A、J、Q、K”在編碼中依次為“1、11、12、13”,黑白王牌和彩色王牌在編碼依次用“14、15”替換,對(duì)一手牌編碼時(shí),先在短信中鍵入這手牌中的一種花色編碼,再鍵入這個(gè)花色下每張牌的點(diǎn)數(shù),然后是第二種花色的編碼及這個(gè)花色下每張牌的點(diǎn)數(shù),直到輸入完這手牌中每一種花色和這個(gè)花色下的每張牌的點(diǎn)數(shù);黑白王牌和彩色王牌對(duì)應(yīng)的數(shù)字編碼,可以在任何花色的隊(duì)列中出現(xiàn)。每個(gè)花色隊(duì)列之間必須使用非數(shù)字符作為分隔符,點(diǎn)數(shù)之間不使用分隔符。對(duì)打出的一手牌,在系統(tǒng)發(fā)給用戶(hù)的短信中,將花色“黑桃、紅心、梅花、方塊”依次分別用“黑、紅、梅、方”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,黑白王牌和彩色王牌在編碼依次用英文字母“X、Y”替換,也和用戶(hù)發(fā)往系統(tǒng)的編碼一樣,先將一種花色和它下面的點(diǎn)數(shù)輸完再輸另種花色和它下面的點(diǎn)數(shù);黑白王牌和彩色王牌對(duì)應(yīng)的數(shù)字編碼,可以在任何花色的隊(duì)列中出現(xiàn);每手牌之前加用戶(hù)座次,用漢字“莊、上、對(duì)、下”表示,分別代表莊家、上家、下家、對(duì)家。
系統(tǒng)發(fā)往用戶(hù)的當(dāng)前剩余牌的編碼,將花色“黑桃、紅心、梅花、方塊”依次分別用“黑、紅、梅、方”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,黑白王牌和彩色王牌在編碼依次用英文字母“X、Y”替換;編碼時(shí),先對(duì)剔除所有“特殊”“將牌”之后的牌,如前一樣,按各個(gè)花色隊(duì)列將這些牌編碼,這里的“特殊”“將牌”指的是這些牌,如果莊家打“9”則點(diǎn)數(shù)為“9”與“2”的牌還有黑白王牌和彩色王牌都是“特殊”“將牌”;再對(duì)“特殊”“將牌”,如前一樣,按各個(gè)花色隊(duì)列將這些牌編碼。
另外,系統(tǒng)還規(guī)定,在游戲時(shí)兩分鐘之內(nèi)必須出牌,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。莊家在出牌過(guò)程中可以發(fā)送“3”到系統(tǒng)認(rèn)負(fù),閑家發(fā)送“1”表示同意莊家認(rèn)負(fù),發(fā)送“0”表示不同意莊家認(rèn)負(fù)。
第一步,用戶(hù)發(fā)送“SDH”到系統(tǒng),表示開(kāi)始“三打哈”游戲。
第二步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在前三位的用戶(hù)ID,如果等待用戶(hù)數(shù)不到三家,則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待足夠多家的用戶(hù)。匹配成功后,為各位用戶(hù)設(shè)定方位,即四人之間的上下家關(guān)系。然后系統(tǒng)為各位用戶(hù)發(fā)牌。發(fā)完牌后將每位用戶(hù)所得牌的情況,根據(jù)剩余牌的編碼規(guī)則將每位用戶(hù)分得牌的信息編輯成短信,連同方位信息一起發(fā)送它們給它們各自的用戶(hù)。
第三步,用戶(hù)根據(jù)自己當(dāng)前剩余牌的信息,將所叫分?jǐn)?shù)發(fā)送到系統(tǒng)。
第四步,系統(tǒng)將第一輪的叫分情況發(fā)送到每一位用戶(hù),并提示各位用戶(hù)繼續(xù)叫分,每位用戶(hù)同時(shí)還將收到各自當(dāng)前剩余牌編碼。
第五步,重復(fù)第三、四步,直到后一輪中只出現(xiàn)一個(gè)最低分,或者前后兩輪的最低分都一樣,這時(shí),設(shè)定莊家為后輪中唯一最低分的用戶(hù)或者后一輪中先被系統(tǒng)發(fā)送短信的最低分用戶(hù)為莊家。
第六步,系統(tǒng)將莊家的方位信息告訴其它三位用戶(hù),并用短信通知莊家決定“將牌”的花色。
第七步,莊家發(fā)花色編碼到系統(tǒng)。“無(wú)花色”則發(fā)送“5”至系統(tǒng)。
第八步,系統(tǒng)將剩余還未發(fā)出的屬于莊家的八張牌插入當(dāng)前剩余牌一起編碼后發(fā)給莊家,莊家憑此信息扣底牌。
第九步,莊家將自己要扣的底牌按要出的一手牌的數(shù)字式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,之后發(fā)送給系統(tǒng),系統(tǒng)確認(rèn)沒(méi)有錯(cuò)誤后發(fā)送短信到用戶(hù)提示他出牌。
第十步,莊家將自己出的第一手牌按前述數(shù)字式方式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第十一步,系統(tǒng)首先檢查編碼的格式是否正確,再檢查短信內(nèi)所包含的牌是不是這位用戶(hù)的,最后檢查所出的牌是否符合當(dāng)前游戲的游戲規(guī)則。如果沒(méi)錯(cuò)誤,進(jìn)入下一步。
第十二步,系統(tǒng)將一位用戶(hù)出牌后,再次獲得發(fā)牌權(quán)這前,其它三位用戶(hù)的出牌信息按系統(tǒng)發(fā)給用戶(hù)的編碼方式編碼,然后發(fā)送到這位用戶(hù),每手牌的前后順序按出牌的先后順序排列,也就是即使這期間一位用戶(hù)出了兩手牌,如果它們之間有其它用戶(hù)出牌,那么這兩手牌會(huì)按先后順序隔開(kāi)。同時(shí)發(fā)送的還有這位用戶(hù)的當(dāng)前剩余牌的編碼,以及閑家當(dāng)前的撿分分?jǐn)?shù)。如果用戶(hù)不是一輪出牌中第一位出牌的用戶(hù),并且他當(dāng)前剩余牌有足夠多,這一輪出牌花色的牌,則發(fā)向他的當(dāng)前剩余牌的編碼,可以不發(fā)送其它花色編碼的牌,只發(fā)送這一輪出牌花色的牌,比如,在一輪中第一位出牌的用戶(hù)出了一個(gè)“黑桃A”,并且第三位出牌的用戶(hù)還有兩張“黑桃”花色的牌,則這一輪輪到他出牌時(shí),系統(tǒng)可以只發(fā)送他當(dāng)前剩余牌中花色為“黑桃”的幾張牌的編碼。
第十三步,輪到發(fā)牌權(quán)的用戶(hù)根據(jù)其它用戶(hù)的出牌情況,和自己當(dāng)前剩余牌的信息,將自己要出的一手牌按數(shù)字式方式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第十四步,在本局牌的各位用戶(hù)之間重復(fù)第十一、十二、十三步。
第十五步,當(dāng)出現(xiàn)下列情況時(shí),游戲結(jié)束1、所有用戶(hù)將自己的牌出完;2、一位用戶(hù)在規(guī)定的時(shí)間內(nèi)未出牌;3、一位用戶(hù)的編碼錯(cuò)誤達(dá)到4次;4、莊家認(rèn)輸,閑家表示同意。
如果閑家扣底成功,則重新統(tǒng)計(jì)撿分分?jǐn)?shù)。最后根據(jù)撿分分?jǐn)?shù)確定這局的輸贏,再根據(jù)輸贏情況為這局的游戲各方累計(jì)積分。
在“拱豬”撲克游戲中,可以采用如下的步驟、編碼規(guī)則。
對(duì)打出的一手牌,用戶(hù)發(fā)往系統(tǒng)的編碼采用數(shù)字式編碼方式,將四種花色“黑桃、紅心、梅花、方塊”依次分別用“1、2、3、4”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,對(duì)“A、J、Q、K”在編碼中依次為“1、11、12、13”,對(duì)一手牌編碼時(shí),先在短信中鍵入這手牌中的一種花色編碼,再鍵入這個(gè)花色下每張牌的點(diǎn)數(shù),然后是第二種花色的編碼及這個(gè)花色下每張牌的點(diǎn)數(shù),直到輸入完這手牌中每一種花色和這個(gè)花色下的每張牌的點(diǎn)數(shù)。每個(gè)花色隊(duì)列之間必須使用非數(shù)字符作為分隔符,點(diǎn)數(shù)之間不使用分隔符。對(duì)打出的一手牌,在系統(tǒng)發(fā)給用戶(hù)的短信中,將花色“黑桃、紅心、梅花、方塊”依次分別用“黑、紅、梅、方”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”,也和用戶(hù)發(fā)往系統(tǒng)的編碼一樣,先將一種花色和它下面的點(diǎn)數(shù)輸完再輸另種花色和它下面的點(diǎn)數(shù);每手牌之前加用戶(hù)座次,用漢字“上、對(duì)、下”表示,分別代表上家、下家、對(duì)家。
系統(tǒng)發(fā)往用戶(hù)的當(dāng)前剩余牌的編碼,將花色“黑桃、紅心、梅花、方塊”依次分別用“黑、紅、梅、方”代替,保持點(diǎn)數(shù)為“2、3、4、5、6、7、8、9、10”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,“A、J、Q、K”在編碼中依然為“A、J、Q、K”;編碼時(shí),如前一樣,按各個(gè)花色隊(duì)列將這些牌編碼。
另外,系統(tǒng)還規(guī)定,在游戲時(shí)兩分鐘之內(nèi)必須出牌,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。
第一步,用戶(hù)發(fā)送“GZ”到系統(tǒng),表示開(kāi)始“拱豬”游戲。
第二步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在前三位的用戶(hù)ID,如果等待用戶(hù)數(shù)不到三家,則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待足夠多家的用戶(hù)。匹配成功后,為各位用戶(hù)設(shè)定方位,即四人之間的上下家關(guān)系。然后系統(tǒng)為各位用戶(hù)發(fā)牌。發(fā)完牌后將每位用戶(hù)所得牌的情況,根據(jù)剩余牌的編碼規(guī)則將每位用戶(hù)分得牌的信息編輯成短信,連同方位信息一起發(fā)送它們給它們各自的用戶(hù)。
第三步,用戶(hù)根據(jù)自己當(dāng)前剩余牌的信息,決定自己是否亮牌,然后將要亮牌的編碼按照數(shù)字式方式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼后發(fā)送到系統(tǒng)。
第四步,系統(tǒng)將規(guī)定時(shí)間內(nèi)收到的亮牌的信息編輯成短信,然后發(fā)送給所有用戶(hù),并提示按游戲規(guī)則先出牌的用戶(hù)出牌。
第五步,第一位出牌的用戶(hù)將自己出的第一手牌按前述數(shù)字式方式編碼,或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第六步,系統(tǒng)首先檢查編碼的格式是否正確,再檢查短信內(nèi)所包含的牌是不是這位用戶(hù)的,最后檢查所出的牌是否符合當(dāng)前游戲的游戲規(guī)則。如果沒(méi)錯(cuò)誤,進(jìn)入下一步。
第七步,系統(tǒng)將一位用戶(hù)出牌后,再次獲得發(fā)牌權(quán)之前,其它三位用戶(hù)的出牌信息按系統(tǒng)發(fā)給用戶(hù)的編碼方式編碼,然后發(fā)送到這位用戶(hù),每手牌的前后順序按出牌的先后順序排列,也就是即使這期間一位用戶(hù)出了兩手牌,如果它們之間有其它用戶(hù)出牌,那么這兩手牌會(huì)按先后順序隔開(kāi)。同時(shí)發(fā)送的還有這位用戶(hù)的當(dāng)前剩余牌的編碼,以及四位用戶(hù)獲得分牌情況。系統(tǒng)在描述用戶(hù)所獲分牌情況時(shí),獲得的分牌按當(dāng)前剩余牌的規(guī)則進(jìn)行編碼,前面再加上用戶(hù)名稱(chēng)或座次。
第八步,輪到發(fā)牌權(quán)的用戶(hù)根據(jù)其它用戶(hù)的出牌情況,和自己當(dāng)前剩余牌的信息,將自己要出的一手牌按數(shù)字式方式編碼,編輯成短信后,發(fā)送到系統(tǒng)。
第九步,在本局牌的各位用戶(hù)之間重復(fù)第六、七、八步。
第十步,當(dāng)出現(xiàn)下列情況時(shí),游戲結(jié)束1、所有用戶(hù)將自己的牌出完;2、一位用戶(hù)在規(guī)定的時(shí)間內(nèi)未出牌;3、一位用戶(hù)的編碼錯(cuò)誤達(dá)到4次。
在“麻將”游戲中,可以采用如下的步驟、編碼規(guī)則。
對(duì)打出的一手牌,用戶(hù)發(fā)往系統(tǒng)的編碼采用數(shù)字式編碼方式,將四種花色“筒、條、萬(wàn)、風(fēng)”依次分別用“0、1、2、3”代替,前三種花色點(diǎn)數(shù)為“1、2、3、4、5、6、7、8、9”的牌編碼依然為對(duì)應(yīng)的阿拉伯?dāng)?shù)字,對(duì)“東、西、南、北、中、發(fā)、白”設(shè)定它們的點(diǎn)數(shù)在編碼中依次為“6、4、8、2、5、7、9”,因?yàn)榇虺鰜?lái)的每一手牌就是一張牌,所以編碼時(shí),先在短信中鍵入這張牌的點(diǎn)數(shù)編碼,再輸入這張牌的花色編碼。在系統(tǒng)發(fā)往用戶(hù)的短信中,使用下述的方式對(duì)牌編碼將“萬(wàn)”花色的九張牌從小到大依次用小寫(xiě)漢字?jǐn)?shù)字“一、二、三、四、五、六、七、八、九”表示,將“條”花色的九張牌從小到大依次用阿拉伯?dāng)?shù)字“1、2、3、4、5、6、7、8、9”表示,將“筒”花色的九張牌從小到大依次用大寫(xiě)漢字?jǐn)?shù)字“壹、貳、叁、肆、伍、陸、柒、捌、玖”表示,將“東、西、南、北、中、發(fā)、白”依然保持為“東、西、南、北、中、發(fā)、白”;當(dāng)系統(tǒng)將出牌權(quán)切換到一位用戶(hù)時(shí),系統(tǒng)將包含下列信息的編碼發(fā)送到用戶(hù)1、用戶(hù)當(dāng)前的剩余牌,包括其它用戶(hù)看不見(jiàn)的暗牌,和經(jīng)過(guò)“吃碰桿”后其它用戶(hù)可以看見(jiàn)的明牌;2、系統(tǒng)發(fā)給用戶(hù)的牌,或者可以通過(guò)“吃碰桿”獲得的牌;3、當(dāng)前這位用戶(hù)還未看到的牌的編碼和數(shù)量;4、從上一次出牌到本次再次獲得出牌權(quán)之間,其它用戶(hù)所打的經(jīng)過(guò)“吃碰桿”的牌,和沒(méi)有被“吃碰桿”的牌;上述這些系統(tǒng)發(fā)給用戶(hù)的信息總稱(chēng)為當(dāng)前牌信息。用戶(hù)的暗牌先分花色,每種花色內(nèi)再按點(diǎn)數(shù)從小到大排列。用戶(hù)的明牌按“吃碰桿”的順序?qū)⒚拷M牌列出,每組牌內(nèi)再按點(diǎn)數(shù)從小到大排列,所有的暗牌用圓括號(hào)“()”括起來(lái),以和暗牌區(qū)分。用戶(hù)可以“吃碰桿”的牌和系統(tǒng)發(fā)給用戶(hù)的牌,系統(tǒng)將它視為一張暗牌,在編碼時(shí)按花色和點(diǎn)數(shù)插入暗牌隊(duì)列,并將它用方括號(hào)括起來(lái),將它從暗牌中區(qū)分出來(lái),并且在右方括號(hào)前加上這張牌這位用戶(hù)還未看到的張數(shù)的阿拉伯?dāng)?shù)字。比如,“(789)柒柒柒123三[三0]四五東”,表示用戶(hù)“吃”了一組“789”的牌,當(dāng)前有暗牌“柒柒柒123三四五東”,系統(tǒng)發(fā)給了用戶(hù)一張“三”,這張“三”這位用戶(hù)還未看到的數(shù)量只有0張了。用戶(hù)當(dāng)前未看見(jiàn)的牌的編碼,可以用數(shù)量詞后跟牌的編碼來(lái)實(shí)現(xiàn),先由“4”開(kāi)頭,后跟所有這位用戶(hù)還未看見(jiàn)的牌的數(shù)量為4的牌的編碼,再以3開(kāi)頭加入剩余數(shù)量為3的牌的編碼,依次到數(shù)量1,每個(gè)數(shù)量隊(duì)列用分隔符隔開(kāi),比如“4.二七15壹玖;3.一3捌;2.三6伍;1.九”。當(dāng)然在剛開(kāi)始打牌的時(shí)候,幾乎每張牌的編碼都會(huì)出現(xiàn),這時(shí)可以在前幾輪對(duì)看到的牌進(jìn)行編碼,后面幾輪再對(duì)未看到的牌進(jìn)行編碼。對(duì)這位用戶(hù)從上次出牌到這次再獲得發(fā)牌權(quán)期間內(nèi)其它用戶(hù)出牌的編碼前面省略用戶(hù)編碼,對(duì)于沒(méi)有“吃碰桿”的牌,即打出來(lái)的“廢牌”,按先后順序列出,對(duì)“吃碰桿”的牌先按“吃碰桿”這三種動(dòng)作的順序,動(dòng)作內(nèi)再按先后順序列出牌的編碼,其中每隊(duì)牌的編碼前面加上這對(duì)牌的動(dòng)作編碼,并且之間進(jìn)行分隔。比如某玩家從上一輪打牌到這一輪開(kāi)始打牌,下家打了一個(gè)“二”,對(duì)家吃了“二”擺出來(lái)了“一二三”的牌并打了“四”,上家是莊家打了一個(gè)“6”,被對(duì)家碰了并打了“7”,之后上家又打了一個(gè)“東”,這時(shí),上面的信息的編碼可以是“吃二;碰6;打四7東”。
另外,系統(tǒng)還規(guī)定,在游戲時(shí)兩分鐘之內(nèi)必須發(fā)送打牌相關(guān)指令,編碼錯(cuò)誤的次數(shù)不能超過(guò)3次,否則判負(fù)。
第一步,用戶(hù)發(fā)送“MJ”到系統(tǒng),表示開(kāi)始“麻將”游戲。
第二步,系統(tǒng)在等待開(kāi)始游戲的用戶(hù)ID隊(duì)列中,提取順序在前三位的用戶(hù)ID,如果等待用戶(hù)數(shù)不到三家,則將該用戶(hù)ID寫(xiě)入該隊(duì)列,等待足夠多家的用戶(hù)。匹配成功后,為各位用戶(hù)設(shè)定方位,即四人之間的上下家關(guān)系,并確定莊家。然后系統(tǒng)為各位用戶(hù)發(fā)牌。發(fā)完牌后將每位用戶(hù)所得牌的情況,根據(jù)剩余牌的編碼規(guī)則將每位用戶(hù)分得牌的信息編輯成短信,連同方位信息、莊家信息一起發(fā)送它們給它們各自的用戶(hù),其中莊家獲得十四張牌,其它莊家十三張牌。
第三步,第一位出牌的用戶(hù)根據(jù)當(dāng)前牌信息,可以“桿”牌,“胡”牌,也可以打出一張牌。如果“桿”牌,則發(fā)送“3”及要“桿”的牌的編碼發(fā)送到系統(tǒng),系統(tǒng)隨后發(fā)送加入了新發(fā)的牌的當(dāng)前牌信息的編碼給用戶(hù),用戶(hù)根據(jù)新的當(dāng)前牌信息重新出牌。如果“胡”牌,則發(fā)送“4”到系統(tǒng)。如果要打出一張牌,則將要打的牌按阿拉伯?dāng)?shù)字式或按系統(tǒng)發(fā)往用戶(hù)的編碼格式編碼后,發(fā)送到系統(tǒng)。
第四步,系統(tǒng)首先檢查編碼的格式是否正確,如果用戶(hù)要求“胡”牌,則根據(jù)麻將游戲規(guī)則檢查用戶(hù)是否能“胡”牌,如果確實(shí)能“胡”牌,則本局游戲結(jié)束。如是打出一張牌,再檢查短信內(nèi)所包含的牌是不是這位用戶(hù)的暗牌,最后檢查所出的牌是否符合當(dāng)前游戲的游戲規(guī)則。如果沒(méi)錯(cuò)誤,進(jìn)入下一步。
第五步,如果有其它用戶(hù)根據(jù)麻將游戲規(guī)則可以“吃碰桿”這張牌,則系統(tǒng)按游戲規(guī)則中的“吃碰桿”的順序選擇順序排前的用戶(hù),將這位用戶(hù)的當(dāng)前牌信息發(fā)送給這位用戶(hù),并提示用戶(hù)是否“吃碰桿”這張牌,用戶(hù)如果“吃”張牌,發(fā)送“1”后隨“吃”后要打的牌的編碼,如果“碰”這張牌,則發(fā)送“2”后隨“碰”后要打的牌的編碼,如果“桿”這張牌則發(fā)送“3”及要“桿”的牌的編碼發(fā)送到系統(tǒng),系統(tǒng)隨后發(fā)送加入了新發(fā)的牌的當(dāng)前牌信息的編碼給用戶(hù),用戶(hù)根據(jù)新的當(dāng)前牌信息重新出牌。用戶(hù)也可以發(fā)送“0”到系統(tǒng)表示不“吃碰桿”,則系統(tǒng)按游戲規(guī)則中的“吃碰桿”的順序選擇順序隨后的用戶(hù),將這位用戶(hù)的當(dāng)前牌信息發(fā)送給這位用戶(hù),并提示用戶(hù)是否“吃碰桿”這張牌。對(duì)于“吃碰桿”后,用戶(hù)新打出的牌,系統(tǒng)再按本步驟的方法再執(zhí)行一次。直到根據(jù)麻將游戲規(guī)則再也沒(méi)有用戶(hù)能夠“吃碰桿”,然后進(jìn)入下一步。在用戶(hù)發(fā)往系統(tǒng)短信中牌的編碼可以采用數(shù)字式編碼方式,也可以采用系統(tǒng)發(fā)往用戶(hù)的編碼格式第六步,系統(tǒng)為獲得出牌權(quán)的用戶(hù)發(fā)一張牌,然后將這位用戶(hù)的當(dāng)前牌信息發(fā)送給用戶(hù),用戶(hù)這時(shí)可以“桿”牌,“胡”牌,也可以打出一張牌。如果“桿”牌,則發(fā)送“3”及要“桿”的牌的編碼發(fā)送到系統(tǒng),系統(tǒng)隨后發(fā)送加入了新發(fā)的牌的當(dāng)前牌信息的編碼給用戶(hù),用戶(hù)根據(jù)新的當(dāng)前牌信息重新出牌。如果“胡”牌,則發(fā)送“4”到系統(tǒng)。如果要打出一張牌,則將要打的牌的編碼發(fā)送到系統(tǒng)。在用戶(hù)發(fā)往系統(tǒng)短信中牌的編碼可以采用數(shù)字式編碼方式,也可以采用系統(tǒng)發(fā)往用戶(hù)的編碼格式第七步,在本局牌的各位用戶(hù)之間重復(fù)第四、五、六步。
第八步,當(dāng)出現(xiàn)下列情況時(shí),游戲結(jié)束1、一位用戶(hù)的“胡”牌要求通過(guò)了系統(tǒng)的檢查;2、一位用戶(hù)在規(guī)定的時(shí)間內(nèi)未出牌;3、一位用戶(hù)的編碼錯(cuò)誤達(dá)到4次;4、所有的未發(fā)牌都發(fā)完了,并且沒(méi)有用戶(hù)提出“胡”牌請(qǐng)求;5、一位用戶(hù)的“胡”牌要求沒(méi)通過(guò)系統(tǒng)的檢查。
在字牌游戲中,系統(tǒng)發(fā)往用戶(hù)的短信中,依然使用“一”至“十”代替牌“一”至“十”,使用“壹”至“拾”代替牌“壹”至“拾”,用戶(hù)發(fā)往系統(tǒng)的短信中依然可以使用上述每張牌的編碼方式,或者將牌“一”至“十”花色編碼定為“1”,將牌“壹”至“拾”花色編碼定為“2”,在輸入一張牌編碼時(shí)先輸入花色編碼,再輸入這張牌漢字?jǐn)?shù)字所對(duì)應(yīng)的阿拉伯?dāng)?shù)字。
權(quán)利要求
1.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,由通信終端、通信網(wǎng)絡(luò)、短信網(wǎng)關(guān)、應(yīng)用服務(wù)器組成,短信網(wǎng)關(guān)與應(yīng)用服務(wù)器合稱(chēng)為系統(tǒng),其特征在于,用戶(hù)與系統(tǒng)之間使用短信進(jìn)行通訊,至少包括以下幾個(gè)步驟A、進(jìn)行棋類(lèi)游戲的用戶(hù)準(zhǔn)備好棋具;B、開(kāi)始步驟,用戶(hù)必須發(fā)送系統(tǒng)指定的表示開(kāi)始的短信到系統(tǒng);C、系統(tǒng)為表示開(kāi)始游戲的用戶(hù)匹配足夠多位的用戶(hù)組成游戲的各方;D、系統(tǒng)為進(jìn)行牌類(lèi)游戲的用戶(hù)發(fā)牌,將各位用戶(hù)分得的牌編碼后發(fā)送到相應(yīng)的用戶(hù);E、用戶(hù)將自己的走棋信息或出牌信息編碼后發(fā)送到系統(tǒng);F、系統(tǒng)對(duì)收到的用戶(hù)的走棋或出牌短信進(jìn)行檢查,確定是否有編碼錯(cuò)誤或違反了游戲規(guī)則;G、如果用戶(hù)的走棋或出牌短信有編碼錯(cuò)誤或違反了游戲規(guī)則,系統(tǒng)將提示用戶(hù)錯(cuò)誤,要求用戶(hù)重新發(fā)送;H、如果用戶(hù)的走棋或出牌短信沒(méi)有編碼錯(cuò)誤和不違反游戲規(guī)則,系統(tǒng)將它再轉(zhuǎn)發(fā)給本局游戲中其他幾位用戶(hù);I、在各位用戶(hù)之間重復(fù)E、F、G、H直到游戲結(jié)束;其特征還在于,走棋短信的內(nèi)容包括所走一步棋子的原棋位信息和新棋位信息,或者包括棋子信息和新棋位信息。
2.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,其特征在于,包含權(quán)利要求1中方法的所有特征,其特征還在于,系統(tǒng)發(fā)往用戶(hù)的出牌信息還包括接受出牌信息用戶(hù)的當(dāng)前剩余牌信息。
3.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,其特征在于,包含權(quán)利要求1中方法的所有特征,其特征還在于,用戶(hù)發(fā)往系統(tǒng)的走棋信息可以采用全阿拉伯?dāng)?shù)字方式編碼。全阿拉伯?dāng)?shù)字編碼方式的特征在于,一步棋編碼采用下面的編碼方式“AB”、“BA”、“CB”或“BC”式,其中A代表原棋位這個(gè)元素的編碼,B代表新棋位這個(gè)元素的編碼,C代表棋子這個(gè)元素的編碼。棋位元素的編碼又由分區(qū)號(hào)這個(gè)元素和在這個(gè)分區(qū)內(nèi)的棋位編碼這個(gè)元素組成,當(dāng)沒(méi)有分區(qū)時(shí),分區(qū)號(hào)元素去掉。分區(qū)內(nèi)的棋位這個(gè)元素編碼又由橫坐標(biāo)元素和縱坐標(biāo)元素組成,或者就是一個(gè)整數(shù)組成。以上的每個(gè)元素之間可以輸入非數(shù)字符作為分隔符,也可以不輸入。系統(tǒng)可以指定包含以上各格式中的各元素但元素順序不同的編碼方式;當(dāng)以上元素中,如果中間有兩個(gè)元素的編碼的最大數(shù)值都為十位數(shù)組成的,也就都是由多于一個(gè)阿拉伯?dāng)?shù)字的多個(gè)阿拉伯?dāng)?shù)字組成,則在不同元素的編碼之間加上任一非數(shù)字符號(hào)作為分隔符,或者將這種最大值為多位數(shù)的元素的編碼中的位數(shù)小于最大值位數(shù)的編碼的前面補(bǔ)上足夠多的“0”,使得組成它的編碼的數(shù)字的個(gè)數(shù)等于最大值位數(shù)。
4.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,其特征在于,包含權(quán)利要求1中方法的所有特征,其特征還在于,系統(tǒng)將用戶(hù)發(fā)來(lái)的走棋信息進(jìn)行處理后再發(fā)送給其他用戶(hù)。處理方法的特征在于,處理可以包括以下一個(gè)或幾個(gè)方法A、如果當(dāng)前的棋類(lèi)游戲由多于兩個(gè)玩家的用戶(hù)組成,則在數(shù)字式編碼前加上玩家的名稱(chēng)或編碼;B、將數(shù)字式編碼中的各元素用非數(shù)字符與非英文字母符作為分隔符進(jìn)行分隔;C、將編碼中部分元素的編碼替換成英文字母;D、加上這步棋的棋子名稱(chēng)或編碼;E、加上這步棋的吃子情況或?qū)⒁宰拥那闆r。
5.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,其特征在于,包含權(quán)利要求1中方法的所有特征,其特征還在于,在撲克游戲中,在用戶(hù)發(fā)往系統(tǒng)的短信,可以對(duì)撲克游戲中的各張牌的點(diǎn)數(shù)作如下替換,保持點(diǎn)數(shù)“2、3、4、5、6、7、8、9、10”的編碼依然為“2、3、4、5、6、7、8、9、10”,“A、J、Q、K”在編碼中對(duì)應(yīng)為“1、11、12、13”或者保持“A、J、Q、K”不變,黑白王牌和彩色王牌在編碼中對(duì)應(yīng)“14、15”或者使用兩個(gè)英文字母代替?!昂谔?、紅心、梅花、方塊”也用四個(gè)阿拉伯?dāng)?shù)字“1、2、3、4”依次代替或者使用漢字“黑、紅、梅、方”。在撲克游戲打出的每手牌中,先將一種花色的牌輸入完,再輸入另一種花色的牌;每一種花色的牌,先輸入花色的數(shù)字編碼再輸入該花色下每張牌點(diǎn)數(shù)的數(shù)字編碼;黑白王牌和彩色王牌可以加入整手牌中的任何一種花色隊(duì)列的編碼中,如果整手牌只出現(xiàn)黑白王牌和彩色王牌,可以將它們的花色編碼設(shè)定為任一花色編碼,在輸入花色編碼后再輸入它們的點(diǎn)數(shù);如果具體牌類(lèi)游戲中花色不參加比較大小,則在上述的編碼中花色編碼一律去掉,所有的牌按一種花色規(guī)則進(jìn)行編碼;還可以采用數(shù)量詞后跟牌的點(diǎn)數(shù)的方式化簡(jiǎn)化一手牌的輸入。也就是,如果一手牌在同一花色的編碼隊(duì)列中出現(xiàn)了2次及兩次以上,可以采用先輸入一個(gè)表示出現(xiàn)次數(shù)的阿拉伯?dāng)?shù)字再輸入這張牌的點(diǎn)數(shù)的方式簡(jiǎn)化編碼。為了讓系統(tǒng)在對(duì)該編碼解析時(shí)使用比較簡(jiǎn)單的算法,可以要求在每個(gè)表次數(shù)的數(shù)字前加上分隔符。如果在手機(jī)的數(shù)字輸入法中,輸入非數(shù)字分隔符不方便,可以用兩個(gè)“0”作分隔符。在麻將游戲中,將四種花色“筒、條、萬(wàn)、風(fēng)”用四個(gè)阿拉伯?dāng)?shù)字代替,可以為“0、1、2、3”,用“0”象形“筒”牌上的刻紋特征,用“1”象形“條”牌上的刻紋特征,按順序用“2、3”表示“萬(wàn)、風(fēng)”?!巴?、條、萬(wàn)”各張牌的點(diǎn)數(shù)分別用“1”至“9”代替,“東西南北中發(fā)白”,也用7人數(shù)字代替,可用“6、4、8、2、5”替換“東、西、南、北、中”,這些數(shù)字在手機(jī)按鍵上的方位對(duì)應(yīng)“東西南北中”,“發(fā)、白”可以相應(yīng)對(duì)應(yīng)“7、9”。因?yàn)榇虺鰜?lái)的一手牌就是一張牌,所以,對(duì)一張牌的編碼可以根據(jù)平時(shí)玩麻將的習(xí)慣,點(diǎn)數(shù)編碼在前,花色編碼在后。對(duì)于“吃、碰、桿”的動(dòng)作編碼,可以用“1、2、3”依次代替,如果不進(jìn)行“吃碰桿”的動(dòng)作,可以直接發(fā)送“0”至系統(tǒng),對(duì)于“吃、碰”的動(dòng)作,可以發(fā)送“吃、碰”動(dòng)作編碼后加要出的牌的編碼給系統(tǒng);如果要“桿”牌,直接發(fā)送動(dòng)作編碼給系統(tǒng),系統(tǒng)則將新發(fā)牌及用戶(hù)的當(dāng)前的剩余牌再一次發(fā)給用戶(hù)。在字牌游戲中,系統(tǒng)發(fā)往用戶(hù)的短信中,依然使用“一”至“十”代替牌“一”至“十”,使用“壹”至“拾”代替牌“壹”至“拾”,用戶(hù)發(fā)往系統(tǒng)的短信中依然可以使用上述每張牌的編碼方式,或者將牌“一”至“十”花色編碼定為“1”,將牌“壹”至“拾”花色編碼定為“2”,在輸入一張牌編碼時(shí)先輸入花色編碼,再輸入這張牌漢字?jǐn)?shù)字所對(duì)應(yīng)的阿拉伯?dāng)?shù)字。
6.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,其特征在于,包含權(quán)利要求1中方法的所有特征,其特征還在于,在撲克游戲中,系統(tǒng)將用戶(hù)發(fā)來(lái)的編碼處理成非全數(shù)字編碼。對(duì)于撲克游戲,這種處理可以包括以下幾種情況A、為不同點(diǎn)數(shù)的牌之間加上非數(shù)字符與非英文字母符作分隔符進(jìn)行分隔;B、將編碼中代替點(diǎn)數(shù)“A、J、Q、K”的數(shù)字,替換回“A、J、Q、K”,兩張王牌也用兩個(gè)非“AJQK”的字母代替;C、將代替花色的數(shù)字替換成相對(duì)應(yīng)的漢字或者英文字母;D、加上每手牌的用戶(hù)編碼,采用漢字作為用戶(hù)編碼。
7.一種使用短信進(jìn)行棋類(lèi)和牌類(lèi)游戲的方法,其特征在于,包含權(quán)利要求1、2中方法的所有特征,其特征還在于,在撲克游戲中,發(fā)送回用戶(hù)的當(dāng)前剩余牌的信息,將各張牌先分花色再按點(diǎn)數(shù)的一定大小順序排列,點(diǎn)數(shù)之間不加分隔符,不同花色隊(duì)列之間可加非數(shù)字符與非英文字母符作分隔符進(jìn)行分隔。如果在具體的牌類(lèi)游戲中比較牌的大小不需要花色,則不分花色,所有剩余牌只按點(diǎn)數(shù)一定的大小順序排列,點(diǎn)數(shù)之間不加分隔符。在麻將游戲中,發(fā)送回用戶(hù)的當(dāng)前剩余牌的信息,用以下的編碼方式替換每一張牌。將阿拉伯?dāng)?shù)字“1”至“9”、小寫(xiě)漢字“一”至“九”、大寫(xiě)漢字“壹”至“玖”,分別代表“條萬(wàn)筒”三種花色的9個(gè)點(diǎn)數(shù)牌,使用漢字“東西南北中發(fā)”分別代表“東西南北中發(fā)”六張牌,使用“白”代替“白板”這張牌。在上述中,也可以用一些其它表示順序的字符組合來(lái)替換不同花色的九張牌,這些組合包括大寫(xiě)的字母“A”至“I”、小寫(xiě)的字母“a”至“i”、十二天干中的前九個(gè)漢字,十地支中的前九個(gè)漢字。
全文摘要
本發(fā)明設(shè)計(jì)了一種采用短信息這種通信方式進(jìn)行棋類(lèi)游戲的方法,以及一種同樣采用短信息進(jìn)行牌類(lèi)游戲的方法。使用的軟硬件體系包括應(yīng)用服務(wù)器、短信息網(wǎng)關(guān)、通信網(wǎng)絡(luò)、通信終端。方法中包括步驟有A.開(kāi)始步驟;B.系統(tǒng)為用戶(hù)匹配足夠多位的用戶(hù)組成游戲的各方;C.用戶(hù)將自己的走棋信息或出牌信息編碼后發(fā)送到系統(tǒng);D.系統(tǒng)對(duì)收到的用戶(hù)的走棋或出牌短信進(jìn)行檢查是否有編碼錯(cuò)誤或違反了游戲規(guī)則;E.如果有編碼錯(cuò)誤或違反了游戲規(guī)則,系統(tǒng)將提示用戶(hù)錯(cuò)誤,要求用戶(hù)重新發(fā)送;F.如果沒(méi)有編碼錯(cuò)誤和不違反游戲規(guī)則,系統(tǒng)將它再轉(zhuǎn)發(fā)給本局游戲中其他幾位用戶(hù);G.在各位用戶(hù)之間重復(fù)C、D、E、F直到游戲結(jié)束。
文檔編號(hào)A63F13/00GK1695767SQ20051003141
公開(kāi)日2005年11月16日 申請(qǐng)日期2005年4月4日 優(yōu)先權(quán)日2005年4月4日
發(fā)明者周海鷹 申請(qǐng)人:周海鷹