1、 1 计算机技术基础课程设计计算机技术基础课程设计 C C 语言语言 设计报告 题目:黑白棋 学院:化学工程学院 专业: 班级: 2 题目:黑白棋题目:黑白棋 一、选题背景:一、选题背景: 我们日常生活中的小游戏机、手机上,经常会有黑白棋、拼图游 戏、俄罗斯方块、推箱子、乒乓弹球等小游戏,这些小游戏可以让我 们在日常紧张繁忙的生活中调节情绪, 以达到放松身心的作用。 因此, 我做了一个黑白棋的小游戏, 希望在学习的空闲时间能够过得开心快 乐! 二、设计思想:二、设计思想: 该游戏是一款轻巧易玩的游戏。利用 C 语言提供的丰富的图形函 数构筑友好的图形界面。利用了 FOR,WHILE 循环以及
2、if 判断实现游 戏的各种分支顺利进行。 游戏初始在棋盘中央每方有二子,双方交替下子。 后下一方的两 个棋子夹着的对方棋子变为己方棋子。 如无处可下子则继续由另一方 下子。棋盘为 88 的格。未下满时一方无子则自动判负。当棋盘下 满后棋子多的一方为胜。当双方子数量相同时判为和棋。 3 三、程序流程图三、程序流程图 否否 是是 否否 是是 否 是 否 开始 调用库函数 宏定义 棋盘初始化 下棋方法 控制方法 计分方法 结束方法 结束 开始 棋手下子 向 8 个方向判断, 到 己方棋子或空格 是否复合规 则 禁止落子 落子, 棋盘变化 换另一个棋手下棋 是否有落子 处 是否复合结 束规则 结束 四
3、、程序清单四、程序清单 #include “graphics.h“ /*图形系统头文件*/ #define LEFT 0x4b00 /*光标左键值*/ #define RIGHT 0x4d00 /*光标右键值*/ #define DOWN 0x5000 /*光标下键值*/ #define UP 0x4800 /*光标上键值*/ #define ESC 0x011b /* ESC 键值*/ #define ENTER 0x1c0d /* 回车键值*/ int a88=0,key,score1,score2;/*分数以及按键与存放棋子的变量*/ char playone3,playtwo3;/*两
4、个人的得分转换成字符串输出*/ void playtoplay(void);/*人人对战函数*/ void DrawQp(void);/*画棋盘函数*/ void SetPlayColor(int x);/*设置棋子第一次的颜色*/ void MoveColor(int x,int y);/*恢复原来棋盘状态*/ int QpChange(int x,int y,int z);/*判断棋盘的变化*/ void DoScore(void);/*处理分数*/ void PrintScore(int n);/*输出成绩*/ void playWin(void);/*输出胜利者信息*/ void main(void) int gd=DETECT,gr; initgraph( /*初始化图形系统*/ DrawQp();/*画棋盘*/ playtoplay();/*人人对战*/ getch(); closegraph();/*关闭图形系统*/ void DrawQp()/*画棋盘*/ int i,j; score1=score2=0;/*棋手一开