殷豪 周治宏 田海鹏
摘要:随着计算机的普及,游戏设计变得越来越流行,并已成为当今社会的热门行业。因此,为了缓解每个人的压力,让每个人在工作和学习后都有乐趣,激活大脑,提高工作和学习的效率,益智游戏越来越受到关注。五子棋作为益智游戏之一,深受人们喜爱。它的规则简单易变。它只能由两个人演奏。它非常有趣和有趣。因此,五子棋的发展也备受关注。
关键词:计算机;五子棋;游戏设计
一、问题的提出
随着社会的发展和计算机的普及,五子棋不仅可以提高思维能力和智力,还可以丰富哲理,有利于修身养性。它是中西文化的交流点,是古今哲学的结晶。因此,五子棋无疑成为了一款令人难忘的游戏。
二、任务与分析
(一)主界面的设计与分析
主界面作为程序的交互界面,是整个程序中相当重要的,因此需要注意主界面的美观性和简洁性。这个程序的运行界面提供标准结构的15×15棋盘,黑白棋子由程序绘制。
(二)人机对弈的设计与分析
(1)设置选择游戏模式,程序允许玩家先走或计算机先走,计算机落子由程序控制,玩家点击棋盘上的交叉点,程序根据点击位置确定落子点。双方轮流行棋,自由开局。
(2)胜负或和棋完全交由程序判断。
(3)设定一个悔棋功能,为了降低悔棋逻辑的复杂度,悔棋步数应该有一定的限制。
(4)为了使游戏更加具有生动性,需要设置玩家赢得比赛和输掉比赛的音乐伴奏,还有落子的音效。
(三)人人对弈的设计与分析
(1)悔棋方式与人机对战不同。需要征得对方同意才行,如果对方不同意,则不能悔棋。
(2)玩家的一方可以提出和棋要求,如果另一方玩家表示同意,则和棋,否则,不能和棋,需要继续玩下去。
(3)玩家的一方可以提前认输,本棋局结束。
(4)一局棋结束后,玩家的一方可以提议再开一局,如果另一方接受,则新棋局开始,否则,不能再次开局,只好等待新的玩家加入。
(5)玩家可以通过网络聊天,互发文字信息进行沟通交流。
三、博弈规则及公平定义
(一)博弈规则
二十世纪初的时候,五子棋从日本传到世界各地。五子棋运动在发展的过程中,由于五子棋本身的特点以及其它种种原因,其博弈规则并不统一,导致目前五子棋博弈有各种不同的规则。这些规则的差别总的来说分为三类:
1、职业比赛和业余比赛的差别。
2、十五路棋盘和十九路棋盘的差别。
3、先手有禁和无禁的差别。
目前,五子棋博弈可分为以下五种规则。这些规则主要是针对先手方制定的,因为和其它棋类不同,五子棋的先手方有巨大的优势。
1、五子棋传统上使用十九路棋盘,与现在的十五路棋盘相比,十九路的棋给予先手方更多的优势。
2、禁止"长连"。在一个棋局中,如果有超过五个的同色相邻棋子在横向、纵向或者对角线方向连接成一条线,称作"长连"。禁止"长连"指的是在博弈过程中,形成"长连"并不算获胜。
3、黑子必须从中央(天元)处走出第一子,白棋第二子必须接着黑棋走。黑方第二子必须落在天元附近。此规则目的仍是减少黑方优势,但还不够充分。
4、黑棋在达到五连以前禁止"三三"、"四四"、以及"长连"。如果犯规即判负。
5、为了进一步削弱黑方优势,又引入三手交换以及五手两打:三手交换指的是黑棋第二步下完之后(也就是总的第三步),白方可以选择是否和黑棋交换,这个是为了避免黑棋先手下出黑棋必胜或者大优的棋形。
五手两打指的是黑白各下两手后,黑棋第三手(总第五手)要下两个地方,由白棋选挥留下一个,另外一个就拿走了,这也是为了减少黑棋优势过大而设置的。上五种规则其实都在于限制先手方的优势,这是由五子棋博弈的特点决定的。
(二)公平的定义
定义一:明确的公平性。若已证明出一方必胜,则此游戏可称为明确不公平。
例如:不带禁手、黑方无任何限制的五子棋普通规则就是明确不公平的。
定义二:单调不公平性。若已经证明出一方必然不会必胜,但尚无法证明另一方必然不会必胜,则此游戏可称为单调不公平。
定义三:经验不公平性。若大多数棋手尤其是专业棋手经过大量的实际下棋经验认定一方必胜或者有极高的胜率,则此游戏可称为经验上不公平。例如早期无禁手和其它限制黑方优势的五子棋,基本可认定是黑方必胜。
定义四:潜在的不公平性。若该游戏尚未被证明出以上三种不公平性,则可称为潜在公平。当然,一个游戏当前是潜在公平的,不代表它就是公平游戏。如果这个游戏的潜在公平性保持得越长,可认为它越公平。
(三)模块功能
1、人人对弈
人人对弈即是双人对战模式。在本系统中,人人对弈模式下每次只能一方进行,完毕后,才能另一方进行。不容许一方两次下棋,这是游戏规则所不容许的。对局双方各执一色棋子。空棋盘开局。执黑先、白后,交替下子,每次只能下一子。棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动,不得从棋盘上拿掉或拿起另落别处。黑方的第一枚棋子可下在棋盘任意交叉点上。
2、人机对弈
人机对弈即计算机与玩家进行对战。在游戏开始时由玩家选择谁是先手,选择好后开始游戏。游戏进行时黑白双方交替落子,一次只能落一子。棋子下在棋盘的空白点上,棋子下定后,不得向其它点移动,不得从棋盘上拿掉或拿起另落别处。第一枚棋子可下在棋盘任意交叉点上。
3、下棋过程
计算机下棋与人脑下棋在原理上是一致的。一方面,他在轮询等待棋局信息,类似于等待裁判指令,如对方下子、悔棋、对方认输、结束比赛等;同时,它在不断地思考计算下一步的最佳策略。因此,需要有两个线程处理这两个同时进行的任务,线程同步及互斥需要内核对象来协调。
4、悔棋流程
悔棋是博弈類游戏中一个常见的功能。如果对弈一方发出悔棋请求,此时首先应暂停计时器,进行回滚操作。如果AI正在工作状态,则马上向其发出停止信号。接下来把棋局状态回滚到前一步。如果整个棋局的落子不超过二,则退出游戏。否则,重新绘制屏幕,返回到前一步的屏幕状态。接下来更新棋局的实时信息。
参考文献
[1]谭浩强.C++程序设计(第三版)[M].清华大学出版社.2004.6.
[2]王小春.PC游戏编程(人机博弈).重庆:重庆大学出版社,2002.
作者简介:殷豪(1999-),男,汉族,山东青岛,本科,研究方向:数字媒体
周治宏(1999-),男,汉族,四川凉山,本科,研究方向:移动互联网
田海鹏(2000-),男,汉,四川达州市,本科,研究方向:数字媒体