专利名称:使用短信息进行棋类和牌类游戏的方法
技术领域:
本发明是一种结合了计算机及通信领域的技术,使用户能够使用短信息的通讯方式相互间不用见面在远程就能进行棋类和牌类游戏的方法。
背景技术:
目前,随着计算机及通信技术的发展,人们不用相互见面坐在一起就能通过计算机及计算机网络、或者通过手机进行各种各样的棋牌游戏。这些通信方式的出现极大地丰富了人们的生活,但是也有不足。缺点在于,要进行这种远程棋牌游戏的用户必须给自己配备电脑或高性能的手机(比如支持BREW的手机),而这些设备的价格并不便宜。另外,对于电脑用户,由于电脑的普及率不高,一个家庭中每个家庭成员都配备有电脑的情况不多,这就增加了成员之间的矛盾,此外还必须将电脑连上INTERNET网,这不仅增加家庭的支出,而且对于使用有线接入方式的用户来说则不具备移动性,即使使用无线接入方式的便携机用户因为便携机的尺寸和电池供电时间的限制,也限制了不可能随时随地游玩游戏。虽然电脑用户面临的问题对于手机用户不存在,但是由于当前手机屏幕大小的限制,一些棋牌游戏还不能在手机上实现,比如围棋,再加前述所说的这类手机的高价格,以及软件平台的不统一,这一切都限制了这些娱乐方式在手机用户中的推广。
发明内容
为了让使用普通手机的用户也能进行棋牌游戏,本发明设计了一种采用短信息这种已为广大消费者熟悉的通信方式进行棋类游戏的方法,以及一种同样采用短信息进行牌类游戏的方法。
两种方法都使用如下的软硬件体系。
应用服务器、短信息网关、通信网络、通信终端。通信网络是由通信设备组成的数据通讯网络,包括无线通信网络和有线通信网络,使用电话通信技术与数据通信技术联结通信终端与短信网关,在通信终端与短信息网关之间传送短信息(short message service)。通信终端包含手机(mobile phone)和具有短信息功能的固定电话机,手机通过无线方式与通信网络联结,固定电话机使用固定电话线与通信网络联结,它们都使用短信息与短信网关通讯。短信息网关是一个运行有数据通信处理程序的计算机,一方面按通信网络规定的格式接收包含有用户发来的短信息的报文,将报文处理后提供给应用服务器进一步处理,另一方面也将应用服务器提供的须反馈回用户的短信息发回用户。应用服务器由可以由几台计算机,也可以只由一台计算机组成,它至少具备如下功能1、接收并保存用户的注册信息;2、为用户匹配玩家;3、为对弈的各位玩家登记对弈信息,包括各方的ID号,正在进行的游戏种类,哪位玩家先手;4、对接收到的玩家短信按规则进行检验,对于不满足规则的短信回复相关提示错误的短信,对满足规则的短信处理后转发给其它玩家;5、维持各位玩家发送短信的次序,为每位玩家计时,保证游戏的秩序;6、判断游戏的结束与输赢,对各玩家的积分进行相应增减后保存到数据库。短信息网关与应用服务器在本文中合称为系统。
在描述本方法之前,这里先介绍一下设计的基本思路。本方法设计的基本思路就是,用户自己准备棋具,在自己的棋盘上下棋,将下的每一步棋按系统规定的格式用短信发送到系统,由系统转发给其他一起对弈的用户,另外,该用户还接受系统转发来的描述其他一起对弈的用户的每步棋的短信,并根据短信内容为其他一起对弈的用户在自己棋盘上为相应的用户走出这步棋。在下棋过程中系统要负责校验每步棋的短信保证它能够满足格式上和游戏规则上的规定、为对弈的用户之间传递每步棋的短信、维持游戏的规则与秩序,以实现为用户提供一个开放的,公平的,合理的,有秩序的游戏平台。
和所有的短信服务一样,在开始游戏之前,用户须发送短信到系统进行注册,系统接受用户的注册后会将用户的ID发回给用户。随同ID一起发送的可能还有游戏的操作方法、步骤和各种功能的短信格式,游戏规则,或者如何是用短信获取上述信息的方法,或者是如何通过其它媒体方式获取上述信息的方法。用户在了解上述信息后就可以开始游戏了。
根据上面的设计思路,本方法在游戏的过程包括以下几个步骤。
第一步,用户自己准备好的棋具,这里的棋具可以是真实的棋具或者是电脑模拟的棋具,用户作好下棋前的准备工作比如摆放好棋子。
第二步,用户按系统指定的开始游戏的短信格式向系统发送短信,表示开始某项游戏。比如系统指定只须发送“WQ”、“JQ”、“ZQ”、“GQ”就可以分别开始围棋、军棋、中国象棋、国际象棋,则用户发送上面的一个编码到系统后,系统就进入下一步骤。当然,在实际系统中有可能使用更复杂的编码格式,使得用户在开始游戏的同时可以指定更多的信息,比如,系统可以规定开始游戏编码的后面还可以跟一个用户ID号来表示发送短信的用户只愿意跟这位ID号的用户对弈。
第二步,如果系统收到的短信格式有误,系统将向用户提示错误,等待用户的下一条短信。如果没有错误,系统则根据设计的匹配规则和用户设置的匹配信息为该用户寻找足够多位等待开始游戏的用户,匹配成功后,再为各用户设定走棋次序,方位或者棋子颜色,并将上述信息用短信告诉用户,随后,系统开始等待先手的用户发来他的第一步棋的编码。具体的匹配模式随系统的实现各不相同,比如最简单的模式就是在等待开始游戏的用户ID队列中,从第一位ID起,提取足够多位的ID与该用户匹配成一个盘棋的各对弈方,如果当前等待的用户位数还不够多则将该用户ID写入该队列,与原先等待的用户一起,等待足够数量的用户。
第三步,参加游戏的用户在收到系统发来的包含次序、方位或颜色的短信后,根据上述信息调整好自己的棋盘方向,先手的用户下出自己的第一步棋,并根据所了解的系统制定的对一步棋进行编码的规则,编辑这步棋的短信然后发送到系统。对一步棋如何编码,一个不需要考虑就可以采用的方法就是采用各类棋的当前广泛使用的记谱法,记谱法事实上就是对每步棋进行编码的方法。不过,由于历史的原因,有些棋产生了许多的记谱的方法,比如围棋、中国象棋,有汉字式的,有字母数字式的,而有的棋由于诞生时间不长,还没有统一的记谱法,比如军棋、中国跳棋。但不管哪种记谱法,或是新设计一种记谱法,都应包含有原棋位和新棋位的信息,或是包含有走这步棋的棋子与新棋位的信息,当然对于围棋等这类下棋是摆放棋子而不移动棋子的棋类游戏来说,是不存在原棋位和棋子的信息的。系统在实现时具体采用哪种方法描述一步棋,一步棋在短信中应具有什么样的格式,可以视情况而定,比如为了减少用户错误可以采用信息含量多使用多类符号的编码,为了方便用户输入可以采用信息含量少符号类别少长度短的编码。无论采用哪一种最重要要的一点是让用户知道编码的方法。在此还对上面的名词“棋位”作一下说明,本文所说的棋位,对于棋子摆放在棋盘经纬线的交叉点上就是指棋线的交点,对于棋子摆放在棋盘经纬线组成的格内就是指棋格。
第四步,系统对收到的短信进行检验,判断它是否违反了对一步棋的编码规则和是否违反了游戏规则,如果有错误,系统将向用户提示错误,开始等待用户的下一条短信。如果没有错误,系统则将包含描述这位用户的这步棋的短信发给下一位按秩序轮到走棋的用户。
第五步,下一位按秩序轮到走棋的用户收到系统发来的上一位用户的走棋信息的短信,根据短信内容在自己的棋具上走出对弈方的那步棋,然后考虑自己的应招,当下出自己的一步棋后,根据编码规则将这步棋编辑成短信后发送到系统。如果是多人对弈的棋类游戏,用户将收到其余各对弈方的走棋短信,并为其余各对弈方走棋后,才考虑自己的棋怎么走。
第六步,依下棋秩序在各位用户之间重复第四步与第五步直到游戏结束。
第七步,结束游戏。当其中的一位用户出现下列情况后,系统为该用户结束游戏1、该用户发送系统指定格式的认输短信到系统;2、根据游戏规则该用户取胜或失败,比如比赛时间用完;3、根据游戏规则该用户无棋可下;4、参于游戏的各方都同意结束游戏。
第八步,当所有用户都结束游戏后,系统为每位用户根据游戏规则判定胜负并计算各自得分,在系统中登记后,将得分情况发送给参于这次游戏的每位用户。
之后系统将在设定的时间内等待刚才参于游戏的每位用户开始游戏的短信,如果每位用户在此时间内都表示重新开始则系统继续游戏,否则将只为确定开始的用户重新匹配新的用户以开始新一轮的游戏。
不过,根据上面的步骤,用户可能还无法进行军棋和四国军棋游戏,因为它们开局时,还有一个布阵的步骤。所以,在用户收到系统发来的包含方位或颜色的短信后,在走第一步棋前,须将自己的布阵信息按规定的格式发送到系统。系统可以规定两种次序的编码方式,一种是按一定棋子顺序将每个棋子所在棋位的编码顺序写出,一种是按棋位的一定次序将每个棋位上的棋子名称或编号顺序写出。各方都发送完布阵信息后,经系统检查无误后,系统就可以用短信告知第一位开始走棋的用户走出第一步棋。
本方法的有益效果就是,对于广大的手机用户来说,为他们提供了一种廉价的进行棋类游戏的方法,用户无须购置高价的设备,也能与陌生人进行远程棋类游戏。此外,这种方法对于广大的手机用户来说,因为使用习以为常的短信方式和记谱法,还有易掌握,移动性好,在家里,在公园里,只要有能摆下棋盘的地方,有移动通讯信号,随时随地可以“来一盘”,如果用户使用袖珍的棋具,那么在火车上,在汽车上,只要巴掌大的地方也都可以享受到“手谈”的乐趣,驱走旅途的寂寞。对于移动运营商来说,本方法也为他们提供了一种投资少,见效快,回报具大的新业务,因为运营商无须更换、升级通信设备,只须采用现有的成熟的计算机技术与通信技术,经过短时间的开发与测试,就可为广大的手机用户提供一种新的娱乐方式。
上述的方法,虽然使通过只具短信功能的手机也能进行远程棋类游戏的想法变为了可能,但是也有可能为用户带来不便。如何对一步棋进行有效的编码,让用户输入方便,同时也让用户便于查看就是上面要说的不便之处。也许大家都体会到过这么一个事实,在所有的字符中,只有阿拉伯数字是在手机上最容易输入的符号,只须将手机输入法切换到数字输入法后,一个阿拉伯数字按一次键,很快就能完成阿拉伯数字输入。但是同时大家也会体会到这么一个事实,数字同时是最易混淆,最不易记忆的东西。根据前一个事实,可以设想出,如果对每一步棋的描述都使用阿拉伯数字编码,那么这样的编码毫无疑问在输入上是最简便的。所以如果系统参照一些新的全阿拉伯数字式记谱方法,用户就可以很方便快捷的输入短信。“谭氏记谱法”就是一种全阿拉伯数字记谱法,可以肯定如果系统在中国象棋中采用这种记谱法的规则规定对一步棋的编码格式,那么用户将会以更短的时间输入一步棋的编码。但是全是阿拉伯数字也会存在问题,比如在“谭氏记谱法”中一步棋使用四个阿拉伯数字表示,比如“3537”,说是有一步棋从(3,5)的位置走到了(3,7)的位置,解析出来的话很清晰明确,但是,没解析出来前却很容易搞混,很容易就混淆了横竖坐标,而读者恰恰只能接触到没解析出来的信息,解析过程要全凭自己想象。这也可能是“谭氏记谱法”未能得以普遍使用的一个原因。同样也可能是国际象棋的记谱法经历的几百年的发展也未发展成全阿拉伯数字方式的原因。对此原因最简短的一个描述就是,好“记”不好“读”。不管是不是这个原因,也不管以上的分析是否正确,根据现有的一些数字记谱法,在这里提出一个统一的全阿拉伯数字的编码方法,以方便用户的对一步棋进行短信输入。
该方法是首先将棋盘进行分区,分区的方法满足不同的分区含有不同的棋位;相邻的分区可以包含部分相同的棋位;棋盘上每一棋位都包含于至少一个分区;整个棋盘可以只分一个区,或者说没有分区;每个分区都用不同于其它分区的阿拉伯数字进行编号。例如可以将围棋、象棋、中国象棋、军棋只分成一个区;将四国军棋分成五个区,四位玩家的布棋区为一个区,中间前线区为一个区,总共五个区;将跳棋按六片不同着色区分成六个区,六个区都包含最中间的棋位,每个区只包含相邻公共边的左边上的棋位。
然后对各分区内的棋位进行阿拉伯数字编号。编号方法有两种,对于分区形状是四方形的,可以采用坐标法进行编号。也就是对分区内棋位的横排用递增的阿拉伯数字队列顺次编号,同时分区内棋位的纵排也用递增的阿拉伯数字队列顺次编号,这样分区内每一棋位都有不同于其它棋位的横纵数字坐标。例如将围棋的19条经线和19条纬线分别从下至上从左至右用1至19这19个阿拉伯数字进行编号;将中国象棋从下至上从左至右分别用从1开始的数字进行编号,这样纬线最大编号为10,经线最大编号为9。除了坐标法,另一种方法是,直接用阿拉伯数字对分区内的棋位顺次进行编号。例如将跳棋的每个分区的公共棋位编号为0,然后从左至右、从上至下从数字1开始顺次对该分区内每个棋位进行数字编号。这样一来,棋盘上的每一个棋位都可以用包含有分区号和棋位编码的信息来标志了。
除了对棋盘编号,还可以对棋子进行阿拉伯数字编号。编号方法为,采用递增的阿拉伯数字队列对棋盘上的每一个棋子进行编号,保证同一着色的棋子编号各不相同。另外,着色不同但名称一样或对应的棋子编号可以相同。例如将中国象棋从“兵”开始,按棋子摆放的位置,从上到下,从左到右,用从1开始的阿拉伯数字进行编号,这样5个“兵”的编号分别为1至5,两个“炮”的编号为6、7,两个“车”的编号为8、16。
通过以上的方法,棋盘上每一棋位都有一个唯一的编码,每一方的棋子都有一个唯一的编码。描述一步棋就可以采用下面的编码方式“AB”、“BA”、“CB”或“BC”式,其中A代表原棋位这个元素的编码,B代表新棋位这个元素的编码,C代表棋子这个元素的编码。根据前述,棋位的编码又由分区号这个元素和在这个分区内的棋位编码这个元素组成,自然当没有分区时,分区号元素去掉。而分区内的棋位这个元素编码又由横坐标元素和纵坐标元素组成,或者就是一个整数组成。在用户输入方便的情况下,以上的每个元素之间可以输入非数字符作为分隔符,也可以不输入。另外将以上各式中的各元素的顺序打乱也是可以采用的编码方式,比如在AB式中,先A的横坐标,再B的横坐标,再A的纵坐标,再B的纵坐标。不过,如果在以上各式中各元素之间不加分隔符,在有些情况下会出现问题。这种情况就是当以上元素中,如果中间有两个元素的编码的最大数值都为十位数组成的,也就都是由多于一个阿拉伯数字的多个阿拉伯数字组成,比如围棋中横坚坐标的最大数都可以是19,都是十位数,则如果不将这两个元素的编码与其它元素分隔开,会产生系统无法解析的问题。比如围棋中有一手棋在棋盘坐标(11,1)这个点上布上棋子,则这手棋根据刚才规则不加分隔符的编码就是“111”,显然这个编码发送到系统时,系统是无法解析出来的,因为(11,1)与(1,11)都会对应编码“111”。解决的办法有两种,在不同元素的编码之间加上任一非数字符号作为分隔符,比如前例中若采用“,”作分隔符,则“11,1”对系统而言就是正确的。另外一种方法,将这种最大值为多位数的元素的编码中的位数小于最大值位数的编码的前面补上足够多的“0”,使得组成它的编码的数字的个数等于最大值位数。比如,前例中,因为纵坐标的的最大值为“19”,是两位数,所以应为纵坐标编码为个位数的编码前面加上一个“0”,所以(11,1)应写成“1101”,这样系统就不会混淆了。
显然如果在前述用短信进行棋类游戏的方法中,如果再对每步棋的编码方式采用上述的数字式编码方式,则可以方便用户快速、方便的输入每步棋的编码,进一步增强这种娱乐方式的推广价值。
采用了数字式的编码方式后,虽然达到了一个显而易见的效果,可以方便用户输入,但是,如前分析,如果不加处理地将这种数字式的编码发送给用户,可能会给用户带来视觉上的疲劳。一个原因是,现在的一些棋盘的棋位标注大都采用英文字母加阿拉伯数字的方式,这样,在寻找该棋位时确实可以减少差错。另外,很多棋类的记谱法,对每步棋的描述除了说明了棋子的移动或落点情况外,还说明这步棋中是哪颗棋子移动了,这步棋的动作在该类棋的术语上称之为一种什么动作,这步棋产生了什么样的影响或结果,比如吃了什么子,提了什么子,开始将军了,打劫等等情况。
参照于这些情况,这里先对全阿拉伯数字标注的棋盘作一下处理,就是在每种棋类游戏的棋盘中只将将纵坐标中编号为1的坐标再标注英文字母A,编号为2的坐标顺次再标注英文字母B,依照从标数值从小到大,英文字母从A至Z的顺序,直到所有的纵坐标都标注了相应的英文字母。同理,也可以将所有横坐标也标注上相应的英文字母。在实际使用中可以只对一边坐标,即只对横坐标或只对纵坐标进行如上的英文字母标注。
这里再对前述用短信进行棋类游戏的方法中的第四步中,系统发往用户的描述一步棋的短信进行更进一步的处理。其处理细节如下,如果当前的棋类游戏由多于两个玩家的用户组成,则先在数字式编码前加上玩家的名称或编码。再将数字式编码中的各元素用分隔符进行分隔,比如前述“1101”可以分隔为“(11,1)”。然后将数字式编码替换为一边坐标为英文字母编码的字母数字式棋位编码。比如前述可能替换为“(11,A)”。之后可以加上这步棋的棋子名称或编码。比如有这么一步棋的编码“101102,,(由于横坐标只有一个十位数,所以虽然最大值由两年阿拉伯数字组成,纵坐标前也不用加“0”)表示棋子“车”从棋位(10,1)走到棋位(10,2),则经过以上处理后就是“车(J,1)至(J,2)”。最后还可以加上这步棋的影响或结果。又如上例中的“车”,假如在那步棋中吃了“J,2”位上的“炮”,并“将军”,则这时可以写成“车(J,1)至(J,2)吃[炮]将军”。显然如果用户收到了短信“车(J,1)至(J,2)吃[炮]将军”将比收到短信“101102”更容易清楚对方走了一步棋。
所以当系统对一步棋的编码经过以上处理后,用户将更清晰地理解各对弈方的走棋情况,以减少用户出错的情况,也有利于游戏能够正常进行下去。
根据上述的用短信玩棋类游戏的方法,相应也可以设计出进行牌类游戏的方法。与棋类游戏相类似,它也包括下列大致差不多的几个步骤。
第一步,用户自己准备好的牌具,这里的牌具可以是真实的牌具或者是电脑模拟的牌具,或者仅是一张空白纸和一支笔。用户作好打牌前的准备工作比如清理好每张牌,将所有需要参于游戏的整套牌分花色,按一定大小顺序排列好。
第二步,用户按系统指定的开始游戏的短信格式向系统发送短信,表示开始某项游戏。比如系统指定只须发送“DDZ”、“SJ”、“CDD”、“GZ”、“SDH”、“MJ”就可以分别开始斗地主、升级、锄大地、拱猪、三打哈这几类扑克游戏或麻将游戏,则用户发送上面的一个编码到系统后,系统就进入下一步骤。当然,在实际系统中有可能使用更复杂的编码格式,使得用户在开始游戏的同时可以指定更多的信息,比如,系统可以规定开始游戏编码的后面还可以跟几个用户ID号来表示发送短信的用户只愿意跟这几位ID号的用户打牌。
第三步,如果系统收到的短信格式有误,系统将向用户提示错误,等待用户的下一条短信。如果没有错误,系统则根据设计的匹配规则和用户设置的匹配信息为该用户匹配足够多位等待开始游戏的用户,匹配成功后,再为各用户设定方位,然后系统为各位用户发牌。发完牌后将每位用户所得牌的情况,根据编码规则将每位用户分得牌的信息编辑成短信,连同方位信息一起发送它们给它们各自的用户,这样每位用户都将获得、也只获得各自的发牌信息和方位信息。如果这一步中就能确定庄家信息,则本局牌的各位用户还将获得哪个方位是庄家的信息。
上述的匹配模式随系统的实现可能各不相同,比如最简单的模式就是在等待开始游戏的用户ID队列中,从第一位ID起,提取足够多位的ID与该用户匹配成牌局的各对局方,如果当前等待的用户位数还不够多则将该用户ID写入该队列,与原先等待的用户一起,等待足够数量的用户。
对所得牌如何编码的规则,也可采用各种不同方式。一个须掌握的原则就是,对扑克的游戏,如果游戏中须要牌的花色评判大小,则需要将用户分得的牌先分花色再按一定大小顺序编码发给用户,如果游戏中不需要比较牌的花色,则只须按一定大小顺序将所得牌发给用户;对于麻将则是先分花色,再按一定大小顺序将所得牌的各个名称发给用户就行。更具体一点,可以将扑克四个花色“黑桃、红心、梅花、方块”用四个汉字或四个字母代替,比如用“桃、心、梅、方”代替,保持各张牌的点数不变,编写每张牌的点数时依然用原符号“2、3、4、5、6、7、8、9、10、J、Q、K、A”代替,对于彩色王牌和黑白王牌可以用英文字母或汉字代替。比如可以用两个不同的字母代替或者一个字母的大写和小写代替。更具体一点,比如可以用两个不同的字母W代替彩色王牌和G代替黑白王牌;或者使用字母G的大写G代替彩色王牌,小写字母g代替黑白王牌。显然用来代替的字母不能是AJQK这四个已经出现的字母。或者直接在短信中将彩色王牌和黑白王牌直接写成“大王、小王”。如果在所玩牌类游戏中不需要花色比较每手牌的大小,则所得牌的编码不必出现花色编码,直接将所得牌按一定大小顺序将每张牌的点数编写入短信。对于麻将,可以说已经有些牌有“现成的编码了”,比如“一万”至“九万”、“东”“西”“南”“北”“中”“发”,就可以用牌面上现成的汉字作编码,类似地,可以将花色俗称为“筒”(也称为“饼”)的点数从1到9的九张牌,编码成“一筒”至“九筒”,将花色俗称为“条”(也称为“索”)的点数从1到9的九张牌,编码成“一条”至“九条”,对于俗称“门板”(也称为“白板”)的牌,可以用一个汉字,比如“门”,来代表。
第三步,用户根据自己所得牌的短信,在牌具中将所得牌对应的牌挑出来,或者将所得牌重新记到纸上,便于后面的步骤中自己的查看,同时进入打牌前的初始化步骤。
第四步,这里将第四步称为的打牌前的初始化步骤。这是一个对一些小步骤的总称,它包括第三步之后和某个用户打出整局牌的第一手牌之前的步骤,对于具体不同扑克游戏的玩法,包含的具体步骤也不一样。
对于“斗地主”扑克游戏,初始化步骤包括下列步骤1、参于本局游戏的各位用户,在系统规定的时间内发送包含“叫分”信息的短信息到系统。未在指定时间内发送该信息的用户将由系统叫出最低分或者不叫分,发送错误格式“叫分”编码的用户系统可以视为不叫分。叫分短信可以直接由所叫分数的数值组成,比如一位用户叫三分,可以直接发送“3”到系统,一位用户不叫分,可以发送“0”到系统。
2、系统将叫分达到最高分的用户设为庄家,如果达到最高分的用户有多位或者当前最高分的用户有多位,系统则根据坐庄的轮流次序和方位次序,或者由系统随机指定,来确定本局中的庄家。如果都没叫分,系统则根据坐庄的轮流次序和方位次序,或者由系统随机指定,确定一位庄家,或者不指定庄家将本局作废,发送作废短信到各位用户,等待各位用户重新开始。庄家确定后,系统将剩余还未发出的属于庄家的牌按所得牌的编码方式编辑成短信后与所确定的庄家信息一起发给所有这局牌的用户,庄家再根据这些短信中的信息,再将所对应的牌挑出来或者记录下来。如果游戏规则是非庄家看不到这几张牌,则非庄家将只获得哪位用户是庄家信息,比如“庄家是您的上家”、“庄家是您的下家”。
对于“升级”扑克游戏,初始化步骤包括下列步骤1、参于本局游戏的各位用户根据所得牌的情况在规定时间内发送自己想叫的“将牌”(也有的地方叫“主牌”)的花色编码到系统,系统可以提供本轮暂时不叫和本局都不叫的编码格式,用户可以据此发送本轮暂时不叫或本局不叫的短信到系统,在规定时间内未发送短信的用户系统可以视为该用户本轮暂时不叫或本局不叫。
2、系统将,在规定时间内最先获得的花色信息作为本次“将牌”的花色,然后检查每位用户的所得牌确定是否有哪几位用户没有发送本局不叫牌并且具有“反将”的能力,如果有则发送第一轮所确定的花色和是否“反将”的短信到这几位用户,进行新一轮的叫牌。如果第一轮都没叫花色,则系统可进行例外的处理,比如指定一种花色,继续下去;或者,庄家“垮庄”;或者仅本局作废,重新开始一局。
3、如此进行第1和第2步的反复,最后确定“将牌”花色后,将“将牌”花色和庄家信息发送给每一位用户。在第一局的升级游戏中,还会有确定庄家的步骤,一个简单的方法就是系统在这时,将确定本局“将牌”花色的用户确定为本局的庄家,其它方法由于在不同地方的玩法中会不一样,本文中不一而足。
4、系统将庄家所应获得的底牌按所得牌的编码方式编码后发给庄家。
5、庄家将底牌对应的牌再挑出来或记录下来。根据前后两次得牌情况,选择出要“扣”的底牌,然后按所得牌的编码方式,在规定时间内发回给系统。
6、系统将检查发回短信中所指定的要“扣”的牌是否属于庄家,如果属于则发送短信给庄家,提示庄家出第一手牌。
对于“三打哈”游戏,初始化步骤包括下列步骤1、参于本局游戏的各位用户,在系统规定的时间内发送包含“叫分”信息的短信息到系统。未在指定时间内发送该信息的用户将由系统叫出最低分或者不叫分,发送错误格式“叫分”编码的用户系统可以视为不叫分。叫分短信可以直接由所叫分数的数值组成,比如一位用户叫80分,可以直接发送“80”到系统,一位用户不叫分,可以发送“1”到系统,因为“1”分在游戏规则中是无效叫分。
2、系统将叫分达到最高分或最低分(具体是最高分还是最低分视实现时游戏规则而定)的用户设为庄家,如果达到最值分的用户有多位系统则根据坐庄的轮流次序和方位次序,或者由系统随机指定,来确定本局中的庄家。如果当前最值分都没达到能叫到的最高分,但是也有多位用户,系统则发送短信给这几位用户要求他们进行第二轮的叫分。如果都没叫分,系统则根据坐庄的轮流次序和方位次序,或者由系统随机指定,确定一位庄家,或者不指定庄家将本局作废,发送作废短信到各位用户,等待各位用户重新开始。
3、庄家确定后系统发送短信到庄家,要求他确定本局“将牌”的花色。庄家根据当前所得牌的情况将确定的花色发送到系统。系统也可以将此信息指定在叫分的步骤随同叫分的分数一同发送到系统。
4、系统将庄家所应获得的底牌按所得牌的编码方式编码后发给庄家。
5、庄家将底牌对应的牌再挑出来或记录下来。根据前后两次得牌情况,选择出要“扣”的底牌,然后按所得牌的编码方式,在规定时间内发回给系统。在有的地方的“三打哈”游戏中,“将牌”花色在获得底牌后确定。
6、系统将检查发回短信中所指定的要“扣”的牌是否属于庄家,如果属于则发送短信给庄家,提示庄家出第一手牌。
在其它一些扑克游戏中,也需要一些初始化步骤,这里不一一说明。
第五步,本局中应当第一位出牌的用户按照所得牌的编码规则,将自己出的第一手牌再从所得牌中挑出来,或者在纸上从所得牌中划去,编辑成短信后,发送到系统。
第六步,系统首先检查编码的格式是否正确,再检查短信内所包含的牌是不是这位用户的,最后检查所出的牌是否符合当前游戏的游戏规则。如果没错误,进入下一步。
第七步,系统根据具体的牌类游戏规则,确定当前是哪位用户获得发牌权,确定后,将这位用户从最近一次获得发牌权,至本次获得发牌权的期间,其它用户的出牌情况用短信发给用户。出牌情况用每个用户信息后面加跟他所出的那手牌的编码进行描述,其中短信中每手牌的编码的先后顺序与实际出牌顺序相对应。也就是,即使某个用户在此期间出了两手牌,如果这两手牌中间还有其它用户出牌,则这两手牌的编码在短信中将会被插入其它用户的出牌编码。如果这期间有用户没出牌,可以在短信直接写明,也可以通过在短信中不包含该用户出牌信息的方式来表示该用户没出牌。对于麻将这种牌类游戏,用户收到的短信中除了其它用户的出牌情况,还应包括这期间发生的“吃”“碰”“杆”牌的信息,和当前系统发给用户的那张牌的信息。
第八步,轮到发牌权的用户根据其它用户的出牌情况,将自己要出的一手牌从所得牌中挑出来,或者在纸上从所得牌中划去,编辑成短信后,发送到系统。玩麻将游戏的用户根据出牌情况可能需要重新调整自己当前手上剩余的牌。
第九步,在本局牌的各位用户之间重复第六、七、八步。
第十步,当出现下列情况时,一位用户中止第九步的循环,该用户结束出牌1、他的牌已出完;2、根据游戏规则,他已获胜或失败;3、本局牌中的其它用户都已出完牌。
当本局牌中的所有用户都结束出牌后,系统根据当前牌类游戏规则为各位用户评判输赢、记分将上述信息发给各位用户后,提示用户发送开始游戏的短信到系统,开始下一局牌的游戏。
之后系统将在设定的时间内等待刚才参于游戏的每位用户开始游戏的短信,如果每位用户在此时间内都表示重新开始则从系统继续游戏,否则将只为确定开始的用户重新匹配新的用户以开始新一轮的游戏。
在以上步骤中,玩麻将游戏可能还有些问题,因为在平时打牌中“吃碰杆”牌的动作是由用户根据牌情主动发出的,这种动作改变了用户中的出牌权,并且是当发生这个动作时,就改变,不像扑克类游戏,一般通过比较上一轮各用户所出牌大小,在下一轮中才改变出牌权的顺序。使用短信玩麻将游戏,要想实现上述的动作的一种方法是,在每位用户出牌后都将他的出牌信息告诉其它用户,由用户根据自己牌情选择是否“吃碰杆”,如果决定要采取其中的一种动作,在系统规定的时间内将动作编码发给系统。虽然这种方法可以实现上述的机制,但是由于采用短信这种方式进行通讯,系统的实时性不是很高,所以上述方法将影响整个的游戏的速度。所以,系统采用下述方法实现。在上述第六步中系统通过对牌的编码一系列的检查后,再进行下述检查,根据记录的其它三位用户的当前手中剩余牌的信息,查找是否有用户对刚出的那张牌可以进行“碰”和“杆”的情况,如果有,则向且只向这位用户发送询问是否“碰杆”牌的短信,再根据用户反馈的信息进行下一步的操作;在检查没用户可以进行“碰”和“杆”后,再检查是否有用户根据当前的规则可以“吃”,如果有则同样向且只向这位用户发送询问是否“吃”牌的短信,再根据用户反馈的信息进行下一步的操作。
本方法的有益效果就是,与用手机进行棋类游戏的方法一样,对于广大的手机用户来说,为他们提供了一种廉价的进行牌类游戏的方法,用户无须购置高价的设备,也能与陌生人进行远程牌类游戏。此外,这种方法对于广大的手机用户来说,还有易掌握,因为使用习以为常的短信方式,对牌的描述也是习惯中使用的符号,移动性好,在家里,在公园里、在火车上,在汽车上,只要带上牌甚至只需纸和笔,有移动通讯信号,随时随地可以“来一把”,驱走旅行生法中的无聊和寂寞。对于移动运营商来说,本方法也为他们提供了一种投资少,见效快,回报具大的新业务,因为运营商无须更换、升级通信设备,只须采用现有的成熟的计算机技术与通信技术,经过短时间的开发与测试,就可为广大的手机用户提供一种新的娱乐方式。
在以上的牌类游戏的方法中,用户在每一轮出牌后都必须记住自己手里剩余的牌,一种方法是用牌具,一种方法是用纸和笔,这里就提出一种更好的方法,可以让用户不用牌具,不用纸和笔,也能进行牌类游戏。该方法很简单,就是在上述步骤中,一切在系统第一次发了牌之后到结束前的系统发往某位用户的短信中,都加上这位用户的当前手中剩余牌的编码,将这位用户当前手中剩余牌的情况直接用短信发给这位用户。在有些需要为参加游戏的各方记分的游戏中,一起发送的还有当前各方的积分信息。为了实现此功能,系统当然要登记下这位用户最先获得了什么牌,之后还获得什么牌,用户出的每手牌是什么牌,据此计算出每手牌之后还剩什么牌。要发送记分信息的,系统还要在每手牌后为各方登记分数变化。
通过以上方法,用户就可以脱离牌具或纸和笔,只使用手机也能玩上牌类游戏了。
与棋类游戏相类似,为了用户输入的方便,在用户发往系统的短信,还可以使用全数字的编码方式对每手牌和打牌中的一些动作进行编码。当然,将这些信息进行数字化编码的方式,由于设计思路的不同,可能有多种多样。在本节中,主要描述一下里面的重点,更具体的实现,可参见后继“实施方式”。在本方法,对扑克游戏中的各张牌的点数作如下替换,保持点数“2、3、4、5、6、7、8、9、10”的编码依然为“2、3、4、5、6、7、8、9、10”,“A、J、Q、K”在编码中对应为“1、11、12、13”,黑白王牌和彩色王牌在编码中对应“14、15”。“黑桃、红心、梅花、方块”也用四个阿拉伯数字代替,可以就对应“1、2、3、4”这种它们平常在一些牌类游戏中花色的大小顺序。在扑克游戏打出的每手牌中,先将一种花色的牌输入完,再输入另一种花色的牌;每一种花色的牌,先输入花色的数字编码再输入该花色下每张牌点数的数字编码;黑白王牌和彩色王牌可以加入整手牌中的任何一种花色队列的编码中,如果整手牌只出现黑白王牌和彩色王牌,可以将它们的花色编码设定为任一花色编码,在输入花色编码后再输入它们的点数;如果具体牌类游戏中花色不参加比较大小,则在上述的编码中花色编码一律去掉,所有的牌按一种花色规则进行编码。
还可以采用数量词后跟牌的点数的方式化简化一手牌的输入。也就是,如果一手牌在同一花色的编码队列中出现了2次及两次以上,可以采用先输入一个表示出现次数的阿拉伯数字再输入这张牌的点数的方式简化编码。比如,在“斗地主”游戏中,有某位用户出了三张“J”带一对“3”,由于在“斗地主”游戏中,花色不区分大小,根据以上规则可以使用输入以下编码表示这手牌“31123”。为了让系统在对该编码解析时使用比较简单的算法,可以要求在每个表次数的数字前加上分隔符,比如前例加分隔符后为“311.23”,“.”作分隔符。如果在手机的数字输入法中,输入非数字分隔符不方便,可以用两个“0”作分隔符,比如前例可为“3110023”,虽然对用户两说有些头晕,但是系统在解析时算法不见得比“311.23”要复杂多少。
在麻将游戏中,与扑克游戏类似,将四种花色“筒、条、万、风”用四个阿拉伯数字代替,可以为“0、1、2、3”,用“0”象形“筒”牌上的刻纹特征,用“1”象形“条”牌上的刻纹特征,按顺序用“2、3”表示“万、风”。“筒、条、万”各张牌的点数分别用“1”至“9”代替,“东西南北中发白”,也用7人数字代替,可用“6、4、8、2、5”替换“东、西、南、北、中”,这些数字在手机按键上的方位对应“东西南北中”,“发、白”可以相应对应“7、9”。因为打出来的一手牌就是一张牌,所以,对一张牌的编码可以根据平时玩麻将的习惯,点数编码在前,花色编码在后。
对于“吃、碰、杆”的动作编码,可以用“1、2、3”依次代替,如果不进行“吃碰杆”的动作,可以直接发送“0”至系统,对于“吃、碰”的动作,可以发送“吃、碰”动作编码后加要出的牌的编码给系统;如果要“杆”牌,直接发送动作编码给系统,比如发送“3”表示用3张牌“杆”,系统则将新发牌及用户的当前的剩余牌再一次发给用户。
采用了阿拉伯数字式的编码方式后,达到了一个显而易见的效果,可以方便用户输入。但是,如前分析,如果不加处理地将这种数字式的编码发送给用户,可能会给用户带来视觉上的疲劳。比如有一个用户在“斗地主”游戏中,出了三张“”带一个“J”,这时他的数字式编码可以是“11111”,显然其它两位用户如果收到了这样的编码“下11111”或“上11111”分别表示下家或上家的出牌,那么估计这两位用户需要想半天才能搞明白到底表示什么牌,但是根据游戏规则,这手牌只可能表示三张“A”带一个“J”。所以当用户在接收其它玩家出牌的编码时,使用数字式编码方式是很不友好的。为此,一个更贴近用户的方法是,将用户发来的数字式编码处理成非全数字编码。对于扑克游戏,这种处理可以包括以下几种情况1、为不同点数的牌之间加上分隔符,比如前例处理后就是“11111”,使用空格作分隔符;2、将编码中代替点数“A、J、Q、K”的数字,替换回“A、J、Q、K”,比如前例经过处理后就是“AAA J”,两张王牌也可以用两个非“AJQK”的字母代替;3、将代替花色的数字替换成相对应的汉字或者英文字母;4、加上每手牌的用户编码,尽量采用汉字作为用户编码。
对于连同一起发送回用户的剩余牌的信息,则只进行第2种处理,然后将各张牌先分花色再按点数的一定大小顺序排列,点数之间不加分隔符,不同花色队列之间可加分隔符。如果在具体的牌类游戏中比较牌的大小不需要花色,则不分花色,所有剩余牌只按点数一定的大小顺序排列,点数之间不加分隔符。
对于麻将游戏,首先用以下的编码方式替换每一张牌。将阿拉伯数字“1”至“9”、小写汉字“一”至“九”、大写汉字“壹”至“玖”,分别代表“条万筒”三种花色的9个点数牌,比如使用阿拉伯数字“1”至“9”依次代表“条”花色1点至9点的牌,使用小写汉字“一”至“九”依次代表“万”花色1点至9点的牌、使用大写汉字“壹”至“玖”依次代表“筒”花色1点至9点的牌,使用汉字“东西南北中发”分别代表“东西南北中发”六张牌,使用“白”代替“白板”这张牌,当然这张牌也可以使用其它的汉字。在上述中,也可以用一些其它表示顺序的字符组合来替换不同花色的九张牌,大写的字母“A”至“I”、小写的字母“a”至“i”、十二天干中的前九个汉字,十地支中的前九个汉字,显然前述的三种组合来得更清楚些。
通过这种方法,可以有效地使用一个字符就能表示好一张牌。对于系统而言减少了编码长度,对于用户而言,用户可以很清晰地区分出每一张牌。
由于在麻将游戏中一位用户的当前剩余牌中,有经过“吃碰杆”过的明牌,其它的玩家都看得到,还有其它玩家都看不到的暗牌,在加上刚摸的牌,总共有三种牌。在系统发往用户的当前剩余牌的暗牌编码中,按下列规则列出每一张牌,先按一定顺序的花色,花色内再按点数大小顺序排列每张牌,对于“风”色的牌,可以按“东西南北中发白”的顺序。比如“柒柒123三四五东”就是合法的编码,而“柒柒213三四五东”破坏了花色内大小顺序,“1柒柒23三四五东”破坏了花色顺序。对于明牌,如果也要在编码内出现,首先需要与暗牌用分隔符分隔开,然后可以按照“吃碰杆”的顺序排列每组牌,在“吃”的牌内按点数大小顺序排列。比如前例再加上暗牌可能是“(789)柒柒柒123三四五东”用圆括号分隔明牌与暗牌。对于系统新发给用户的牌,系统可以不加区别的按规则填入暗牌编码中去,也可以置于暗牌的牌尾。一种更友好的方法是将它按规则填入暗牌编码中去,但是用分隔符将它与其它牌的编码分隔开,比如前例可以为“(789)柒柒柒123三[三]四五东”。最好再加上表示这张牌还有多少张这位用户没看到的数字,比如前例可以为“(789)柒柒柒123三[三0]四五东”,表示“三”这张牌对于这位用户来说只有0张在系统的未发牌中。采用本节的编码方式后,用户可以很清晰地获得当前剩余牌的信息,可以提高用户的出牌速度。
如果在牌的编码中使用了汉字,那么一条短信中最多只能有70个字符。而对于麻将这种游戏,玩家在游戏中除了关心其它的玩家打了什么牌外,最关心的还是自己要的牌在自己没看见的牌中还剩几张。所以系统发往用户的当前剩余牌的编码中,可以加入用户当前未看见的牌的编码,为了减少这部分的编码长度,可以用数量词后跟牌的编码来实现,比如先由“4”开头,后跟所有这位用户还未看见的牌的数量为4的牌的编码,再以3开头加入剩余数量为3的牌的编码,依次到数量1,每个数量队列用分隔符隔开。比如可以是“4.二七15壹玖;3.一3捌;2.三6伍;1.九”。当然在刚开始打牌的时候,几乎每张牌的编码都会出现,这时可以在前几轮对看到的牌进行编码,后面几轮再对未看到的牌进行编码。采用本节编码方式后,用户可以更清晰地确定出自己出哪张牌更好。
因为麻将游戏中,一位玩家对于其它玩家打出来的牌更看重打出来什么牌,至于哪张牌是谁打的,则稍显忽视。所以可以对这位用户从上次出牌到这次再获得发牌权期间内其它用户出牌的编码前面省略用户编码,对于没有“吃碰杆”的牌,即打出来的“废牌”,按先后顺序列出,对“吃碰杆”的牌先按“吃碰杆”这三种动作的顺序,每个动作内再按牌的先后顺序列出牌的编码,其中每队牌的编码前面加上这对牌的动作编码,并且之间进行分隔。比如某玩家从上一轮打牌到这一轮开始打牌,下家打了一个“二”,对家吃了“二”摆出来了“一二三”的牌并打了“四”,上家是庄家打了一个“6”,被对家碰了并打了“7”,之后上家又打了一个“东”,这时,上面的信息的编码可以是“吃二;碰6;打四7东”加上分隔符只用了十个字符也说明了大部分的情况。如果照前述的编码方式可能是“下二;对吃二打四;庄6;对碰6打7;庄东”,用了20个汉字,对于一条短信只有70个汉字的约束是一个不小的挑战,如果加上前面的玩家当前牌信息和未看到牌信息,很有可能会突破70个字符的大关。所以对于麻将这种更强调“自我修炼”的娱乐,哪位玩家打什么牌可能并不是关键,这里面更关键的是“吃碰杆”的动作和结果,而不是进行动作的对象。所以上面的方法,还是一种有效的简化方式。采用本节编码方式后,用户可以清晰地确定出当前出牌的大部分情况,而系统则可以更加容易在一条短信中将用户所需的大部分信息发送给用户。
具体实施例方式
对于本方法的具体实施方式
,显然对于一些硬件,比如通信网络,是没有选择,毫无疑问是要使用现在有线或无线通信网络。通信终端用户可以自备。对于系统部分,也就是通信网关与应用服务器,计算机设备可以购买,但是配套的软件必须自己开发。为在先期节约投入成本,可以只用一台计算机实现通信网关与应用服务器。通信网关配套的软件可以根据运营商的接口规范来开发。应用服务器相关的软件可以分下面三个部分两分来实现1、用户的静态数据维护,主要是管理用户的注册信息;2、用户数据的动态管理,主要是为发送了开始游戏短信的用户匹配相当的用户,根据各位用户在一局游戏结束后的发向系统的信息,实现重新开始游戏或重新匹配用户;3、安排好一局游戏中的各用户之间的信息发送秩序,将编码规则与游戏规则转化为算法,检验用户的编码,记录下每局牌中发牌和出牌情况,保证编码的正确性与整个游戏的公平性。其中将游戏规则转化为算法可能是整个系统实现起来相对较难的部分,比如围棋,虽然游戏规则简单,但是由于棋形的千变万化,所以实现起来可能需要仔细研究,对此一个更好的办法就是购买一些现成的算法,或是现成的软件模块,这样既可以加快整个系统的开发进度,也避免了重复性劳动。
在中国象棋游戏中,可以采用如下的步骤、编码规则。
系统可以采用如下的编码规则将棋盘的10条横线从一根底线到另一根底线从下至上顺次用1至10这10个阿拉伯数字标注,同时也用英文字母“A”至“J”顺次标注。将9条竖线从左至右依次用用1至9这9个阿拉伯数字标注。规定红棋摆放在横线标注为1的一侧,绿棋摆放在横线标注为10的一侧。用户发往系统的一步棋的编码,先是原棋位的信息,再是新棋位的信息。每个棋位信息先输入横坐标,再输入纵坐标。横坐标可以采用对应的数字或对应的英文字母,纵坐标采用数字,所有编码之间不加分隔符。系统发往用户的一步棋编码中,先是棋子的汉字名称,后随原棋位编码,再随新棋位编码,原棋位和新棋位的编码之间加分隔符“->”,棋位编码中,横坐标采用英文字母,纵坐标采用数字,如果这步棋吃子,则加上汉字“吃”,后随所吃子的名称,如果这步棋将军,加上“将军”两字。
另外,系统还规定,除了须遵循中国象棋的游戏规则外,在游戏时必须两分钟之内走一步棋,各方都只有20分钟的走棋时间,编码错误的次数不能超过3次,否则判负。用户在下棋过程中可以发送“3”到系统认负,发送“4”到系统求和,发送“1”表示同意求和,发送“0”表示不同意求和。和棋不加分,胜一局加1分,负一局减一分。
系统采用如下的步骤第一步,用户自己准备好的棋具,摆放好已方和对方棋子。
第二步,用户发送“ZQ”到系统,表示开始中国象棋的游戏。
第三步,系统在等待开始游戏的用户ID队列中,提取顺序在第一位的用户ID,如果一位用户也没有则将该用户ID写入该队列,等待下一位开始中国象棋游戏的用户。
第四步,系统为用户匹配好对弈的用户后,发来的他使用棋的颜色。比如,系统向用户发送“您当前使用的是绿棋,对家ID15626,呢称东方不败,积分31,胜72负41和12”。
每五步,用户如果坐在棋盘的红棋方,则可以调转一下棋盘的方向,将绿棋置于自己的身边。如果系统指定他使用的是红棋,则在规定的时间内下出自己的第一步棋,并根据对一步棋进行编码的规则,编辑这步棋的短信然后发送到系统。如果这位用户第一步棋是将炮从C2位挪到了C5位上,则他可以发送“C2C5”或“3235”到系统。
第六步,系统对收到的短信进行检验,首先判断它是否违反了对一步棋的编码规则,再判断是否违反了游戏规则。如果有错误,系统将向用户提示错误,在错误中指明确切的错误原因。比如用户发送“3035”,系统则指明“您的编码错误,请重新发送!”;用户发送“3226”,系统则指明“您违反炮的走棋规则,请重新发送!”。给用户错误提示后,开始等待用户的下一条短信。如果没有错误,系统则将按系统发送给用户的短信格式重新编排,再发给他的对手。比如上步棋系统将转化为“炮C2->C5”。
第七步,下一位轮到走棋的用户收到系统发来的上一位用户的走棋信息的短信,根据短信内容在自己的棋具上走出对弈方的那步棋,然后考虑自己的应招,当下出自己的一步棋后,根据编码规则将这步棋编辑成短信后发送到系统。
第八步,依下棋秩序在各位用户之间重复第六、七步直到游戏结束。
第九步,结束游戏。当其中的一位用户出现下列情况后,系统为该用户结束游戏1、该用户发送系统“3”到系统;2、根据中国象棋游戏规则该用户吃了对方的“将”或“帅”,或者“将”或“帅”被对方吃掉;3、该用户在两分钟内还没下出一步棋;4、该用户二十分钟的下棋时间用完;5、该用户的编码错误的次数达到4次。
第十步,系统为每位用户根据游戏规则计算各自得分并登记,之后将得分情况发送给参于这次游戏的每位用户,并提示用户继续游戏发送“1”,退出游戏发送“0”。
之后系统将在设定的时间内比如两分等待刚才参于游戏的两用户开始游戏的短信,如果两位用户在两分钟内都表示重新开始则从系统继续游戏,否则将只为确定开始的用户重新匹配新的用户以开始新一轮的中国象棋游戏。
在围棋游戏中,可以采用如下的编码规则。
系统可以采用如下的编码规则将棋盘的19条横线从下至上顺次用1至19这19个阿拉伯数字标注。将19条竖线从左至右依次用用1至19这19个阿拉伯数字标注,同时也用英文字母“a”至“h”顺次标注。用户发往系统的一步棋的编码,只有新棋位的信息,先输入横坐标,再输入纵坐标。横坐标可以采用对应的数字,纵坐标采用对应的数字或英文字母。如果纵坐标采用英文字母,则编码之间不加分隔符。如果纵坐标采用数字,可以在编码之间加任何非“0”至“9”的字符作为分隔符,比如“4.14”;或者,不加分隔符,而对横纵坐标,标注为“1”至“9”这九条线的单数字编码前加上“0”,比如“0414”。系统发往用户的一步棋编码中,横坐标采用数字,纵坐标采用英文字母,如果这步棋提子,则加上汉字“提子”,两字之间再加上所提子数量的阿拉伯数字。
另外,系统还规定,除了须遵循围棋的游戏规则外,在游戏时必须五分钟之内走一步棋,各方都只有一个小时的走棋时间,编码错误的次数不能超过5次,否则判负。用户在下棋过程中可以发送“3”到系统认负,发送“4”到系统求和,之后对方发送“1”表示同意求和,发送“0”表示不同意求和。发送5到系统表示和棋不加分,胜一局加1分,负一局减一分。
在国际象棋游戏中,可以采用如下的编码规则。
系统可以采用如下的编码规则将棋盘的8条横格从下至上顺次用1至8这8个阿拉伯数字标注。将8条竖格从左至右依次用用1至8这8个阿拉伯数字标注,同时也用英文字母“A”至“S”顺次标注。用户发往系统的一步棋的编码,先是原棋位的信息,再是新棋位的信息。每个棋位编码,先输入横坐标,再输入纵坐标。横坐标可以采用对应的数字,纵坐标采用对应的数字或英文字母。系统发往用户的一步棋编码中,先是棋子的名称编码,后随原棋位编码,再随新棋位编码,原棋位和新棋位的编码之间加分隔符“->”,棋位编码中,横坐标采用数字,纵坐标采用英文字母,如果这步棋吃子,则加上“吃”这个动作的编码,后随所吃子的名称编码,如果这步棋将军,加上“将军”这个动作的编码。
另外,系统还规定,除了须遵循国际象棋的游戏规则外,在游戏时必须五分钟之内走一步棋,各方都只有一个小时的走棋时间,编码错误的次数不能超过5次,否则判负。用户在下棋过程中可以发送“3”到系统认负,发送“4”到系统求和,之后对方发送“1”表示同意求和,发送“0”表示不同意求和。发送5到系统表示和棋不加分,胜一局加1分,负一局减一分。
在军棋游戏中,可以采用如下的步骤、编码规则。
系统可以采用如下的编码规则将棋盘的12条横线从一根底线到另一根底线从下至上顺次用1至12这12个阿拉伯数字标注,同时也用大写英文字母“A”至“L”顺次标注。将5条竖线从左至右依次用1至5这5个阿拉伯数字标注。规定红棋摆放在横线标注为1的一侧,白棋摆放在横线标注为12的一侧。用户发往系统的一步棋的编码,先是原棋位的信息,再是新棋位的信息。每个棋位信息先输入横坐标,再输入纵坐标。横坐标可以采用对应的数字或对应的英文字母,纵坐标采用数字,所有编码之间不加分隔符,如果横坐标采用数字方式,在个位数的横坐标坐标编号前加“0”。系统发往用户的一步棋编码中,先是原棋位编码,再随新棋位编码,原棋位和新棋位的编码之间加分隔符“->”,棋位编码中,横坐标采用英文字母,纵坐标采用数字,如果这步棋吃了子,则加上汉字“吃”,后随所吃子的名称,如果这步棋“碰死”,则系统向这步棋的用户指明他的哪颗棋“碰死”了,如果与对方的棋子同归于尽,则系统向用户指明,他的哪颗子与对方的哪颗棋子同归于尽了。
对于布阵信息,系统规定按照“司令”至“工兵”、“地雷”、“炸弹”24枚子的顺序,在短信中将顺序写入上述24枚棋子在布阵中的棋位信息,每个棋子的棋位编码之可加分隔符,也可以不加,如果不加分隔符且横坐标采用数字方式,则在个位数的横坐标坐标编号前加“0”。
另外,系统还规定,除了须遵循军棋的游戏规则外,在游戏时必须两分钟之内走一步棋,各方都只有20分钟的走棋时间,编码错误的次数不能超过3次,否则判负。用户在下棋过程中可以发送“3”到系统认负,发送“4”到系统求和,被求和方在收到求和短信后,回复“1”表示同意求和,回复“0”表示不同意求和。和棋不加分,胜一局加1分,负一局减一分。
系统采用如下的步骤第一步,用户自己准备好的棋具,摆放好已方和对方棋子。
第二步,用户发送“3”到系统,表示开始中国象棋的游戏。
第三步,系统在等待开始游戏的用户ID队列中,提取顺序在第一位的用户ID,如果一位用户也没有则将该用户ID写入该队列,等待下一位开始中国象棋游戏的用户。
第四步,系统为用户匹配好对弈的用户后,发来的他使用棋的颜色,并提醒用户开始布阵。比如,系统向用户发送“您当前使用的是白棋,请布阵。对家ID15626,呢称东方不败,积分31,胜72负41和12”。
第五步,用户如果坐在棋盘的红棋方,则可以调转一下棋盘的方向,将白棋置于自己的身边。接下来调整自己棋子在自己布阵区的棋位,调整完毕后根据前述系统的规定,将布阵短信发给系统。
第六步,系统检查用户的布阵短信是否有错误,如果有错,发送描述错误详情的短信给用户,要求用户据此将布阵短信改正再发回系统。如果双方都没有错误,系统发送短信给持红棋的用户,请求他走出自己的每一步棋。
第七步,持红棋的用户,则在规定的时间内下出自己的第一步棋,并根据对一步棋进行编码的规则,编辑这步棋的短信然后发送到系统。
第八步,系统对收到的短信进行检验,首先判断它是否违反了对一步棋的编码规则,再判断是否违反了游戏规则。如果有错误,系统将向用户提示错误,在错误中指明确切的错误原因。给用户错误提示后,开始等待用户的下一条短信。如果没有错误,系统将按前述系统发送给用户的短信格式重新编排。具体来讲,系统将棋位中横坐标的数字替换成相应的字母,然后在两个棋位编码之间加上“->”,如果这步棋没有发生碰子情况,则就将此编码发给这位用户的对弈方。如果有碰子情况,1、走棋方的棋子死,则在前述编码前再加这枚棋子的汉字名称,末尾加上“碰死”字样;2、走棋方的棋子生,对弈方的棋子死,则在前述编码末尾加碰死的棋子的汉字名称,再加上“死”字样;3、走棋方与对弈方的棋子同归于尽,则在前述编码前再加这枚棋子的汉字名称,末尾加上对弈方一同碰死的棋子的汉字名称。同时,如果有碰子情况,可以在将这位用户的走棋信息发送给他的对弈方后,也马上将碰子的结果发回给这位用户。可用“X棋YY死”的格式描述每一颗碰死的棋子,其中,X表示碰死的棋子的颜色,为“红”或“白”,YY棋子的汉字名称。
第九步,下一位轮到走棋的用户收到系统发来的上一位用户的走棋信息的短信,根据短信内容在自己的棋具上走出对弈方的那步棋,如果有碰子情况,双方根据短信中的碰子信息,将相应的棋子拿到。然后轮到走棋的用户考虑自己的应招,当下出自己的一步棋后,根据编码规则将这步棋编辑成短信后发送到系统。
第十步,依下棋秩序在各位用户之间重复第八步与第九步直到游戏结束。
第十一步,结束游戏。当其中的一位用户出现下列情况后,系统为该用户结束游戏1、该用户发送“3”到系统;2、根据军棋游戏规则一方取胜;3、该用户在两分钟内还没下出一步棋;4、该用户二十分钟的下棋时间用完;5、该用户的编码错误的次数达到4次。
第十二步,系统为每位用户根据游戏规则计算各自得分并登记,之后将得分情况发送给参于这次游戏的两位用户,并提示用户继续游戏发送“1”,退出游戏发送“0”。
之后系统将在设定的时间内比如两分钟内等待刚才参于游戏的两用户开始游戏的短信,如果两位用户在两分钟内都表示重新开始则继续游戏,否则将只为确定开始的用户重新匹配新的用户以开始新一轮的军棋游戏。
在“斗地主”扑克游戏中,可以采用如下的步骤、编码规则。
对打出的一手牌,用户发往系统的编码采用数字式编码方式,即不分花色,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,对“A、J、Q、K”在编码中依次为“1、11、12、13”,黑白王牌和彩色王牌在编码依次用“14、15”替换,对一手牌编码时,只须在短信中依次键入每张牌所对应的数字,牌的编码之间可加也可不加非数字分隔符。对打出的一手牌,系统发给用户的短信中,也不分花色,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,黑白王牌和彩色王牌在编码依次用英文字母“X、Y”替换,对于顺子牌按从大到小的顺序排列每张牌,对于三带一或四带二的牌,主牌在前,带牌在后,主牌与带牌之间加空格符作分隔;每手牌之前加用户座次,用汉字“庄、上、下”表示,分别代表庄家、上家、下家;如果前一轮中某个用户未出牌,则在用户的座次后面加“0”表示。
系统发往用户的当前剩余牌的编码,不分花色,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,黑白王牌和彩色王牌在编码依次用英文字母“X、Y”替换,按从大到小的顺序排列每张牌,即按“YX2AKQJ109876543”的顺序,每张牌的编码之间不加分隔符。
另外,系统还规定,在游戏时两分钟之内必须出牌,编码错误的次数不能超过3次,否则判负。
第一步,用户发送“DDZ”到系统,表示开始“斗地主”游戏。
第二步,系统在等待开始游戏的用户ID队列中,提取顺序在前两位的用户ID,如果等待用户数不到两家,则将该用户ID写入该队列,等待足够多家的用户。匹配成功后,为各位用户设定方位,即三人之间的上下家关系。然后系统为各位用户发牌。发完牌后将每位用户所得牌的情况,根据剩余牌的编码规则将每位用户分得牌的信息编辑成短信,连同方位信息一起发送它们给它们各自的用户。
第三步,用户根据自己当前剩余牌(也就是第三步中的所得牌)的信息,决定自己是否叫分,叫几分。不叫分则发送“0”至系统,叫分则将所叫分数的数字发送到系统。
第四步,系统将叫分达到最高分的用户设为庄家,如果达到最高分的用户有多位或者当前最高分的用户有多位,系统则再根据发送短信的次序,确定次序在先的为庄家。系统将超时未发送叫分信息的用户的叫分设为没叫分,如果都没叫分,本局作废,发送作废短信到各位用户,等待各位用户重新开始。庄家确定后,系统将剩余还未发出的属于庄家的三张牌按剩余牌的编码方式编辑成短信后与所确定的庄家信息一起发给所有这局牌的非庄家的两位用户,而庄家收到的是插入了这三张牌的所有当前剩余牌的编码,庄家凭此信息进行出牌。
第五步,庄家将自己出的第一手牌按前述数字式方式编码,也可以采用系统发往用户的一手牌的方式编码,编辑成短信后,发送到系统。
第六步,系统首先检查编码的格式是否正确,再检查短信内所包含的牌是不是这位用户的,最后检查所出的牌是否符合当前游戏的游戏规则。如果没错误,进入下一步。
第七步,系统将一位用户出牌后,再次获得发牌权这前,其它两位用户的出牌信息按系统发给用户的编码方式编码,再加上他的当前剩余牌的编码,然后发送到这位用户。
第八步,轮到发牌权的用户根据其它用户的出牌情况,及自己当前剩余牌的信息,将自己要出的一手牌按数字式方式编码,编辑成短信后,发送到系统。
第九步,在本局牌的各位用户之间重复第六、七、八步。
第十步,当出现下列情况时,游戏结束1、任何一位用户将自己的牌出完;2、一位用户在规定的时间内未出牌;3、一位用户的编码错误达到4次。
在“升级”扑克游戏中,可以采用如下的步骤、编码规则。
对打出的一手牌,用户发往系统的编码采用数字式编码方式,将四种花色“黑桃、红心、梅花、方块”依次分别用“1、2、3、4”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,对“A、J、Q、K”在编码中依次为“1、11、12、13”,黑白王牌和彩色王牌在编码依次用“14、15”替换,对一手牌编码时,先在短信中键入这手牌中的一种花色编码,再键入这个花色下每张牌的点数,然后是第二种花色的编码及这个花色下每张牌的点数,直到输入完这手牌中每一种花色和这个花色下的每张牌的点数;黑白王牌和彩色王牌对应的数字编码,可以在任何花色的队列中出现。每个花色队列之间必须使用非数字符作为分隔符,点数之间不使用分隔符。对打出的一手牌,在系统发给用户的短信中,将花色“黑桃、红心、梅花、方块”依次分别用“黑、红、梅、方”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,黑白王牌和彩色王牌在编码依次用英文字母“X、Y”替换,也和用户发往系统的编码一样,先将一种花色和它下面的点数输完再输另种花色和它下面的点数;黑白王牌和彩色王牌对应的数字编码,可以在任何花色的队列中出现;每手牌之前加用户座次,用汉字“庄、上、对、下”表示,分别代表庄家、上家、下家、对家。
系统发往用户的当前剩余牌的编码,将花色“黑桃、红心、梅花、方块”依次分别用“黑、红、梅、方”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,黑白王牌和彩色王牌在编码依次用英文字母“X、Y”替换;编码时,先对剔除所有“特殊”“将牌”之后的牌,如前一样,按各个花色队列将这些牌编码,这里的“特殊”“将牌”指的是这些牌,如果庄家打“9”则点数为“9”与“2”的牌还有黑白王牌和彩色王牌都是“特殊”“将牌”;再对“特殊”“将牌”,如前一样,按各个花色队列将这些牌编码。
另外,系统还规定,在游戏时两分钟之内必须出牌,编码错误的次数不能超过3次,否则判负。
第一步,用户发送“SJ”到系统,表示开始“升级”游戏。
第二步,系统在等待开始游戏的用户ID队列中,提取顺序在前三位的用户ID,如果等待用户数不到三家,则将该用户ID写入该队列,等待足够多家的用户。匹配成功后,为各位用户设定方位,即四人之间的上下家关系。然后系统为各位用户发牌。发完牌后将每位用户所得牌的情况,根据剩余牌的编码规则将每位用户分得牌的信息编辑成短信,连同方位信息一起发送它们给它们各自的用户。
第三步,用户根据自己当前剩余牌的信息,决定“将牌”叫成什么花色,并发花色编码到系统。用王牌叫花色则发送“5”至系统。
第四步,系统先剔除无效的花色编码,再根据用户所发的牌(也可称这为剩余牌)的情况,按“升级”游戏的规则,确定谁的花色大,再根据收到短信的先后顺序,确定这局牌“将牌”的花色。如果这一局是这四位用户的第一局,则将确定“将牌”花色的用户也设定为庄家。之后,系统将剩余还未发出的属于庄家的八张牌加入当前剩余牌一起编码后发给庄家,庄家凭此信息扣底牌。
第五步,庄家将自己要扣的底牌按要出的一手牌的数字式编码,或按系统发往用户的编码格式编码,之后发送给系统,系统确认没有错误后发送短信到用户提示他出牌。
第六步,庄家将自己出的第一手牌按前述数字式方式编码,或按系统发往用户的编码格式编码,编辑成短信后,发送到系统。
第七步,系统首先检查编码的格式是否正确,再检查短信内所包含的牌是不是这位用户的,最后检查所出的牌是否符合当前游戏的游戏规则。如果没错误,进入下一步。
第八步,系统将一位用户出牌后,再次获得发牌权之前,其它三位用户的出牌信息按系统发给用户的编码方式编码,然后发送到这位用户,每手牌的前后顺序按出牌的先后顺序排列,也就是即使这期间一位用户出了两手牌,如果它们之间有其它用户出牌,那么这两手牌会按先后顺序隔开。同时发送的还有这位用户的当前剩余牌的编码,以及闲家当前的捡分分数。如果用户不是一轮出牌中第一位出牌的用户,并且他当前剩余牌有足够多这一轮出牌花色的牌,则发向他的当前剩余牌的编码,可以不发送其它花色编码的牌,只发送这一轮出牌花色的牌,比如,在一轮中第一位出牌的用户出了一个“黑桃A”,并且第三位出牌的用户还有两张“黑桃”花色的牌,则这一轮轮到他出牌时,系统可以只发送他当前剩余牌中花色为“黑桃”的几张牌的编码。
第九步,轮到发牌权的用户根据其它用户的出牌情况,和自己当前剩余牌的信息,将自己要出的一手牌按数字式方式编码,或按系统发往用户的编码格式编码,编辑成短信后,发送到系统。
第十步,在本局牌的各位用户之间重复第七、八、九步。
第十一步,当出现下列情况时,游戏结束1、所有用户将自己的牌出完;2、一位用户在规定的时间内未出牌;3、一位用户的编码错误达到4次。
如果闲家扣底成功,则重新统计捡分分数。最后根据捡分分数确定这局的输赢。
在“三打哈”扑克游戏中,可以采用如下的步骤、编码规则。
“三打哈”游戏是湖南地区流行的一种扑克玩法,类似于“升级”,区别在于“三打哈”中庄家只一人,其它玩家都是闲家,庄家通过叫分取得资格,“将牌”花色由庄家定。
对打出的一手牌,用户发往系统的编码采用数字式编码方式,将四种花色“黑桃、红心、梅花、方块”依次分别用“1、2、3、4”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,对“A、J、Q、K”在编码中依次为“1、11、12、13”,黑白王牌和彩色王牌在编码依次用“14、15”替换,对一手牌编码时,先在短信中键入这手牌中的一种花色编码,再键入这个花色下每张牌的点数,然后是第二种花色的编码及这个花色下每张牌的点数,直到输入完这手牌中每一种花色和这个花色下的每张牌的点数;黑白王牌和彩色王牌对应的数字编码,可以在任何花色的队列中出现。每个花色队列之间必须使用非数字符作为分隔符,点数之间不使用分隔符。对打出的一手牌,在系统发给用户的短信中,将花色“黑桃、红心、梅花、方块”依次分别用“黑、红、梅、方”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,黑白王牌和彩色王牌在编码依次用英文字母“X、Y”替换,也和用户发往系统的编码一样,先将一种花色和它下面的点数输完再输另种花色和它下面的点数;黑白王牌和彩色王牌对应的数字编码,可以在任何花色的队列中出现;每手牌之前加用户座次,用汉字“庄、上、对、下”表示,分别代表庄家、上家、下家、对家。
系统发往用户的当前剩余牌的编码,将花色“黑桃、红心、梅花、方块”依次分别用“黑、红、梅、方”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,黑白王牌和彩色王牌在编码依次用英文字母“X、Y”替换;编码时,先对剔除所有“特殊”“将牌”之后的牌,如前一样,按各个花色队列将这些牌编码,这里的“特殊”“将牌”指的是这些牌,如果庄家打“9”则点数为“9”与“2”的牌还有黑白王牌和彩色王牌都是“特殊”“将牌”;再对“特殊”“将牌”,如前一样,按各个花色队列将这些牌编码。
另外,系统还规定,在游戏时两分钟之内必须出牌,编码错误的次数不能超过3次,否则判负。庄家在出牌过程中可以发送“3”到系统认负,闲家发送“1”表示同意庄家认负,发送“0”表示不同意庄家认负。
第一步,用户发送“SDH”到系统,表示开始“三打哈”游戏。
第二步,系统在等待开始游戏的用户ID队列中,提取顺序在前三位的用户ID,如果等待用户数不到三家,则将该用户ID写入该队列,等待足够多家的用户。匹配成功后,为各位用户设定方位,即四人之间的上下家关系。然后系统为各位用户发牌。发完牌后将每位用户所得牌的情况,根据剩余牌的编码规则将每位用户分得牌的信息编辑成短信,连同方位信息一起发送它们给它们各自的用户。
第三步,用户根据自己当前剩余牌的信息,将所叫分数发送到系统。
第四步,系统将第一轮的叫分情况发送到每一位用户,并提示各位用户继续叫分,每位用户同时还将收到各自当前剩余牌编码。
第五步,重复第三、四步,直到后一轮中只出现一个最低分,或者前后两轮的最低分都一样,这时,设定庄家为后轮中唯一最低分的用户或者后一轮中先被系统发送短信的最低分用户为庄家。
第六步,系统将庄家的方位信息告诉其它三位用户,并用短信通知庄家决定“将牌”的花色。
第七步,庄家发花色编码到系统。“无花色”则发送“5”至系统。
第八步,系统将剩余还未发出的属于庄家的八张牌插入当前剩余牌一起编码后发给庄家,庄家凭此信息扣底牌。
第九步,庄家将自己要扣的底牌按要出的一手牌的数字式编码,或按系统发往用户的编码格式编码,之后发送给系统,系统确认没有错误后发送短信到用户提示他出牌。
第十步,庄家将自己出的第一手牌按前述数字式方式编码,或按系统发往用户的编码格式编码,编辑成短信后,发送到系统。
第十一步,系统首先检查编码的格式是否正确,再检查短信内所包含的牌是不是这位用户的,最后检查所出的牌是否符合当前游戏的游戏规则。如果没错误,进入下一步。
第十二步,系统将一位用户出牌后,再次获得发牌权这前,其它三位用户的出牌信息按系统发给用户的编码方式编码,然后发送到这位用户,每手牌的前后顺序按出牌的先后顺序排列,也就是即使这期间一位用户出了两手牌,如果它们之间有其它用户出牌,那么这两手牌会按先后顺序隔开。同时发送的还有这位用户的当前剩余牌的编码,以及闲家当前的捡分分数。如果用户不是一轮出牌中第一位出牌的用户,并且他当前剩余牌有足够多,这一轮出牌花色的牌,则发向他的当前剩余牌的编码,可以不发送其它花色编码的牌,只发送这一轮出牌花色的牌,比如,在一轮中第一位出牌的用户出了一个“黑桃A”,并且第三位出牌的用户还有两张“黑桃”花色的牌,则这一轮轮到他出牌时,系统可以只发送他当前剩余牌中花色为“黑桃”的几张牌的编码。
第十三步,轮到发牌权的用户根据其它用户的出牌情况,和自己当前剩余牌的信息,将自己要出的一手牌按数字式方式编码,或按系统发往用户的编码格式编码,编辑成短信后,发送到系统。
第十四步,在本局牌的各位用户之间重复第十一、十二、十三步。
第十五步,当出现下列情况时,游戏结束1、所有用户将自己的牌出完;2、一位用户在规定的时间内未出牌;3、一位用户的编码错误达到4次;4、庄家认输,闲家表示同意。
如果闲家扣底成功,则重新统计捡分分数。最后根据捡分分数确定这局的输赢,再根据输赢情况为这局的游戏各方累计积分。
在“拱猪”扑克游戏中,可以采用如下的步骤、编码规则。
对打出的一手牌,用户发往系统的编码采用数字式编码方式,将四种花色“黑桃、红心、梅花、方块”依次分别用“1、2、3、4”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,对“A、J、Q、K”在编码中依次为“1、11、12、13”,对一手牌编码时,先在短信中键入这手牌中的一种花色编码,再键入这个花色下每张牌的点数,然后是第二种花色的编码及这个花色下每张牌的点数,直到输入完这手牌中每一种花色和这个花色下的每张牌的点数。每个花色队列之间必须使用非数字符作为分隔符,点数之间不使用分隔符。对打出的一手牌,在系统发给用户的短信中,将花色“黑桃、红心、梅花、方块”依次分别用“黑、红、梅、方”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”,也和用户发往系统的编码一样,先将一种花色和它下面的点数输完再输另种花色和它下面的点数;每手牌之前加用户座次,用汉字“上、对、下”表示,分别代表上家、下家、对家。
系统发往用户的当前剩余牌的编码,将花色“黑桃、红心、梅花、方块”依次分别用“黑、红、梅、方”代替,保持点数为“2、3、4、5、6、7、8、9、10”的牌编码依然为对应的阿拉伯数字,“A、J、Q、K”在编码中依然为“A、J、Q、K”;编码时,如前一样,按各个花色队列将这些牌编码。
另外,系统还规定,在游戏时两分钟之内必须出牌,编码错误的次数不能超过3次,否则判负。
第一步,用户发送“GZ”到系统,表示开始“拱猪”游戏。
第二步,系统在等待开始游戏的用户ID队列中,提取顺序在前三位的用户ID,如果等待用户数不到三家,则将该用户ID写入该队列,等待足够多家的用户。匹配成功后,为各位用户设定方位,即四人之间的上下家关系。然后系统为各位用户发牌。发完牌后将每位用户所得牌的情况,根据剩余牌的编码规则将每位用户分得牌的信息编辑成短信,连同方位信息一起发送它们给它们各自的用户。
第三步,用户根据自己当前剩余牌的信息,决定自己是否亮牌,然后将要亮牌的编码按照数字式方式编码,或按系统发往用户的编码格式编码后发送到系统。
第四步,系统将规定时间内收到的亮牌的信息编辑成短信,然后发送给所有用户,并提示按游戏规则先出牌的用户出牌。
第五步,第一位出牌的用户将自己出的第一手牌按前述数字式方式编码,或按系统发往用户的编码格式编码,编辑成短信后,发送到系统。
第六步,系统首先检查编码的格式是否正确,再检查短信内所包含的牌是不是这位用户的,最后检查所出的牌是否符合当前游戏的游戏规则。如果没错误,进入下一步。
第七步,系统将一位用户出牌后,再次获得发牌权之前,其它三位用户的出牌信息按系统发给用户的编码方式编码,然后发送到这位用户,每手牌的前后顺序按出牌的先后顺序排列,也就是即使这期间一位用户出了两手牌,如果它们之间有其它用户出牌,那么这两手牌会按先后顺序隔开。同时发送的还有这位用户的当前剩余牌的编码,以及四位用户获得分牌情况。系统在描述用户所获分牌情况时,获得的分牌按当前剩余牌的规则进行编码,前面再加上用户名称或座次。
第八步,轮到发牌权的用户根据其它用户的出牌情况,和自己当前剩余牌的信息,将自己要出的一手牌按数字式方式编码,编辑成短信后,发送到系统。
第九步,在本局牌的各位用户之间重复第六、七、八步。
第十步,当出现下列情况时,游戏结束1、所有用户将自己的牌出完;2、一位用户在规定的时间内未出牌;3、一位用户的编码错误达到4次。
在“麻将”游戏中,可以采用如下的步骤、编码规则。
对打出的一手牌,用户发往系统的编码采用数字式编码方式,将四种花色“筒、条、万、风”依次分别用“0、1、2、3”代替,前三种花色点数为“1、2、3、4、5、6、7、8、9”的牌编码依然为对应的阿拉伯数字,对“东、西、南、北、中、发、白”设定它们的点数在编码中依次为“6、4、8、2、5、7、9”,因为打出来的每一手牌就是一张牌,所以编码时,先在短信中键入这张牌的点数编码,再输入这张牌的花色编码。在系统发往用户的短信中,使用下述的方式对牌编码将“万”花色的九张牌从小到大依次用小写汉字数字“一、二、三、四、五、六、七、八、九”表示,将“条”花色的九张牌从小到大依次用阿拉伯数字“1、2、3、4、5、6、7、8、9”表示,将“筒”花色的九张牌从小到大依次用大写汉字数字“壹、贰、叁、肆、伍、陆、柒、捌、玖”表示,将“东、西、南、北、中、发、白”依然保持为“东、西、南、北、中、发、白”;当系统将出牌权切换到一位用户时,系统将包含下列信息的编码发送到用户1、用户当前的剩余牌,包括其它用户看不见的暗牌,和经过“吃碰杆”后其它用户可以看见的明牌;2、系统发给用户的牌,或者可以通过“吃碰杆”获得的牌;3、当前这位用户还未看到的牌的编码和数量;4、从上一次出牌到本次再次获得出牌权之间,其它用户所打的经过“吃碰杆”的牌,和没有被“吃碰杆”的牌;上述这些系统发给用户的信息总称为当前牌信息。用户的暗牌先分花色,每种花色内再按点数从小到大排列。用户的明牌按“吃碰杆”的顺序将每组牌列出,每组牌内再按点数从小到大排列,所有的暗牌用圆括号“()”括起来,以和暗牌区分。用户可以“吃碰杆”的牌和系统发给用户的牌,系统将它视为一张暗牌,在编码时按花色和点数插入暗牌队列,并将它用方括号括起来,将它从暗牌中区分出来,并且在右方括号前加上这张牌这位用户还未看到的张数的阿拉伯数字。比如,“(789)柒柒柒123三[三0]四五东”,表示用户“吃”了一组“789”的牌,当前有暗牌“柒柒柒123三四五东”,系统发给了用户一张“三”,这张“三”这位用户还未看到的数量只有0张了。用户当前未看见的牌的编码,可以用数量词后跟牌的编码来实现,先由“4”开头,后跟所有这位用户还未看见的牌的数量为4的牌的编码,再以3开头加入剩余数量为3的牌的编码,依次到数量1,每个数量队列用分隔符隔开,比如“4.二七15壹玖;3.一3捌;2.三6伍;1.九”。当然在刚开始打牌的时候,几乎每张牌的编码都会出现,这时可以在前几轮对看到的牌进行编码,后面几轮再对未看到的牌进行编码。对这位用户从上次出牌到这次再获得发牌权期间内其它用户出牌的编码前面省略用户编码,对于没有“吃碰杆”的牌,即打出来的“废牌”,按先后顺序列出,对“吃碰杆”的牌先按“吃碰杆”这三种动作的顺序,动作内再按先后顺序列出牌的编码,其中每队牌的编码前面加上这对牌的动作编码,并且之间进行分隔。比如某玩家从上一轮打牌到这一轮开始打牌,下家打了一个“二”,对家吃了“二”摆出来了“一二三”的牌并打了“四”,上家是庄家打了一个“6”,被对家碰了并打了“7”,之后上家又打了一个“东”,这时,上面的信息的编码可以是“吃二;碰6;打四7东”。
另外,系统还规定,在游戏时两分钟之内必须发送打牌相关指令,编码错误的次数不能超过3次,否则判负。
第一步,用户发送“MJ”到系统,表示开始“麻将”游戏。
第二步,系统在等待开始游戏的用户ID队列中,提取顺序在前三位的用户ID,如果等待用户数不到三家,则将该用户ID写入该队列,等待足够多家的用户。匹配成功后,为各位用户设定方位,即四人之间的上下家关系,并确定庄家。然后系统为各位用户发牌。发完牌后将每位用户所得牌的情况,根据剩余牌的编码规则将每位用户分得牌的信息编辑成短信,连同方位信息、庄家信息一起发送它们给它们各自的用户,其中庄家获得十四张牌,其它庄家十三张牌。
第三步,第一位出牌的用户根据当前牌信息,可以“杆”牌,“胡”牌,也可以打出一张牌。如果“杆”牌,则发送“3”及要“杆”的牌的编码发送到系统,系统随后发送加入了新发的牌的当前牌信息的编码给用户,用户根据新的当前牌信息重新出牌。如果“胡”牌,则发送“4”到系统。如果要打出一张牌,则将要打的牌按阿拉伯数字式或按系统发往用户的编码格式编码后,发送到系统。
第四步,系统首先检查编码的格式是否正确,如果用户要求“胡”牌,则根据麻将游戏规则检查用户是否能“胡”牌,如果确实能“胡”牌,则本局游戏结束。如是打出一张牌,再检查短信内所包含的牌是不是这位用户的暗牌,最后检查所出的牌是否符合当前游戏的游戏规则。如果没错误,进入下一步。
第五步,如果有其它用户根据麻将游戏规则可以“吃碰杆”这张牌,则系统按游戏规则中的“吃碰杆”的顺序选择顺序排前的用户,将这位用户的当前牌信息发送给这位用户,并提示用户是否“吃碰杆”这张牌,用户如果“吃”张牌,发送“1”后随“吃”后要打的牌的编码,如果“碰”这张牌,则发送“2”后随“碰”后要打的牌的编码,如果“杆”这张牌则发送“3”及要“杆”的牌的编码发送到系统,系统随后发送加入了新发的牌的当前牌信息的编码给用户,用户根据新的当前牌信息重新出牌。用户也可以发送“0”到系统表示不“吃碰杆”,则系统按游戏规则中的“吃碰杆”的顺序选择顺序随后的用户,将这位用户的当前牌信息发送给这位用户,并提示用户是否“吃碰杆”这张牌。对于“吃碰杆”后,用户新打出的牌,系统再按本步骤的方法再执行一次。直到根据麻将游戏规则再也没有用户能够“吃碰杆”,然后进入下一步。在用户发往系统短信中牌的编码可以采用数字式编码方式,也可以采用系统发往用户的编码格式第六步,系统为获得出牌权的用户发一张牌,然后将这位用户的当前牌信息发送给用户,用户这时可以“杆”牌,“胡”牌,也可以打出一张牌。如果“杆”牌,则发送“3”及要“杆”的牌的编码发送到系统,系统随后发送加入了新发的牌的当前牌信息的编码给用户,用户根据新的当前牌信息重新出牌。如果“胡”牌,则发送“4”到系统。如果要打出一张牌,则将要打的牌的编码发送到系统。在用户发往系统短信中牌的编码可以采用数字式编码方式,也可以采用系统发往用户的编码格式第七步,在本局牌的各位用户之间重复第四、五、六步。
第八步,当出现下列情况时,游戏结束1、一位用户的“胡”牌要求通过了系统的检查;2、一位用户在规定的时间内未出牌;3、一位用户的编码错误达到4次;4、所有的未发牌都发完了,并且没有用户提出“胡”牌请求;5、一位用户的“胡”牌要求没通过系统的检查。
在字牌游戏中,系统发往用户的短信中,依然使用“一”至“十”代替牌“一”至“十”,使用“壹”至“拾”代替牌“壹”至“拾”,用户发往系统的短信中依然可以使用上述每张牌的编码方式,或者将牌“一”至“十”花色编码定为“1”,将牌“壹”至“拾”花色编码定为“2”,在输入一张牌编码时先输入花色编码,再输入这张牌汉字数字所对应的阿拉伯数字。
权利要求
1.一种使用短信进行棋类和牌类游戏的方法,由通信终端、通信网络、短信网关、应用服务器组成,短信网关与应用服务器合称为系统,其特征在于,用户与系统之间使用短信进行通讯,至少包括以下几个步骤A、进行棋类游戏的用户准备好棋具;B、开始步骤,用户必须发送系统指定的表示开始的短信到系统;C、系统为表示开始游戏的用户匹配足够多位的用户组成游戏的各方;D、系统为进行牌类游戏的用户发牌,将各位用户分得的牌编码后发送到相应的用户;E、用户将自己的走棋信息或出牌信息编码后发送到系统;F、系统对收到的用户的走棋或出牌短信进行检查,确定是否有编码错误或违反了游戏规则;G、如果用户的走棋或出牌短信有编码错误或违反了游戏规则,系统将提示用户错误,要求用户重新发送;H、如果用户的走棋或出牌短信没有编码错误和不违反游戏规则,系统将它再转发给本局游戏中其他几位用户;I、在各位用户之间重复E、F、G、H直到游戏结束;其特征还在于,走棋短信的内容包括所走一步棋子的原棋位信息和新棋位信息,或者包括棋子信息和新棋位信息。
2.一种使用短信进行棋类和牌类游戏的方法,其特征在于,包含权利要求1中方法的所有特征,其特征还在于,系统发往用户的出牌信息还包括接受出牌信息用户的当前剩余牌信息。
3.一种使用短信进行棋类和牌类游戏的方法,其特征在于,包含权利要求1中方法的所有特征,其特征还在于,用户发往系统的走棋信息可以采用全阿拉伯数字方式编码。全阿拉伯数字编码方式的特征在于,一步棋编码采用下面的编码方式“AB”、“BA”、“CB”或“BC”式,其中A代表原棋位这个元素的编码,B代表新棋位这个元素的编码,C代表棋子这个元素的编码。棋位元素的编码又由分区号这个元素和在这个分区内的棋位编码这个元素组成,当没有分区时,分区号元素去掉。分区内的棋位这个元素编码又由横坐标元素和纵坐标元素组成,或者就是一个整数组成。以上的每个元素之间可以输入非数字符作为分隔符,也可以不输入。系统可以指定包含以上各格式中的各元素但元素顺序不同的编码方式;当以上元素中,如果中间有两个元素的编码的最大数值都为十位数组成的,也就都是由多于一个阿拉伯数字的多个阿拉伯数字组成,则在不同元素的编码之间加上任一非数字符号作为分隔符,或者将这种最大值为多位数的元素的编码中的位数小于最大值位数的编码的前面补上足够多的“0”,使得组成它的编码的数字的个数等于最大值位数。
4.一种使用短信进行棋类和牌类游戏的方法,其特征在于,包含权利要求1中方法的所有特征,其特征还在于,系统将用户发来的走棋信息进行处理后再发送给其他用户。处理方法的特征在于,处理可以包括以下一个或几个方法A、如果当前的棋类游戏由多于两个玩家的用户组成,则在数字式编码前加上玩家的名称或编码;B、将数字式编码中的各元素用非数字符与非英文字母符作为分隔符进行分隔;C、将编码中部分元素的编码替换成英文字母;D、加上这步棋的棋子名称或编码;E、加上这步棋的吃子情况或将要吃子的情况。
5.一种使用短信进行棋类和牌类游戏的方法,其特征在于,包含权利要求1中方法的所有特征,其特征还在于,在扑克游戏中,在用户发往系统的短信,可以对扑克游戏中的各张牌的点数作如下替换,保持点数“2、3、4、5、6、7、8、9、10”的编码依然为“2、3、4、5、6、7、8、9、10”,“A、J、Q、K”在编码中对应为“1、11、12、13”或者保持“A、J、Q、K”不变,黑白王牌和彩色王牌在编码中对应“14、15”或者使用两个英文字母代替。“黑桃、红心、梅花、方块”也用四个阿拉伯数字“1、2、3、4”依次代替或者使用汉字“黑、红、梅、方”。在扑克游戏打出的每手牌中,先将一种花色的牌输入完,再输入另一种花色的牌;每一种花色的牌,先输入花色的数字编码再输入该花色下每张牌点数的数字编码;黑白王牌和彩色王牌可以加入整手牌中的任何一种花色队列的编码中,如果整手牌只出现黑白王牌和彩色王牌,可以将它们的花色编码设定为任一花色编码,在输入花色编码后再输入它们的点数;如果具体牌类游戏中花色不参加比较大小,则在上述的编码中花色编码一律去掉,所有的牌按一种花色规则进行编码;还可以采用数量词后跟牌的点数的方式化简化一手牌的输入。也就是,如果一手牌在同一花色的编码队列中出现了2次及两次以上,可以采用先输入一个表示出现次数的阿拉伯数字再输入这张牌的点数的方式简化编码。为了让系统在对该编码解析时使用比较简单的算法,可以要求在每个表次数的数字前加上分隔符。如果在手机的数字输入法中,输入非数字分隔符不方便,可以用两个“0”作分隔符。在麻将游戏中,将四种花色“筒、条、万、风”用四个阿拉伯数字代替,可以为“0、1、2、3”,用“0”象形“筒”牌上的刻纹特征,用“1”象形“条”牌上的刻纹特征,按顺序用“2、3”表示“万、风”。“筒、条、万”各张牌的点数分别用“1”至“9”代替,“东西南北中发白”,也用7人数字代替,可用“6、4、8、2、5”替换“东、西、南、北、中”,这些数字在手机按键上的方位对应“东西南北中”,“发、白”可以相应对应“7、9”。因为打出来的一手牌就是一张牌,所以,对一张牌的编码可以根据平时玩麻将的习惯,点数编码在前,花色编码在后。对于“吃、碰、杆”的动作编码,可以用“1、2、3”依次代替,如果不进行“吃碰杆”的动作,可以直接发送“0”至系统,对于“吃、碰”的动作,可以发送“吃、碰”动作编码后加要出的牌的编码给系统;如果要“杆”牌,直接发送动作编码给系统,系统则将新发牌及用户的当前的剩余牌再一次发给用户。在字牌游戏中,系统发往用户的短信中,依然使用“一”至“十”代替牌“一”至“十”,使用“壹”至“拾”代替牌“壹”至“拾”,用户发往系统的短信中依然可以使用上述每张牌的编码方式,或者将牌“一”至“十”花色编码定为“1”,将牌“壹”至“拾”花色编码定为“2”,在输入一张牌编码时先输入花色编码,再输入这张牌汉字数字所对应的阿拉伯数字。
6.一种使用短信进行棋类和牌类游戏的方法,其特征在于,包含权利要求1中方法的所有特征,其特征还在于,在扑克游戏中,系统将用户发来的编码处理成非全数字编码。对于扑克游戏,这种处理可以包括以下几种情况A、为不同点数的牌之间加上非数字符与非英文字母符作分隔符进行分隔;B、将编码中代替点数“A、J、Q、K”的数字,替换回“A、J、Q、K”,两张王牌也用两个非“AJQK”的字母代替;C、将代替花色的数字替换成相对应的汉字或者英文字母;D、加上每手牌的用户编码,采用汉字作为用户编码。
7.一种使用短信进行棋类和牌类游戏的方法,其特征在于,包含权利要求1、2中方法的所有特征,其特征还在于,在扑克游戏中,发送回用户的当前剩余牌的信息,将各张牌先分花色再按点数的一定大小顺序排列,点数之间不加分隔符,不同花色队列之间可加非数字符与非英文字母符作分隔符进行分隔。如果在具体的牌类游戏中比较牌的大小不需要花色,则不分花色,所有剩余牌只按点数一定的大小顺序排列,点数之间不加分隔符。在麻将游戏中,发送回用户的当前剩余牌的信息,用以下的编码方式替换每一张牌。将阿拉伯数字“1”至“9”、小写汉字“一”至“九”、大写汉字“壹”至“玖”,分别代表“条万筒”三种花色的9个点数牌,使用汉字“东西南北中发”分别代表“东西南北中发”六张牌,使用“白”代替“白板”这张牌。在上述中,也可以用一些其它表示顺序的字符组合来替换不同花色的九张牌,这些组合包括大写的字母“A”至“I”、小写的字母“a”至“i”、十二天干中的前九个汉字,十地支中的前九个汉字。
全文摘要
本发明设计了一种采用短信息这种通信方式进行棋类游戏的方法,以及一种同样采用短信息进行牌类游戏的方法。使用的软硬件体系包括应用服务器、短信息网关、通信网络、通信终端。方法中包括步骤有A.开始步骤;B.系统为用户匹配足够多位的用户组成游戏的各方;C.用户将自己的走棋信息或出牌信息编码后发送到系统;D.系统对收到的用户的走棋或出牌短信进行检查是否有编码错误或违反了游戏规则;E.如果有编码错误或违反了游戏规则,系统将提示用户错误,要求用户重新发送;F.如果没有编码错误和不违反游戏规则,系统将它再转发给本局游戏中其他几位用户;G.在各位用户之间重复C、D、E、F直到游戏结束。
文档编号A63F13/00GK1695767SQ20051003141
公开日2005年11月16日 申请日期2005年4月4日 优先权日2005年4月4日
发明者周海鹰 申请人:周海鹰