当前位置:文档之家› 贪吃蛇游戏开发文档(最终)

贪吃蛇游戏开发文档(最终)

//当前时间 gotoxy(52+x,y+20); printf("已玩游戏时间:"); CreateThread(NULL,0,LostGameTime,NULL,0,NULL);
gotoxy(iRow,iColoum); printf("-->"); } if(i==-1) return -1; if(i==1) break; } return iResult; }
*********************************END****************************** ********************Tools.h函数END********************************
Snakedd *pSnake=NULL;//存储蛇的头节点地址 Snakedd *pFooted = NULL;//消失的蛇身的节点 int iFooted_x=0; int iFooted_y=0;//新增蛇体的位置 CRITICAL_SECTION hade;//用于线程锁 ///////////////////////////////////////////////////////////////// **********************第一次完成函数:***************************
*************************void GameWord(void)********************* void GameWord(void) {
int x=5; int y=3; int i=0; system("cls"); Block(0,0,25,30); Block(52,0,10,30); gotoxy(10,12); //游戏区域绘制 //printf("游戏开始!"); Snakedd *pResult = ProduceSnake(7); PrintList(pResult); DeleteList(pResult); RandomCoordinate();
printf("━"); } printf("┓"); //下边框 gotoxy(x,y+Hight-1); printf("┗"); for(i=0;i<Wide-1;i++)
{ printf("━");
} printf("┛"); //左边框,右边框 for(i=0;i<Hight-2;i++) {
//当前游戏难度 gotoxy(52+x,y+10); printf("游戏难度:"); gotoxy(52+x,y+11); printf(" 高");
//当前得分 gotoxy(52+x,y+15); printf("当前游戏得分:"); gotoxy(52+x,y+16); printf(" 7777");
***********************void gotoxy(int x,int y)******************* void gotoxy(int x,int y) {
COORD xy;//光标的位置
HANDLE hHand;//句柄变量 hHand=GetStdHandle(STD_OUTPUT_HANDLE);//获取输出的句柄 xy.X=x; xy.Y=y; SetConsoleCursorPosition(hHand,xy);//设置控制台光标的位置 } *********************************END******************************
**********void Block(int x,int y,int Wide,int Hight)************** void Block(int x,int y,int Wide,int Hight) {
int i=0;//上边框 gotoxy(x,y); printf("┏"); for(i=0;i<Wide-1;i++) {
bool Space=true;//空格用于暂停 bool Thread = true; int iIntegral = 0;//积分 int iGrade = 0;//难度等级 //全局变量,用于控制蛇的方向 char Name[20]="";//最高纪录的名字 int iMark=0; //记录的成绩
贪吃蛇游戏开发文档 本文档为稻草人于暑假开发 C 语言版本之链表学习的贪吃蛇游戏文档! 一:游戏分为两个大模块:
一:界面开发(UI): 1:菜单界面; 2:游戏界面; 3:积分板块;
二:游戏开发: 1:界面的控制; 2 : 成长的规则;(1300 升中级,2500 升高级) 3:碰撞检测
//本游戏采用全局使用键盘控制,以及使用了多线程,所以使用了 WINDOWS API 函数, //运行系统:Windos/7/8/10/XP 二:本项目所用到的头文件:
Snake.h: //////////////////////////////////////////////////////////////// //全局变量,用于控制蛇的方向 int Coloum;//Y坐标的变量
//方向控制: int Row_x=2; int Coloum_y=0; //食物位置: int iFood_x; int iFood_y;
//多线程函数: DWORD WINAPI MobileSnake(LPVOID lpChandle); //移动蛇(未实现) DWORD WINAPI KeyboardControl(LPVOID lpChandle);//键盘控制。 DWORD WINAPI LostGameTime(LPVOID lpChandle);//已经用去的时间 //后续函数占位:
int iCnt=0; if(Switch==true)
iCnt=1; else
iCnt=0; CONSOLE_CURSOR_INFO cursor_info = {1, iCnt}; SetConsoleCursorInfo(
GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); } *********************************END******************************
四:函数的实现: Tools.h头文件: **********************第一次完成函数:*************************** ***********************void HideCursor(bool Switch);************* void HideCursor(bool Switch) {
break; iCnt=getch(); switch(iCnt) {
case 72:i=-2;iResult--; if(iResult<0) iResult=Lenght-1; break;
case 80:i= 2;iResult++; if(iResult>=Lenght) iResult=0; break;
//积分板信息控制 //用户信息
gotoxy(52+x,y); printf("用户名:"); gotoxy(52+x,y+1);
printf(" 彭轻松"); //游戏最高分
gotoxy(52+x,y+5); printf("游戏最高分:"); gotoxy(52+x,y+6); printf(" 88888");
数,游戏的成长机制,游戏的碰撞检测等。
Snake.h;
typedef struct Snaked{
int x;
int y;ontent[3]; Snaked *pNext;//指向下一个结构体 Snaked *pHead;//指向上一个结构体 }Snakedd;//定义蛇身体的结构体 void GameWord(void);//绘制游戏界面 void ConsoleControl(void);//控制台显示格式控制 void MenuControl(void);//菜单控制中心 Snakedd *ProduceSnake(int iCnt); //产生蛇的身体,iCnt代表的是蛇的 身体有几节。 void PrintList(Snakedd *pHead);//打印出链表(蛇身) void DeleteList(Snakedd *pHead);//销毁链表 void RandomCoordinate();//产生一个随机坐标,并且打印出食物
Tools.h头文件为:辅助头文件,它里面包含了对控制台的一些控制
Tools.h: void HideCursor(bool Switch);//光标显示与隐藏函数;true;显示光 标;false:隐藏光标 void gotoxy(int x,int y); void Block(int x,int y,int Wide,int Hight);//绘制方框函数 x,y代表 方框起始的左上角坐标;Wide:输出方框的长; Hight:输出方框的高 int Menu(char* MenuTxt[],int Lenght,int Wide,int Hight,int x,int y);//菜单选项绘制; MenuTxt:代表要绘制出的菜单选项; Lenght:代表选项 的总项目数;x,y代表方框起始的左上角坐标;Wide:输出方框的长; Hight: 输出方框的高;返回值;-1 代表左键 ;其他值代表右键
相关主题