C语言课程设计_黑白棋游戏
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 2 章 课程设计内容
2.1 程序功能介绍
只有在可以吃到对方棋子的方格里落子。
吃子规则:采用夹吃的原则,左图用红色标记的是黑方可落子的位置。当黑方落子
之后,则夹在两黑子中间的白子都将变为黑子。右图是落子后的棋盘布局,蓝色标记的
是白方可落子的位置。
指
导
教
师
评
语
及
成
绩
成绩:
指导教师签字: 2012 年 1 月 13 日
浙 江 大 学 课 程 设 计 说 明 书(论 文)
目录Baidu Nhomakorabea
第 1 章 课程设计的目的与要求........................................................................................ 1
课程设计(报告)任务及评语
教研室:软件教研窒
学生姓名
0000
专业班级
黑白棋游戏
计算机信息管理 000
程序设计的任务与要求:
(1)掌握 C 语言编程的基础知识。
(2)较熟练地编写 C 语言应用程序。
程
(3)了解 C 语言的常用标准函数、编程技巧、异常处理。
序
设
(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。
浙江 大 学
C 语言程序设计 课程设计(论文)
题目:
黑白棋游戏
院(系):
软件学院
专业班级: 计算机信息管理
学 号:
000000000
学生姓名:
000 0
指导教师:
000 00
教师职称:
教授
起止时间: 2011.12.22 至 2012.1.2
院(系):软件学院
学号
000000
程序设计 (报告)
题目
1.2 课程设计的实验环境 硬件要求能运行 Windows 2000/XP 操作系统的微机系统。C 语言程序设计及相应的
开发环境。 1.3 课程设计的预备知识
熟悉 C 语言及 C 语言开发工具。 1.4 课程设计要求
1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告
多于对方。按键盘上的方向键可以上下左右移动棋子,按回车键可以摆放棋子。下到最 后谁的棋子多,谁赢。
8
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
2.3 程序源代码及注释
[size=12px]#include "graphics.h" /*图形系统头文件*/
#define LEFT 0x4b00 /*光标左键值*/
2.2.4 各模块功能及程序说明 落棋位置的判断模块:判断落子后棋盘的变化,判断棋手的落棋位置和次数,两方交
换走棋。 成绩输出模块:判断输出哪个棋手的分,在不同的位置输出,清空成绩,判断哪方胜利。 输出胜利者信息模块:开始判断最后的结果,将两人分数分别输出。
2.2.5 程序结果 一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己棋子的数目
夹子的方向包含:水平、竖直、斜对角。
1.
点击“新游戏”,将从新初始化棋局。
2.
打开游戏存档,默认是.bwc 文件
3.
保存当前游戏,默认扩展名为.bwc
4.
后退一步,即悔棋
5.
前进一步,只有在前面的操作存在后退的基础上,该按钮才有效。
6.
“与或图”按钮,当选择与或法与电脑博弈时会显示与或图。
7.
点击设置按钮后,会出现以下对话框,可以修改设置,点击确定按钮后生效。
第 2 章 课程设计内容...........................................................................................................2
2.1 程序功能介绍.................................................................................................................. 2 2.2 程序整体设计说明.......................................................................................................... 3
从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可 以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是 0 代表 空格,1 代表白棋,2 代表黑棋。这样程序的主要工作是接收棋手按键操作,棋手用 Up、
3
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 1 章 课程设计的目的与要求
1.1 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程
序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对 C 语言课程的基本知识的理解和掌握 2. 掌握 C 语言编程和程序调试的基本技能 3. 利用 C 语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用 C 语言解决实际问题的能力
2
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
2.2 程序整体设计说明 程序设计的组成框图:
吃子规则:采用夹吃的原则,左图用红色标记的是黑方可落子的位置。当黑方落子 之后,则夹在两黑子中间的白子都将变为黑子。右图是落子后的棋盘布局,蓝色标记的 是白方可落子的位置。 夹子的方向包含:水平、竖直、斜对角 2.2.1 设计思路
第 3 章 课程设计总结........................................................................................................... 21
参考资料.....................................................................................................................................22
计 (
(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能
报 力都有一个很大的提高。
告
)
(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素
任 务
质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
2.2.1 设计思路.............................................................................................................. 3 2.2.2 数据结构设计及用法说明.................................................................................. 4 2.2.3 程序结构(流程图).......................................................................................... 6 2.2.4 各模块的功能及程序说明.................................................................................. 8 2.2.5 程序结果.............................................................................................................. 8 2.3 程序源代码及注释.......................................................................................................... 9
1.1 课程设计目的................................................................................................................. 1 1.2 课程设计的实验环境..................................................................................................... 1 1.3 课程设计的预备知识..................................................................................................... 1 1.4 课程设计要求................................................................................................................. 1
DrawQp
绘制棋盘和初始棋子
在界面上绘制 320*320 的棋盘,并在棋盘中绘制 8*8 的格子,初始棋子
2
SetPlay
设置棋子第一次的颜色
先走棋者持白子,后走棋黑子,每次交替
3
4
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
Playtoplay 人人对战函数 俩棋手交替走棋,定义键盘操作等 4 MoveColor 恢复原来棋盘状态 棋子由初始位置到落子位置的路径不改变颜色 5 QpChange 判断棋盘的变化 改变棋子的颜色 走棋后判断棋盘的变化情况,根据变化情况判断是否可以输出分数 6 DoScore 处理分数
char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/
根据棋盘上旗子的多少进行分数的处理
5
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
2.2.3 程序结构(流程图) (1)落棋位置判断:
6
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
(2)输出成绩:
7
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
(3)输出最后的胜利者结果:
#define RIGHT 0x4d00 /*光标右键值*/
#define DOWN 0x5000 /*光标下键值*/
#define UP 0x4800 /*光标上键值*/
#define ESC 0x011b /* ESC 键值*/
#define ENTER 0x1c0d /* 回车键值*/
int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/
Down、Left、Right 控制光标移动,回车键表示落子。如果无棋可走则显示停步信息。 一旦接收到回车键或空格键,说明棋手落子,先判断是否是有效位置,也就是说已经有 棋子的位置不能重叠落子,然后再判断该位置能否吃掉对方的棋子(根据黑白棋的游戏 规则,只能将棋子落子能吃掉对方棋子的位置上),如果条件满足则在该位置落子,落子 时执行这样几个步骤,先调用画棋子函数,将棋盘的相应位置上画上棋子,再调用吃棋 子函数,将对手的棋子变成自己颜色的棋子,然后根据吃掉对手棋子的个数,给自己加 上相应的分数和给对手减去相应的分数,再将数组中的相应元素赋值,标志该位置已经 落子,最后将落子的权限交给对手。
2.2.2 数据结构设计及用法说明
在主函数中,通过调用绘制棋盘、棋手对战,判断棋盘变化、改变棋子颜色等函数的调
用来实现主函数的相应的功能 ,以下是有关于主函数的流程图。
绘制棋盘和初始棋子
rawQp
棋手对战
playtoplay
判断棋盘变化(能否分出胜负)
QpChange
计算棋手的成绩
输出胜利者信息
Y
1
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 2 章 课程设计内容
2.1 程序功能介绍
只有在可以吃到对方棋子的方格里落子。
吃子规则:采用夹吃的原则,左图用红色标记的是黑方可落子的位置。当黑方落子
之后,则夹在两黑子中间的白子都将变为黑子。右图是落子后的棋盘布局,蓝色标记的
是白方可落子的位置。
指
导
教
师
评
语
及
成
绩
成绩:
指导教师签字: 2012 年 1 月 13 日
浙 江 大 学 课 程 设 计 说 明 书(论 文)
目录Baidu Nhomakorabea
第 1 章 课程设计的目的与要求........................................................................................ 1
课程设计(报告)任务及评语
教研室:软件教研窒
学生姓名
0000
专业班级
黑白棋游戏
计算机信息管理 000
程序设计的任务与要求:
(1)掌握 C 语言编程的基础知识。
(2)较熟练地编写 C 语言应用程序。
程
(3)了解 C 语言的常用标准函数、编程技巧、异常处理。
序
设
(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。
浙江 大 学
C 语言程序设计 课程设计(论文)
题目:
黑白棋游戏
院(系):
软件学院
专业班级: 计算机信息管理
学 号:
000000000
学生姓名:
000 0
指导教师:
000 00
教师职称:
教授
起止时间: 2011.12.22 至 2012.1.2
院(系):软件学院
学号
000000
程序设计 (报告)
题目
1.2 课程设计的实验环境 硬件要求能运行 Windows 2000/XP 操作系统的微机系统。C 语言程序设计及相应的
开发环境。 1.3 课程设计的预备知识
熟悉 C 语言及 C 语言开发工具。 1.4 课程设计要求
1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告
多于对方。按键盘上的方向键可以上下左右移动棋子,按回车键可以摆放棋子。下到最 后谁的棋子多,谁赢。
8
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
2.3 程序源代码及注释
[size=12px]#include "graphics.h" /*图形系统头文件*/
#define LEFT 0x4b00 /*光标左键值*/
2.2.4 各模块功能及程序说明 落棋位置的判断模块:判断落子后棋盘的变化,判断棋手的落棋位置和次数,两方交
换走棋。 成绩输出模块:判断输出哪个棋手的分,在不同的位置输出,清空成绩,判断哪方胜利。 输出胜利者信息模块:开始判断最后的结果,将两人分数分别输出。
2.2.5 程序结果 一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己棋子的数目
夹子的方向包含:水平、竖直、斜对角。
1.
点击“新游戏”,将从新初始化棋局。
2.
打开游戏存档,默认是.bwc 文件
3.
保存当前游戏,默认扩展名为.bwc
4.
后退一步,即悔棋
5.
前进一步,只有在前面的操作存在后退的基础上,该按钮才有效。
6.
“与或图”按钮,当选择与或法与电脑博弈时会显示与或图。
7.
点击设置按钮后,会出现以下对话框,可以修改设置,点击确定按钮后生效。
第 2 章 课程设计内容...........................................................................................................2
2.1 程序功能介绍.................................................................................................................. 2 2.2 程序整体设计说明.......................................................................................................... 3
从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可 以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是 0 代表 空格,1 代表白棋,2 代表黑棋。这样程序的主要工作是接收棋手按键操作,棋手用 Up、
3
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 1 章 课程设计的目的与要求
1.1 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程
序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对 C 语言课程的基本知识的理解和掌握 2. 掌握 C 语言编程和程序调试的基本技能 3. 利用 C 语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用 C 语言解决实际问题的能力
2
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
2.2 程序整体设计说明 程序设计的组成框图:
吃子规则:采用夹吃的原则,左图用红色标记的是黑方可落子的位置。当黑方落子 之后,则夹在两黑子中间的白子都将变为黑子。右图是落子后的棋盘布局,蓝色标记的 是白方可落子的位置。 夹子的方向包含:水平、竖直、斜对角 2.2.1 设计思路
第 3 章 课程设计总结........................................................................................................... 21
参考资料.....................................................................................................................................22
计 (
(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能
报 力都有一个很大的提高。
告
)
(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素
任 务
质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
2.2.1 设计思路.............................................................................................................. 3 2.2.2 数据结构设计及用法说明.................................................................................. 4 2.2.3 程序结构(流程图).......................................................................................... 6 2.2.4 各模块的功能及程序说明.................................................................................. 8 2.2.5 程序结果.............................................................................................................. 8 2.3 程序源代码及注释.......................................................................................................... 9
1.1 课程设计目的................................................................................................................. 1 1.2 课程设计的实验环境..................................................................................................... 1 1.3 课程设计的预备知识..................................................................................................... 1 1.4 课程设计要求................................................................................................................. 1
DrawQp
绘制棋盘和初始棋子
在界面上绘制 320*320 的棋盘,并在棋盘中绘制 8*8 的格子,初始棋子
2
SetPlay
设置棋子第一次的颜色
先走棋者持白子,后走棋黑子,每次交替
3
4
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
Playtoplay 人人对战函数 俩棋手交替走棋,定义键盘操作等 4 MoveColor 恢复原来棋盘状态 棋子由初始位置到落子位置的路径不改变颜色 5 QpChange 判断棋盘的变化 改变棋子的颜色 走棋后判断棋盘的变化情况,根据变化情况判断是否可以输出分数 6 DoScore 处理分数
char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/
根据棋盘上旗子的多少进行分数的处理
5
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
2.2.3 程序结构(流程图) (1)落棋位置判断:
6
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
(2)输出成绩:
7
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
(3)输出最后的胜利者结果:
#define RIGHT 0x4d00 /*光标右键值*/
#define DOWN 0x5000 /*光标下键值*/
#define UP 0x4800 /*光标上键值*/
#define ESC 0x011b /* ESC 键值*/
#define ENTER 0x1c0d /* 回车键值*/
int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/
Down、Left、Right 控制光标移动,回车键表示落子。如果无棋可走则显示停步信息。 一旦接收到回车键或空格键,说明棋手落子,先判断是否是有效位置,也就是说已经有 棋子的位置不能重叠落子,然后再判断该位置能否吃掉对方的棋子(根据黑白棋的游戏 规则,只能将棋子落子能吃掉对方棋子的位置上),如果条件满足则在该位置落子,落子 时执行这样几个步骤,先调用画棋子函数,将棋盘的相应位置上画上棋子,再调用吃棋 子函数,将对手的棋子变成自己颜色的棋子,然后根据吃掉对手棋子的个数,给自己加 上相应的分数和给对手减去相应的分数,再将数组中的相应元素赋值,标志该位置已经 落子,最后将落子的权限交给对手。
2.2.2 数据结构设计及用法说明
在主函数中,通过调用绘制棋盘、棋手对战,判断棋盘变化、改变棋子颜色等函数的调
用来实现主函数的相应的功能 ,以下是有关于主函数的流程图。
绘制棋盘和初始棋子
rawQp
棋手对战
playtoplay
判断棋盘变化(能否分出胜负)
QpChange
计算棋手的成绩
输出胜利者信息
Y
1