下载此文档

五子棋课程设计论文 源代码.doc


文档分类:IT计算机 | 页数:约52页 举报非法文档有奖
1/52
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/52 下载此文档
文档列表 文档介绍
XXXX 大学
本科生课程论文
论文题目五子棋游戏
学生专业班级 XXXXXX
学生姓名(学号) XXX xxxxxx
指导教师 XXX
完成时间 2013-09-04
2013 年 09 月 07 日
五子棋游戏
【摘要】
为了设计人人对弈模式的五子棋游戏系统,采用了C语言函数模块化程序设计方法,利用Visual C++ ,实现一方执白棋,一方执黑棋,通过屏幕上的文字提示,轮流走棋,最先使五子相连一方获胜的人人对弈功能。通过本程序的训练,加深对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]!=

五子棋课程设计论文 源代码 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数52
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rdwiirh
  • 文件大小672 KB
  • 时间2018-02-21