五子棋游戏[2] – 双人对战

五子棋游戏[2] – 双人对战
书接上回。时间间隔稍微有点远,但是我还是希望能够继续完结这一系列的文章。上一回我们已经建立了一个很标准的游戏框架,基于这个游戏框架我们只需稍加理解便可以完成这个五子棋软件的双人对战功能。 为什么要先讲解双人对战功能呢?因为其实AI vs. MAN的功能其实是MAN vs. MAN的一个子集,双人对战所完成的内容是包括游戏规则、游戏操作、胜负判定的一系列纯粹的游戏内容的实现,而加入AI只不过是将对战双方的其中一方的行棋改为了计算机自动计算。 在上一篇文章中我给出了一个类图,现在我再次给出。 其中Game类是我们这次的核心任务,因为整个游戏将如何进行基本上是由Game类来完成的,于是我们首先需要分析整个游戏的流程,由于我们要将分析的结果转换为程序逻辑,所以这个分析是必须逐步求精的,那么请跟着我一步一步的来把游戏的流程梳理清楚: 这是一个很标准的博弈类游戏的游戏流程,通常人们第一想到的就是这样的,但是这样的流程如果直接挪用到我们的游戏设计中就显得有些冗余了,现在回到我们之前的类图,之前我并没有解释

五子棋游戏[1] – 简介与设计

五子棋游戏[1] – 简介与设计
出于学校AI课程的设置,有一项可选的大作业是五子棋游戏,由于我比较倾向于实用主义,觉得做出来的东西可以玩才是王道,所以便选择了五子棋。由于之前的数据结构课程设计已经有了C#的使用基础再加之一个学期软件工程课程的锻炼,于是乎这次的设计我就想以非常标准化的方法来实现。 我这次并不会给出完整的游戏源代码,但整个游戏的结构我一定会力求完整的展现给大家,这样做也是希望大家能留有足够的思考空间,根据我自己的经验,看了别人的代码之后再自己写,多半也是循着那套思路在走,这样不利于学习。 五子棋大家都很熟悉,老少皆宜,规则相对比较简单,上手容易,但是要想成为高手,也是要下很大一番努力的。大家所熟悉的五子棋规则中主要分为“有禁手”,和“无禁手”两种,考虑到课程作业的简单性原则,以及其使用者(我?)五子棋水平有限,故在判断输赢方面,以“无禁手”的规则为标准。 五子棋的棋盘是一个15 * 15的方格棋盘,如下图所示: 由黑方执棋者先行,黑白两方交替放子,先使五个棋子连珠成线者获得当盘的胜利。 从这里我们就已经...