八皇后问题课程设计.doc
《八皇后问题课程设计.doc》由会员分享,可在线阅读,更多相关《八皇后问题课程设计.doc(12页珍藏版)》请在三一办公上搜索。
1、八皇后问题课程设计1设计背景11课程设计的目的本课程设计的目的在于提高学生对数据结构和C+语言课程的运用能力,并能使学生加深对数据结构和编程工作的理解。书本知识转化成个人能力,最终还是要靠不断地付诸实践,课程设计恰为这种时间提供了一个很好的平台。1.2课程设计任务与要求程序启动后显示一张8*8的棋盘,然后游戏者可以用坐标输入方式在棋盘上布下棋子。如果布下的棋子合法,则增加10分并可以继承布下一个棋子。如果布下的棋子不合法,给出游戏者的得分数。若无错误布下8颗棋子,则给与满分100分。(由于本学期我们尚未学习图形界面的有关类容,所以课程设计中的有关图形界面的内容进行了修改。)游戏规则要求不能在同
2、一行或同一列或同一条对角线上放置二个或二个以上的棋子,但每行都必须放置一个棋子。2 程序的实现过程2.1设计思想、算法及实现要点程序编写都是由简单到复杂的,接到任务以后,就在脑子里有了一个大概的框架。一个while(1)的打循环里嵌套一个界面输入程序,通过用户不断地输入来控制游戏的循环的继续和跳出,并且在设计一个自动跳出的判断语句。这样,玩家就能在循环体里不断布棋,直到玩家想终止游戏或者游戏过关成功。关于下棋系统,首先要处理的就是棋盘,我把棋盘用赋值为0或1的二维数组来模拟国际象棋棋盘。0代表无棋子,1代表已下的棋子。这样就比较方便我以后判断棋盘横竖斜有且只有一个棋子,只需将横竖斜的元素累加,
3、结果等于1即可。 由于没有真正的图形界面,下棋的方法就只能依靠用户输入横竖坐标了,输入坐标后,系统自动将该坐标位置的元素赋值为1。关于打分细则,我的设计是给一个基准分20分,正确下一个棋就加10分,这样,当游戏过关时恰好是100分。具体到实际编程时,又考虑到,游戏程序的可玩性问题,我又在之前的的简单框架上补充了悔棋的功能,并且能一次性悔多步棋子,这样,打分细则又改变了:起评分20分下对一颗棋子奖励10分,若要悔棋,悔棋一步扣除15分。由于栈的特点是先进后出,后进先出,正好符合后下的棋子先悔,先下的棋后悔,于是我就很自然的想到建立一个简单栈来存储每一步玩家所走的棋子。栈的内容很简单,只有压入和弹
4、出的函数,没有过多防范数组越界、溢出等错误的处理。出错问题由程序员负责。剩下的就简单了,用一个int类型的数记录悔棋次数,评分系统就做好了。2.2 程序的函数程序主要有这几个函数构成void display()用来输出模拟的八皇后8*8棋盘; void display(int ,int)这是对上一个函数的重载,这样就允许先将一个特定位置的元素赋值为1,然后在输出;bool deal()对棋盘进行横、竖、斜等方面的处理,将棋盘的横、竖、斜三条线上元素求和,当这些和里面有值大于1时,说明至少有一对换后发生冲突,此时返回false,反之则返回true; void Main()是整个游戏的核心函数,里
5、面设计了一个while(k),k是走棋的个数,所以k0,该循环通常情况下无法终止,所以提示用户下棋的页面会一直循环出现,知道玩家成功闯关或者玩家提示想终止程序。2.3系统测试系统测试的阶段我主要做的就是进行错误处理的工作,比如:如果玩家输入了不存在的错误坐标,系统会提示:“坐标错误!请您输入18整数。”然后系统会让玩家更改输入坐标,如果输入了如重复的坐标,系统将会提示:“输入坐标重复,请重新输入。”直到玩家输入正确的坐标位置;在悔棋的时候,如果输入的悔棋步数超过当前步数,系统也会提示用户正确输入。并且各种提示信息都伴随一个喇叭发音,引起玩家注意。为了使界面看起来更加简洁,每一次更新棋盘元素并输
6、出棋盘之前,我都用了一个system(“CLS”);的语句,使得整个游戏过程不会很撩人。3 操作说明整个游戏操作,用户只需用数字键输入棋子的坐标或悔棋的步数,以及用N/Y键判断是否悔棋。输入错误数据都会有系统伴随喇叭发音的提示,N/Y键也对大小写进行了处理。玩家可以很轻松的进行游戏,不必担心错误的输入造成整个游戏系统的崩溃。4 总 结通过这一个星期的编程,觉得自己对于对数据结构和C+的编程运用能力有了很大的提高,不仅对堆栈有了切身的体会,了解了它的方便与麻烦之处,也同时把C+语言重新温习了一遍,巩固了上学期所学的知识。这次课程设计更令我意识到了数据结构这一课程的重要性,一个好的算法可依然程序更
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 皇后 问题 课程设计

链接地址:https://www.31ppt.com/p-3935531.html