网站大量收购独家精品文档,联系QQ:2885784924

五子棋游戲的专业论文及源代码.docVIP

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五子棋游戲的专业论文及源代码

本 科 生 课 程 论 文 论 文 题 目 五子棋游戏 五子棋游戏 【摘要】 为了设计人人对弈模式的五子棋游戏系统,采用了C语言函数模块化程序设计方法,利用Visual C++ 6.0编译器运行游戏,实现一方执白棋,一方执黑棋,通过屏幕上的文字提示,轮流走棋 ,最先使五子相连一方获胜的人人对弈功能。通过本程序的训练,加深对C语言的了解,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。 【关键字】 五子棋 函数 设计目的:本程序旨在进一步训练学生游戏开发的技巧,掌握C语言图形模式下的编程。本程序设计很多图形函数,包括坐标定位;颜色设置(背景色和文本颜色设置)、线条颜色、填充颜色;直线风格、文本风格、填充风格;画线、画圆、画矩形函数;PC扬声器的打开、延迟、关闭;图形系统的初始化和关闭;图形屏幕和文字屏幕的清除;从键盘获取键值等。 功能: 实现界面的初始化功能、下棋功能、胜负判断功能和帮助功能。 1)初始化功能。程序初始化屏幕和棋盘,默认Player1先行。 2)实现下棋功能。程序能实现下棋操作,在下棋过程中能随时退出。 3)胜负判断。程序能对下棋的结果进行判断,分出胜负,并显示获胜信息。 4)显示帮助信息。程序能提示玩家轮到哪方下棋了。 问题分析:首先要实现五子棋的行棋功能,在程序中可以通过坐标来定位棋子的位置,用不同的字符表示黑白棋子,并通过变量的交替实现黑白棋子的交替显示。另一个难点就是对于胜负的判断,这需要通过循环函数的嵌套使用,难点在于逻辑调理的把握,循环之间的对应关系。还有一个难点就是在游戏中能随时返回主菜单,这需要一个选择结构来实现,将主菜单的程序编入主函数,在得到特定指令时返回主函数,从而返回主菜单。下棋过程中对于不断地输入坐标,可以用一个死循环来是实现,在特定的条件下退出循环,返回主函数。 程序设计: 一、主要函数介绍 本程序主要用到了main?()[1]、startGame()、printState()、judge()、help()、aboutThanks()等函数。主函数中设计成死循环,再循环过程中通过选择调用其它函数。被调用的函数运行完后再次返回到主函数中。 主函数main() 运行主函数,首先调用system(color e0)[2]函数,改变运行界面的前景色和背景色。然后进入一个死循环while(1),再循环中输出主菜单的内容,包括标题、开始游戏、游戏帮助、游戏鸣谢、退出程序、请选择等字样。然后,调用scanf()函数,从键盘上获得一个数值付给变量i,接着进行健壮性处理。最后调用switch语句,通过选择调用其它函数。 startGame()函数 此函数为自定义函数,首先用一个for语句实现19*19的棋盘的初步绘制,将19*19的坐标全绘制成“*”状。接着调用printState()函数,实现当前棋盘的显示。然后进入下棋的循环,提示下子一方并调用fflush(stdin) [2]函数清除缓存。然后,通过switch语句,根据从键盘上得到的值做出相应的判断,实现退格键悔棋、Esc键返回主菜单、A-S输入坐标、其他输入错误。接着判断该坐标是否有子,有子提示重新指定坐标,否则,该位置显示相应的棋子。除第一次下子前外,下一步将调用judge()函数,来判断是否有一方获胜。判断结束后再次调用printState()显示当前棋盘。最后交换期权。此函数的核心代码如下: switch(t=getch()) { case 8:{ //退格键悔棋 i=m-A; j=n-A; state[i][j]=*; printState(); printf(\n\t提示:%s方悔棋!\n\n,player?白:黑); player=!player; continue; } break; case 27: {system(cls);return;} break; //Esc键返回主菜单 case 65: {n=t;printf(%C\n,n);getch();} break; //纵坐标输入 …… …… …… case 115: {n=t;printf(%C\n,n);n=n-32;getch();} break; default:printf(\t\t请输入属于A-S||a-s或正确的口令。\n);continue; } i=m-A; j=n-A; if(state[i][j]!=*) //判断是否有子 {

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档