您好,欢迎访问三七文档
(郑重声明:本文绝对本人原创,盗版必究)(免费提供给爱好C语言的朋友,希望志同道合的朋友们一起加油!)(运行环境TurboC,下载的朋友把图形驱动路径改为自己驱动实际路径即可)(对本文有意见或建议者,请联系Q772833493)(本文流程图没画,函数功能没有介绍。但是代码不长,细细研究一下一定会弄明白)基于C语言的拼图游戏设计彭云毅,黄波(成都信息工程学院,四川,成都610225)摘要:近年来随着科技的飞速发展,C语言的应用正在不断深入。C语言目前是国际上比较流行的计算机高级编程语言之一,因其简洁、使用方便且具有强大的功能而受到编程人员的普遍青睐。它既适合作为系统描述语言,也可用来编写系统软件,还可以用来编写应用软件和设计游戏等。本文着重分析C语言实现一个简单的拼图游戏,旨在介绍拼图游戏的实现方法。编程工具TurboC。涉及内容:TC图形库的使用、随机数的产生、光标定位。关键词:C语言;拼图;TurboC;图形库中图分类号:TP3文献标识码:APuzzleGamebasedontheCLanguagePengYun-yi(ChengduUniversityofInformationTechnology,SichuanChengdu,China,610225)Abstract:Withtherapiddevelopmentofscienceandtechnologyinrecentyears,Clanguage,applicationsarecontinuouslyindepth.Clanguageisnowmorepopularinternationallyinhigh-levelcomputerprogramminglanguage,oneofitssimplicity,easytouseandwithpowerfulfeaturesfavoredbyordinaryprogrammers.Itissuitableasasystemdescriptionlanguage,canalsobeusedtowritesystemsoftware,applicationsoftwarecanalsobeusedtowritesystemsoftware,applicationsoftwarecanalsobeusedtowriteanddesigngames.ThistitlefocusesontheanalysisofClanguagetoachieveasimplejigsawpuzzle,puzzlegamedesignedtointroducerealizationmethod.ProgrammingtoolTurboC.Content:useoftheTCgraphicslibrary,randomnumbergeneration,andpositioningthecursor.Keywords:Clanguage;Puzzle;TurboC;graphics目录摘要..........................................错误!未定义书签。Abstract......................................错误!未定义书签。第一章绪论..................................................41.1设计的功能......................................................41.2游戏编程思想....................................................41.2.1确定软件的功能....................................41.2.2定义软件的核心数据结构............................41.2.3对整个软件进行功能模块化分........................41.2.4整个拼图游戏的功能介绍............................5第二章游戏的总体设计........................................52.1功能模块设计....................................................52.1.1系统模块图........................................52.1.2任务执行流程图....................................52.2数据结构设计....................................................62.2.1设置全局变量......................................62.2.2定义结构体........................错误!未定义书签。2.3函数功能描述....................................................6第三章拼图游戏的程序实现....................................73.1源码分析........................................................73.1.1程序预处理........................................73.1.2初始化模块........................................73.1.3画图模块..........................................73.1.4移动图形模块......................错误!未定义书签。3.1.5功能控制模块......................错误!未定义书签。3.1.6主函数............................................83.2运行结果分析....................................................113.2.1进入游戏界面.....................................113.2.2游戏结束.........................................13第四章总结..................................错误!未定义书签。参考文献.....................................................14第一章绪论1.1设计的功能功能包括方向键控制方块移动、空格键重新开始、Esc键退出。1.2游戏编程思想1.2.1确定软件的功能玩家可以通过按键上、下、左、右实现数字换位,并且有记录移动次数功能,直到把数字矩阵排列成为12345678即为胜利。“space”重新开局或“Esc”退出游戏。1.2.2定义软件的核心数据结构全局变量puzz[9]为九宫格的10个数字;方格的移动就是一次次的刷新屏幕,puzz[n]为0的方格,既不打印充填矩形,也不打印数字(九宫格总有一个个空缺,我用0来标记);change(a,b)作用是交换puzz[9]数组元素的顺序,通过数组内元素的顺序变化来控制九宫格的打印情况。1.2.3对整个软件进行功能模块化分1.初始化:首先显示欢迎屏幕,然后按任意键(Esc除外)进入游戏初始化界面,此时puzz[9]={1,2,3,4,5,6,7,8,0},屏幕宫格顺序排列。2.进入游戏循环:在初始化界面按任意键进入游戏循环,此时宫格被随机打乱;这是可以按方向键控制方格移动;无效按键做忽略处理(如果空格已在最底端,则按up键时无效)。游戏是死循环,用while(1)实现;3.判断是否胜利:游戏在循环中,每次执行一次按键操作,都会扫描一次当前数组是否与初始化时相符合,若相符,则游戏成功,在中间宫格上打印出一个红色五角星,上面打印文字“SUCCESSFUL!!”。然后按任意键再次进入初始化界面,此时可以继续玩或者退出游戏。1.2.4整个拼图游戏的功能介绍1.初始化屏幕。2.方向键控制宫格移动方向。3.计数。4.空格键复位游戏。5.Esc键退出游戏。第二章游戏的总体设计2.1功能模块设计本程序包括4个模块,分别是初始化模块、按键模块、交换模块和图形打印模块。2.1.1系统模块图初始化模块按键模块交换模块图形打印模块拼图游戏2.1.2任务执行流程图(N/A)2.2数据结构设计2.2.1设置全局变量①定义puzz[9]一维数组,记录九宫格的数据变化。②i初始化界面的提示语,j获取空格位置,k移动次数。③space空缺位置2.3函数功能描述(N/A)第三章拼图游戏的程序实现3.1源码分析3.1.1程序预处理/*加载头文件*/#includestdio.h#includestdlib.h#includeconio.h#includetime.h#includegraphics.h/*定义全局变量*/intpuzz[9];//九格游戏数组inti=0,j,k;//i初始化界面的提示语,j获取空格位置,k移动次数intspace;//空缺位置/*自定义函数原型*/voidinterface()//界面,包括打印充填矩形和数字voidchange(inta,intb)//交换voidpress()//按键voidstart()//初始化和判断是否胜利屏幕默认分辨率640*4803.1.2初始化模块voidstart()//初始化和判断是否胜利{inta,b,c;intstar[22]={300,120,320,160,360,160,320,200,340,240,300,200,260,240,280,200,240,160,280,160,300,120};k=0;for(a=0;a8;a++)puzz[a]=a+1;puzz[8]=0;interface();for(c=0;c100;c++)//随机打乱顺序{a=rand()%9;b=(a+2)%8;//关于有无解问题,搞不清楚,引用的change(a,b);}while(1){interface();for(a=0;a8;a++)if(puzz[a]!=a+1)break;if(a==8){drawpoly(11,star);//五角星setcolor(1);//文本“SUCCESSFUL”颜色setfillstyle(1,4);//五角星填充色floodfill(300,150,15);//五角星内一点outtextxy(260,180,SUCCESSFUL!!);getch();start();}for(j=0;j=8;j++)if(puzz[j]==0)break;space=j;press();}}3.1.3画图模块voidinterface()//界面,包括打印充填矩形和数字{clearviewport();//清楚屏幕图形setbkcolor(6);//设置背景色setfillstyle(2,2);//矩形块颜色if(puzz[0]!=0)bar(160,60,240,140);if(puzz[1]!=0)bar(260,60,340,140);if(puzz[2]!=0)bar(360,60,440,140);if(puzz[3]!=0)bar(160,160,240,240);if(puzz[4]!=0)bar(260,160,340,240);if(puzz[5]!=0)bar(360,160,440,240);if(puzz[6]!=0)bar(160,260,240,340);if(puzz[7]!=0)bar(260,260,340,340);if(puzz[
本文标题:C语言设计拼图游戏
链接地址:https://www.777doc.com/doc-3970503 .html