欢迎来到天天文库
浏览记录
ID:35625304
大小:144.50 KB
页数:20页
时间:2019-04-03
《C语言课程设计报告--黑白棋》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言程序设计课程设计题目:黑白棋课程设计(报告)任务及评语学号学生姓名专业班级程序设计(报告)题目黑白棋程序设计(报告)任务程序设计的任务与要求:(1)掌握C语言编程的基础知识。(2)较熟练地编写C语言应用程序。(3)了解C语言的常用标准函数、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安
2、排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩:指导教师签字:年月日目录第1章课程设计的目的与要求11.1课程设计目的11.2课程设计的实验环境11.3课程设计的预备知识11.4课程设计要求1第2章课程设计内容22.1程序功能介绍22.2程序整体设计说明22.2.1设计思路22.2.2数据结构设计及用法说明32.2.3程序结构(流程图)42.2.4各模块的功能及程序说明62.2.5程序结果62.3程序源代码及注释6第3章课程设计总结15参考资料1617第1章课程设计的目的与要求1.1课
3、程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务:1.巩固和加深学生对C语言课程的基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力1.2课程设计的实验环境硬件要求能运行Windows2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3课程设计的预备知识熟悉C语言及C语言开发工具。1.4课程设计要求1.分析课程设计题
4、目的要求2.写出详细设计说明3.编写程序代码,调试程序使其能正确运行4.设计完成的软件要便于操作和使用5.设计完成后提交课程设计报告17第2章课程设计内容2.1程序功能介绍本游戏只有在可以吃到对方棋子的方格里落子吃子规则:采用夹吃的原则,左图用红色标记的是黑方可落子的位置。当黑方落子之后,则夹在两黑子中间的白子都将变为黑子。右图是落子后的棋盘布局,蓝色标记的是白方可落子的位置。夹子的方向包含:水平、竖直、斜对角。1.点击“新游戏”,将从新初始化棋局。2. 打开游戏存档,默认是.bwc文件3. 保存当前游戏,默认扩展名为.bwc4. 后退一步,即
5、悔棋5. 前进一步,只有在前面的操作存在后退的基础上,该按钮才有效。6.“与或图”按钮,当选择与或法与电脑博弈时会显示与或图。7.点击设置按钮后,会出现以下对话框,可以修改设置,点击确定按钮后生效。2.2程序整体设计说明本程序设计为人与人对弈,一方执黑棋,一方执白棋,轮流走。棋盘为8乘8格,初始状态在棋盘中央交叉排放黑白棋子各两枚,为统计棋子个数,走一个棋子计一分,白棋先走。每个棋手下棋时,摆子的位置必须是以自己的棋子能包围住对方一个或多个棋子,被包围的对方棋子将变成自己的棋子。包围的方向可以是上下左右以及左右斜线共8个方向,只要能连成一条线即可。
6、当轮到一个棋手摆子,而他没有可以包围对方棋子的位置时,他必须停步,让对方走棋,直到他可以走为止。当棋盘上有一方的棋子为0或下满64格,游戏结束,棋子少者输。2.2.1设计思路17从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表空格,1代表白棋,2代表黑棋。这样程序的主要工作是接收棋手按键操作,棋手用Up、Down、Left、Right控制光标移动,回车键表示落子。如果无棋可走则显示停步信息。一旦接收到回车键或空格键,说明棋手落子,先判断是否是有效位
7、置,也就是说已经有棋子的位置不能重叠落子,然后再判断该位置能否吃掉对方的棋子(根据黑白棋的游戏规则,只能将棋子落子能吃掉对方棋子的位置上),如果条件满足则在该位置落子,落子时执行这样几个步骤,先调用画棋子函数,将棋盘的相应位置上画上棋子,再调用吃棋子函数,将对手的棋子变成自己颜色的棋子,然后根据吃掉对手棋子的个数,给自己加上相应的分数和给对手减去相应的分数,再将数组中的相应元素赋值,标志该位置已经落子,最后将落子的权限交给对手。2.2.2数据结构设计及用法说明在主函数中,通过调用绘制棋盘、棋手对战,判断棋盘变化、改变棋子颜色等函数的调用来实现主函数
8、的相应的功能。绘制棋盘和初始棋子rawQp棋手对战playtoplay判断棋盘变化(能否分出胜负)计算
此文档下载收益归作者所有