- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计任务书
学院
理学院
专业
统计学
学生姓名
班级学号
课程设计题目
黑白棋程序设计
实践教学要求与任务:
1、进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;
2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3、掌握C语言的编程技巧及程序设计的常用算法
设计任务:本次设计主要实现黑白棋游戏的系统程序
该程序主要实现与黑白棋有关的包括棋盘绘制,棋子绘制,双方执棋下子,统计双方分数,比较,输出输赢等一系列程序,实现在该程序中能够正常进行双方对弈的功能。
工作计划与进度安排:
第一天查阅资料; 第二、三天 程序设计 ;第四天 程序调试 ;第五天 答辩
指导教师:
201 年 月 日
专业负责人:
201 年 月 日
学院教学副院长:
201 年 月 日
摘要
程序设计语言类课程的指导思想是:使学生通过学习即高级编程语言的知识、编程技术和基本算法,又掌握程序设计的思想和方法,更具备利用计算机求解实际问题的能力,能灵活运用高级语言进行程序设计[6]。 其实认真学习一门语言并不困难,关键要所追求的学习的方法和途径。一条好的途径便于快速掌握,熟悉运用语言。学习的目的在于应用,理论来源于实践,如果在学习中能够通过有效的途径如自己动手设计一个功能比较前大的开发系统,借鉴于各种工具书,善于总结。定可以很好的效果。正是如此,使我们在这几年中对语言学习有了很大提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
关键词: 掌握编程语言的知识 ;编程技术;基本算法思想和方法
目录
黑白棋4 4
2.1.用到的函数: 4
2.1.1main()主函数: 4
2.1.2DrawQp()画棋盘函数: 4
2.1.3MoveColor()恢复原来格子的状态 4
2.1.4playtoplay()人人对战函数 4
2.1.5QpChange()判断棋盘变化 4
2.1.6PrintScore()输出成绩 5
2.2.子函数功能一览表 5
2.3. 主函数流程图 6
2.3.1棋盘绘制流程图 6
2.4.函数解析 7
2.4.1图形库文件 7
2.4.2图形初始化函数 7
2.4.3设置背景颜色 7
2.4.4画线 7
2.4.5设置填充模式和颜色 7
2.4.6方向操作 7
2.4.7落棋位置判断 8
2.4.8判断棋盘的变化和改变棋子的颜色 8
2.4.9 成绩输出 8
2.4.10输出成绩 8
2.4.11输出最后的胜利者结果 8
u 2.5.源代码 9
u 2.6运行结果 17
u 2.7心得体会 17
参考文献 18
黑白棋
2.1.用到的函数:
2.1.1main()主函数:
在主函数中,棋盘状态用数组a[8][8],初值为0,表示空格。用图形系统画出棋盘,调用playtoplay()人人对弈函数开始游戏,一旦游戏结束后,关闭图形系统,程序结束。
2.1.2DrawQp()画棋盘函数:
背景颜色设为蓝色,从坐标(100,100)开始每隔40个单位用白色画一条水平直线,一条垂直线,构成棋盘,用循环语句实现。以x和y为圆心,xradius和yradius为水平和垂直轴画一填充椭圆,当xradius和yradius相等时,则画出的是圆,用它表示棋子。SetPlayColor()设置棋子的颜色:函数的参数为整型变量t,根据t的值来设计填充棋子的当前颜色,值为1代表白棋,值为2代表黑棋。
2.1.3MoveColor()恢复原来格子的状态
因为棋子移动过程并没有改变数组元素的值,所以可以根据数组元素的值判定原来的状态,如果值是1,就恢复白色棋子,值是2则恢复黑色棋子,否则恢复蓝色空格。
2.1.4playtoplay()人人对战函数
这是游戏进行的函数,主要是接收棋手的按键消息,按Esc键程序可以随时结束。按上下左右光标键,则改变棋子移动的坐标值。按回车键后判断。
2.1.5QpChange()判断棋盘变化
当棋手按回车键落子后,就要分别往8个方向判断是否包围住对方棋子,如果是,则改变棋盘。如果所有方向都判断过,并且没有引起棋盘的变化,则棋盘变化标志值yes为0,返回yes,结束本函数。根据当前数组元素的值判断分数,也就是各方棋子的个数,如果数组元素值为1,白棋棋子数累加;如果数组元素值为2,则黑棋棋子数累加。
2.1.6PrintScore()输出成绩
利用设置实体填充模式填充矩形条清除掉前次的成绩,再利用sprintf()函数将整数转换为字符串的形式,再利用outt
文档评论(0)