1、 目目 录录 一、设计目的 . 2 二、设计要求 . 2 三、所需仪器设备 . 2 四、课题分析 . 2 五、具体设计过程 . 3 5.1、设计思路 3 5.2、程序设计流程图 . 3 5.3、函数实现说明. 6 5.4、图形库函数介绍 . 7 5.5、程序源代码及注释. 9 5.6、调试结果 . 19 六、设计心得体会 20 七、参考文献 21 2 黑白棋游戏黑白棋游戏C C 语言课程设计语言课程设计 一、设计目的一、设计目的 本课程设计是计算机软件技术基础重要的实践性环节之一,是在学生学习完程序设 计语言(C)课程后进行的一次全面的综合练习。本课程设计的目的和任务: (1)巩固和加深学生对
2、 C 语言课程的基本知识的理解和掌握; (2)掌握 C 语言编程和程序调试的基本技能; (3)利用 C 语言进行基本的软件设计,掌握软件设计一般方法,了解软件设计的思路; (4)掌握书写程序设计报告的能力; (5)提高运用 C 语言解决实际问题的能力; 这个程序也是对编程基本功的一个训练,对于初学 C 语言的人,讲分支、循环、数组 函数综合应用,而不仅限于编制独立的小程序,能够大大提高变成水平。 二、二、设计要求设计要求 (1)收集资料,全面分析课题,分解问题,形成中体编程思路; (2)深入分析各个小问题,编写个部分程序模块; (3)对于设计中用到的关键函数,要联系实际 问题进行具体介绍; (
3、4)上机调试,确保程序能正确运行; (5)设计完成后提交课程设计报告; 三、所需仪器设备三、所需仪器设备 (1)硬件要求能运行 Windows 2000/XP 操作系统的微机系统。 (2)C 语言程序设计及相应的开发环境。 (本设计用的是 Turbo C for Windows 集成实验 与学习环境 V6.0) 四四、课题分析、课题分析 编写一个黑白棋游戏的 C 程序,包括以下功能: 初始状态:在一个 8*8 的棋盘中央交叉排放黑白棋子各两枚,白棋先走。 (1)每个棋手下棋时,摆子的位置必须是以自己的棋子能包围住对方一个或多个棋子, 被包围住的对方棋子将成为自己的棋子。包围的方向可以是上下左右
4、以及斜线 8 个方向, 只要能连成一线即可。 (2)当轮到某一个棋手下子,但是他没有可以包围对方棋子的位置时,他必须停步,让 对方走棋,直到他可以走为止。 (3)当棋盘上一方的棋子为 0 或者下满 64 格,游戏结束,棋子少者输。 3 五、具体设计过程五、具体设计过程 5.15.1、设计思路设计思路 程序界面应是一个二维平面图,所以数据的表示用二维数组,数组两个下标可以表示 棋盘上的位置,数组元素的值代表棋格中的状态,共有三种情况,分别是空格、黑棋和白 棋。这样给数组元素的取值设定为 0、1、2,其中 0 代表空格,1 代表白色棋子,2 代表黑 色棋子。这样程序的主要工作是接收棋手按键操作,一旦接收到回车键,说明棋手摆子, 先判断是不是有效位置,也就是能不能包围住对方棋子,如果能,便为棋子所在的位置往 上下、左右、左上、左下、右上、右下 8 个方向寻找被包围住的所有棋子(必须是连续的, 中间不能有空格) ,将这些被包围住的对方棋子都变成自己的棋子,然后对当前棋盘中的 黑白棋个数进行统计并输出结果。如果没有这样的位置可以落子,则