码通过合适的方法组织起来,使程序代码更加有条理,更加符合软件工程的标准。
考虑到程序的响应速度,人机对弈算法只对玩家的棋子进行了一步的推测。 由于计算机在落子时选取的是得分最高的一步落子,所以如果玩家在开局的时候不改变落子步骤,那么将会获得从头至尾相同的棋局。
考虑到下棋同时还要聊天,所以并未对落子时间加入任何限制,同样如果玩家离开游戏也不会判断为负。
对于人机对弈的悔棋处理,由于这个算法的开销相当大,每一步落子都会存在不同的棋盘布局,所以实现从头到尾的悔棋不是很现实(将会存在过多的空间保存棋盘布局),因而在人机对弈模式下,只允许玩家悔最近的两步落子。
参考文献
[1] 李英军,马晓星,蔡敏 等. 设计模式-可复用面向对象软件基础[M].北京:机械工业出版社,
1999:12-98.
[2] 侯俊杰. 深入浅出MFC(第2版)[M].武汉:华中科技大学出版社,2000:145-148. [3] Andrew Peace. A Beginner 's Guide to Pointers[J/OL]. 1999,19(2):4[2001-03-18].
http://www.codeproject.com/cpp/pointers.asp.
[4] George Shepherd, David Kruglinski, 等.Visual C++.NET 技术内幕[M].北京:清华大学出版
社, 2005:23-98.
[5] 汪晓平, 钟军, 等. Visual C++网络通信协议分析与应用实现[M]. 北京:人民电出版社,
2000:78-167.
[6] 刘宗田, 邢大红, 孙慧杰, 等. C++编程思想[M].北京:机械工业出版社,2005:23-98. [7] Jesse Liberty.21天学通C++[M]. 北京:人民邮电出版社,2005:23-98.
[8] Nicolai M.Josuttis. C++标准程序库[M]. 武汉:华中科技大学出版社,2005:23-58. [9] Charles Petzold. Windows程序设计[M].北京:北京大学出版社,2004:32-65 . [10] 易君. Visual C++.NET网络编程[M].北京: 中国铁道出版社,2006:20-30. [11] 蝈蝈俊.NET. 五子棋的核心算法[CP].
http://blog.joycode.com/ghj/articles/12727.aspx.
[12] 王咏武, 王咏刚, 等. 道法自然[M].北京: 电子工业出版社,2005:30-34. [13] 张东. 计算机科学技术名词[M].北京:科学出版社,2005:23-98.
[14] Forouzan,B.A.TCP/IP Protocol Suite,McGraw-Hill,中译本[M]:北京:清华大学出版社,
2005:23-98.
- 23 -
[15] 严晨.个性与设计[M].北京:人民邮电出版社, 2007:15-98.
[16] 霄云.Photoshop 7完全使用教程[M].北京:电子工业出版社,2007:2-198. [17] 郑昆藏.计算机系统结构[M],北京:科学出版社, 2005:34-77. [18] 刘兆毓.计算机英语[M].北京:清华大学出版社, 2005:23-98.
[19] 李松,丁国芳,等.Visual C++ 6.0程序设计教程[M].北京:冶金工业出版社, 2006:42-54. [20] 陈圣国.C++程序设计[M].西安:西安电子科技大学出版社, 2005:43-52.
- 24 -