- 时间:2021-02-11 19:19 编辑:金浩男 来源:蚂蚁资源 阅读:92
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于游戏小程序源码(微信小程序游戏源码开源)的相关内容,详细讲解用C++编写的小游戏源代码,求一些手机游戏的源代码,求几个C++在VC6.0环境下编写的游戏小程序的源代码实例教程等,希望可以帮助到您。
用C++编写的小游戏源代码,50的大小:#包含#包含#包括#包括使用命名空间std; const int n = 15; // 15 * 15 perrings const char castboarblag =''; //棋盘logo const char flag1 ='o'; //播放器1或计算机国际象棋标志const char flag2 ='x'; //播放器2棋子符号键入型struct坐标//坐标类{int x; //表示行y; //表示}坐标;类古邦/ {initchessboard(); //播放器1或计算机坐标POS2; //播放器2int n = 0; //播放器2int n = 0;虽然(1){int mode = choicemode();虽然(1){if(mode == 1)//计算机vs播放器{compoinchess(pos1,flag1); //计算机国际象棋(GetVictory(POS1,0,FLAG1)= = 1)// 0表示计算机,这意味着胜利; Playchess(POS2,2,Flag2); //播放器2播放国际象棋,如果(getvictory(pOS2,2,FLAG2))// 2显示播放器2Break;} else //播放器1vs播放器2 {playchess(pos1,1,flag1); //播放器1 cour如果(getVictory(pos1,1,flag1))// 1表示玩家1break; Playches,(POS2,2,Flag2); //玩家2播放国际象棋(GetVictory(POS2,2,Flag2))// 2表示玩家2Break; cout> c; if(c =='n')中断;受保护:int cot choicemode()//选择模式{int i = 0;系统(“CLS”); //系统调用,清除屏幕initchessboard(); //重新初始化检查板COUT> I; if(i == 0)//选择0出口退出(1); if(i == 1 || i == 2)返回i; cout> pos.x >> pos.y; if(判断值(POS)== 1)//协调合法性休息; cout 0 && pos.x 0 && pos.y 0? begin =(pos.y - 4):begin = 1; (pos.y + 4)> n? end = n:end =(pos.y + 4); for(int i = pos.x,j = begin; j + 4 0?begin =(pos.x - 4):开始= 1; (pos.x + 4)> n? end = n:end =(pos.x + 4); for(int j = pos.y,i = begin; i + 4 pos.y?len = pos .y - 1:len = pos。xi - 1;如果(len> 4)len = 4; begin = pos。 X - Len; //水平开始位置Begin1 = POS.Y - Len; //纵向位置POS.x> POS.Y?LEN =(N - POS.X):LEN =(N - POS.Y);如果(Len> 4)Len = 4; end = POS.x + Len; // END1 = POS.Y + LEN; // long(int i = begin,j = begin1;(i + 4(n - pos.y) ))?len =(n - pos.y):len = pos.x - 1;如果(len> 4)len = 4; begin = pos.x - len; //地平线开始位置begin1 = pos。y + len; //纵向位置(n - pos.x)>(pos.y-1)?len =(pos.y - 1):len =(n - pos.x);如果len> 4)len = 4 ; end = pos.x + len; ////////////.y - len; // long(int i = begin,j = begin1; i + 4 = end1); ++ i,--j){if( _Chessboard [i] [j] ==标志&& _棋盘[i + 1] [j - 1] == flag && _棋盘[i + 2] [j - 2] == flag && _棋盘[i + 3] [j - 3] ==标志&& _棋盘[i + 4] [j - 4] ==标志)返回1;} for(int i = 1; i
求一些手机游戏的源代码,游戏插件编程棋游戏引擎其他游戏射击游戏仿真服务器其他智能游戏_99999.rar - 经典java游戏改革磁带数据库java编写的游戏程序可以帮助Java编程爱好者扩展的想法并提高编程水平。 javaopenglgamedevseiral1.rar-OpenGL游戏开发。首先,建立库模块Gamelib II,构建MFC框架。,Visual C ++ Kgame.rar-Mature RPG引擎,Flysky发布。蕾丝发动机。,Visual C ++ Tank Wars(Java).zip-A非常好的纯粹Java准备好的坦克战争游戏有点混乱。它是用Jcreator3.0写的。 javacddgge-saintfighter-src-code.rar-a complete 2d滚动游戏示例,您可以在编译后运行播放。使用直接绘制,直接输入,直接声音;游戏逻辑完成,有喜欢游戏编程的初学者的分数系统。 Visual C ++ Koulesforwindows.zip - 从Linux移植的一款小型游戏,您可以学习其编程想法!,Visual C ++ TC贪婪蛇。 RAR-Greeyy TC游戏程序源代码,我们在高级C语言类中使用了一个学期完成。 ,Visual C ++ A3DWithDX9.RAR-Advanced 3D游戏编程使用DirectX 9.0英文电子版,可供参考和学习。 Visual C ++ DirectX8.1sdk.rar-direct8.1sdk游戏编程必须具有SDK 8.1应用范围,Visual C ++ RobotDemo_1010.rar-Mobile Robot遍历MemiconStration程序在未知的环境空间中,防止多个障碍。移动机器人可以遍历所有空格,Visual C ++三维航行游戏实例.rar-这是一个三维空战游戏的示例,绘图引擎是OpenGL。游戏内容是空间中的三维游戏。 ,Visual C ++导弹测试仿真系统。 RAR - 这是仿真系统的仿真。在工程设计领域,设计人员可以使用可视化技术来发现设计缺陷,从而改善设计。 ,Visual C ++ Advanced.3d.graphics.and.Rastezization-3D游戏编程Classic:Advanced.3D.Graphic.and.Rasterization,书籍和许多示例,Visual C ++特效游戏编程。特种效果游戏编程Visual C ++游戏编程宝石2. rar-game编程精华02-包含数十个游戏编程示例,Visual C ++游戏编程宝石1.游戏编程精华01-包含数十个gAME编程示例,Visual C ++ AI游戏编程Wisdom.rar-AI游戏编程Wisdom Book源,Visual C ++ Delphix创建RPG游戏。 Rar-Delphix创建RPG游戏.rar,Visual C ++冒险游戏写作和下拉菜单设计。拉链冒险游戏写作和下拉菜单设计C语言与C语言和下拉菜单,C_C ++矿山游戏源代码。 RAR-MINE游戏源代码,非常经典的游戏,VC ++ 6.0和Windows2000简体中文版编译。 ,Visual C ++ Copy DL_01.rar-Puzzle主要是拼写映射为5到6岁的儿童,非常简单,每个人都可以看下来的Minesweight Mine.rar - 主框架写的简单矿山简单,主框架是基于在对话框中,Visual C ++ Snake-C.rar-A简单的贪婪蛇游戏,在DOS Envir中运行innest。 ,C_C ++ C ++课程设计迷宫。 rar-turbo c ++ 2.0迷宫,这是我的课程设计,有一个音乐玩得分,音乐和游戏是平行的,你可以听音乐,Visual C ++ 4_6剑奇侠游游戏源代代.rar-剑侠游游戏源源源源源源源源源源invering游戏类似于win-tc编译的窗口界面。,c_c ++ hw2-04.rar - 这是一个程序,简单,易于理解,Visual C ++ Dick- 0 [迷宫)1] .0.1.tar.gz-dick棋盘游戏是Qt,GTK和控制台提供的棋盘(类似于TIC-TAC-TOE),4个棋子,现在是TIC-TAC-TOE 。 ,C ++ Obsolete_LVL [1] .tar.gz-X-Pired是一种运动Mystery游戏,用C语言编写,使用SDL,SDL_Mixer,SDL_Image和SDL_GFX按照GNU GPL术语发布。每个级别的目标是到达出口以避免撒尿ng桶和其他东西。 ,C_C ++简单推箱游戏。 rar-a push box游戏,算法非常好,值得看见,学习位图也有助于学习位图,Visual C ++木锤击鼠标.lar-a小游戏源代码,使用地图技术实现,图形编程示例,Visual C ++打机游戏。 RAR-A与VC开发的一款小型游戏,对图形程序进行了良好的参考,Visual C ++运行裸体男性程序源代码。 Rar-Desktop游戏,类似的桌面精灵,非常好的桌面程序开发程序,Visual C ++ MD3.rar-3d游戏类,C ++建造者爱好者,绝对喜欢它! ,C ++ Builder2004061909434748技术。 RAR-ANT-BIG补贴传奇3外部源程序,一个漂亮的游戏源代码,中间程序员,Visual C ++ Sanguolu.rar - 三位英雄游戏和技术说明,VC完整的应用程序代码。编译环境:DirectX8.1。 Windows2000。 VC6.0,Visual C ++ Basketball.rar-nba星名称问答。出现明星图片,读者需要输入星的名称。公告进入下一级别。 JavaFcnes游戏模拟器的源代码.zip-这是我用FCNES游戏模拟器编写的源代码,使用模拟器运行FCNES所有游戏,我已经测试过,Visual C ++黑白国际象棋v1.0试验网络源代码.RAR-这是在VC中写的黑白国际象棋网络游戏,我对该计划进行了介绍。 ,Visual C ++编译益智游戏。 rar-这是一个编译和写作益智游戏的源代码,我必须在一个中工作日,chm卷。 RAR-收集免费的计算机学习,编程材料和出色的网络资源。很多支持,Visual C ++ Java游戏编程初步源代码.zip - 我想用Java为初学者写一个程序来看这本书,可以帮你说出门。没有必要提取密码,javacs最着名的作弊ogc.rar - 我控制了明星,显示敌人的朋友很好奇,我不知道我是否不支持1.5版本的CS。 ,Visual C ++ T3DCHAP12人工智能。 RAR - 轻松的入门人工智能代码100%编译,推荐DX9SDK + VC7 + DX9SDK2005工具包,Visual C ++超级弹丸.-移动游戏在Brew平台上开发的超级弹球源代码,Visual C ++贪婪蛇游戏.rar-替代贪婪的蛇游戏,一个simPle Java游戏,没有特别的。 (重印),如果没有,希望网站管理员通过。,Java Star Sheeping。 Rar-Star Sheeble和Windows的矿井概况。修改几个错误。我希望通过!,Visual Basicsf_200531701038.rar-尽管建立地图引擎的事实是一个简单的事情,但我或者我经常接受来自不同人的各种人,问我应该如何做到,或者我最初应该做到这一点建立了地图引擎是一件简单的事情,它也是错的,也许这些问我你是非常懒惰的人(你怎么说?)。因为每个人对这个主题更感兴趣,所以本章我将解释如何构建高效的2D地图引擎..,Visual C ++ Todd编写了雷可的源代码。 Rar-我使用BCB的矿山游戏,效果并不差。 ,C ++ Builder
求几个C++在VC6.0环境下编写的游戏小程序的源代码实例教程,百度,见蛇游戏#包括LTIOStream.h> BR P>定义N 21位置无效的GOTOXY(X,Y)/ /函数Coord位置; br p> pos.x = 2 * x; pos.y = y setconsolecurreposition(getstdhandle(std_output_handle),pos)}无效的颜色(int)/ / color function {setconsoletextatttribute(getstdhandle(std_output_handle),a);} init(苹果[2])/ /初始化函数(初始化很大墙壁显示信息,苹果){i; //初始化墙壁长壁[n +2] [n + 2] = {0 0}}(i = 1; <= N + + ){(J = 1; <= N; J + +)墙[I] [J] = 1; BR p>}颜色(11);(i = 0; i {(j = 0 ,j 苹果[0]苹果[0] = rand()%n +1; //苹果苹果1] = rand()%n + 1; gotoxy(苹果[0],Apple [1]);颜色(12); COUT <评分:“<< endl; >(1)/ /进入消息周期{尾部[0] =蛇[LEN-1] [0]; />尾部[1] =蛇[LEN-1] [1]; gotoxy(尾部[0],尾部[1]);颜色(11);法庭<<“请,OE”<< endl; } :() { INT I,J **蛇= NULL; 解释苹果[2]; 解释得分= 0; 时间解释[2]; 诠释莱恩? ? ; 字符路='P'函数srand((无符号)时间(NULL));的init(苹果); 蛇(**)的realloc(蛇,sizeof(*)的* LEN); 为(i = 0; 0,i - ){[i] [0] =蛇[I-1] [0;蛇[i] [1] =蛇[i -1] [1]; gotoxy(蛇[i] [0],蛇[i] [1]); <<“,”<< endl; (I = LEN-1> {'w':[0] [1] - 蛇;突破;案例,'s':Snake 0 [1] + +;突破; [0] [0] - 突破; “e”:“e”:蛇[0] [0 + +;突破,“蛇;布尔p>默认值:break; gotoxy(蛇[0] [0],蛇[0] [1]); ...... /颜色(14);法庭
{ 2,N / 2); P>颜色(30);法院<<“OO”<< endl; 睡眠(ABS(200-0.5 *分数)); ==苹果,(蛇[0] [0] ==苹果[0] &&蛇[1] [1] [1])/ /蛇的分数吃苹果加上长的蛇加1 {得分+ +; LEN + +; 蛇=(**)的realloc (蛇中,sizeof(*)* LEN); 蛇[LEN-1] =(*)的malloc(sizeof(廉政)* 2); 苹果[0 = RAND()%N +1; 苹果[1] = RAND()%N +1; gotoxy(苹果[0],苹果[1] ); 颜色(12); 法院<<“,OE”<< endl; gotoxy(N +5,3) 颜色(20); 法院<<得分<< endl; } (蛇[ 1] [1] == 0 | |蛇[1] [1] == | |蛇[0] [0] == 0 | |蛇] [0] == N)/ /打围栏失败...... / a>专业领域:C / C + +中国流行参与活动:参与活动
责任编辑(金浩男)
以上就是关于**游戏小程序源码,微信小程序游戏源码开源**的全部内容,了解更多请关注蚂蚁资源网。
- 售微星二开源码
- 求C语言小游戏源程序,我的楼主可以自己玩一下 试试吧 #define N 200 #include <graphics.h> #include <stdlib.h> #include <dos.h> #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0;/*得分*/ int gamespeed=50000;/*游戏速度自己调整*/ struct Food { int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/ }food;/*食物的结构体*/ struct Snake { int x[N]; int y[N]; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/ }snake; void Init(void);/*图形驱动*/ void Close(void);/*图形结束*/ void DrawK(void);/*开始画面*/ void GameOver(void);/*结束游戏*/ void GamePlay(void);/*玩游戏具体过程*/ void PrScore(void);/*输出成绩*/ /*主函数*/ void main(void) { Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/ } /*图形驱动*/ void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc"); cleardevice(); } /*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/ void DrawK(void) { /*setbkcolor(LIGHTGREEN);*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i<=600;i+=10)/*画围墙*/ { rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ } for(i=40;i<=450;i+=10) { rectangle(50,i,59,i+10); /*左边*/ rectangle(601,i,610,i+10);/*右边*/ } } /*玩游戏具体过程*/ void GamePlay(void) { randomize();/*随机数发生器*/ food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ snake.life=0;/*活着*/ snake.direction=1;/*方向往右*/ snake.x[0]=100;snake.y[0]=100;/*蛇头*/ snake.x[1]=110;snake.y[1]=100; snake.node=2;/*节数*/ PrScore();/*输出得分*/ while(1)/*可以重复玩游戏,压ESC键结束*/ { while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/ { if(food.yes==1)/*需要出现新食物*/ { food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ food.x++; while(food.y%10!=0) food.y++; food.yes=0;/*画面上有食物了*/ } if(food.yes==0)/*画面上有食物了就要显示*/ { setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) { case 1:snake.x[0]+=10;break; case 2: snake.x[0]-=10;break; case 3: snake.y[0]-=10;break; case 4: snake.y[0]+=10;break; } for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ { if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) { GameOver();/*显示失败*/ snake.life=1; break; } } if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55|| snake.y[0]>455)/*蛇是否撞到墙壁*/ { GameOver();/*本次游戏结束*/ snake.life=1; /*蛇死*/ } if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ break; if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/ { setcolor(0);/*把画面上的食物东西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ snake.node++;/*蛇的身体长一节*/ food.yes=1;/*画面上需要出现新的食物*/ score+=10; PrScore();/*输出新得分*/ } setcolor(4);/*画出蛇*/ for(i=0;i<snake.node;i++) rectangle(snake.x[i],snake.y[i],snake.x[i]+10, snake.y[i]-10); delay(gamespeed); setcolor(0);/*用黑色去除蛇的的最后一节*/ rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(!kbhit)*/ if(snake.life==1)/*如果蛇死就跳出循环*/ break; key=bioskey(0);/*接收按键*/ if(key==ESC)/*按ESC键退出*/ break; else if(key==UP&&snake.direction!=4) /*判断是否往相反的方向移动*/ snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; }/*endwhile(1)*/ } /*游戏结束*/ void GameOver(void) { cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch(); } /*输出成绩*/ void PrScore(void) { char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(55,20,str); } /*图形结束*/ void Close(void) { getch(); closegraph(); }
- 2021-02-11 19:19:39
- LouisWang
- #include<graphics.h>#include<stdlib.h>#include<dos.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;int gamespeed=32000;struct Food /*食物的结构体*/{int x; /*食物的横坐标*/int y; /*食物的纵坐标*/int yes; /*食物是否出现的变量*/}food;struct Snack /*蛇的结构体*/{int x[N];int y[N];int node; /*蛇的节数*/int direction; /*蛇的方向*/int life; /*蛇的生命,0活着,1死亡*/}snake;void Init(void); /*图形驱动*/void Close(void); /*关闭游戏函数*/void DrawK(void); /*画图函数*/void GameOver(void);/*输出失败函数*/void GamePlay(); /*游戏控制函数 主要程序*/void PrScore(void); /*分数输出函数*/DELAY(char ch)/*调节游戏速度*/{if(ch=='3'){delay(gamespeed); /*delay是延迟函数*/delay(gamespeed);}else if(ch=='2'){delay(gamespeed);}}Menu()/*游戏开始菜单*/{char ch;printf("Please choose the gamespeed:\n");printf("1-Fast 2-Normal 3-Slow\n");printf("\nPlease Press The numbers..\n");do{ch=getch();}while(ch!='1'&&ch!='2'&&ch!='3');clrscr();return(ch);}/*主函数*/void main(void){int ch;ch=Menu();Init();DrawK();GamePlay(ch);Close();}void Init(void){int gd=DETECT,gm;initgraph(&gd,&gm,"c:\\tc");cleardevice();}void DrawK(void){setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=50;i<=600;i+=10){rectangle(i,40,i+10,49); /*画出上边框*/rectangle(i,451,i+10,460); /*画出下边框*/}for(i=40;i<=450;i+=10){rectangle(50,i,59,i+10); /*画出左边框*/rectangle(601,i,610,i+10); /*画出右边框*/}}void GamePlay(char ch){randomize(); /*随机数发生器*/food.yes=1; /*1代表要出现食物,0表示以存在食物*/snake.life=0;snake.direction=1;snake.x[0]=100;snake.y[0]=100;snake.x[1]=110;snake.y[1]=100;snake.node=2;PrScore();while(1) /*可以重复游戏*/{while(!kbhit()) /*在没有按键的情况下蛇自己移动*/{if(food.yes==1) /*需要食物*/{food.x=rand()%400+60;food.y=rand()%350+60; /*使用rand函数随机产生食物坐标*/while(food.x%10!=0)food.x++;while(food.y%10!=0)food.y++; /*判断食物是否出现在整格里*/food.yes=0; /*现在有食物了*/}if(food.yes==0) /*有食物了就要显示出来*/{setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);}for(i=snake.node-1;i>0;i--) /*贪吃蛇的移动算法*/{snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1]; /*贪吃蛇的身体移动算法*/}switch(snake.direction) /*贪吃蛇的头部移动算法,以此来控制移动*/{case 1:snake.x[0]+=10;break;case 2:snake.x[0]-=10;break;case 3:snake.y[0]-=10;break;case 4:snake.y[0]+=10;break;}for(i=3;i<snake.node;i++) /*判断是否头部与身体相撞*/{if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){GameOver();snake.life=1;break;}}/*下面是判断是否撞到墙壁*/if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455){GameOver();snake.life=1;}if(snake.life==1) /*如果死亡就退出循环*/break;if(snake.x[0]==food.x&&snake.y[0]==food.y) /*判断蛇是否吃到食物*/{setcolor(0);rectangle(food.x,food.y,food.x+10,food.y-10); /*吃的食物后用黑色将食物擦去*/snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*现把增加的一节放到看不到的地方去*/snake.node++;food.yes=1;score+=10;PrScore();}setcolor(4); /*每次移动后将后面的身体擦去*/for(i=0;i<snake.node;i++)rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);delay(gamespeed);DELAY(ch);setcolor(0);rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);}if(snake.life==1)break;key=bioskey(0); /*接受按键*/if(key==ESC)break;elseif(key==UP&&snake.direction!=4)/*判断是否改变方向*/snake.direction=3;elseif(key==RIGHT&&snake.direction!=2)snake.direction=1;elseif(key==LEFT&&snake.direction!=1)snake.direction=2;elseif(key==DOWN&&snake.direction!=3)snake.direction=4;}}void GameOver(void){cleardevice();setcolor(RED);settextstyle(0,0,4);outtextxy(200,200,"GAME OVER");getch();}void PrScore(void){char str[10];setfillstyle(SOLID_FILL,YELLOW);bar(50,15,220,35);setcolor(6);settextstyle(0,0,2);sprintf(str,"scord:%d",score);outtextxy(55,20,str);}void Close(void){getch();closegraph();}贪吃蛇
- 2021-02-11 19:19:39
- visitor
- 以下是贪吃蛇源代码:#include<iostream.h>#include<windows.h>#include<time.h>#include<stdlib.h>#include<conio.h>#define N 21void gotoxy(int x,int y)//位置函数{COORD pos;pos.X=2*x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}void color(int a)//颜色函数{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果){int i,j;//初始化围墙int wall[N+2][N+2]={{0}};for(i=1;i<=N;i++){for(j=1;j<=N;j++)wall[i][j]=1;}color(11);for(i=0;i<N+2;i++){for(j=0;j<N+2;j++){if(wall[i][j])cout<<"■";else cout<<"□" ;}cout<<endl;}gotoxy(N+3,1);//显示信息color(20);cout<<"按 W S A D 移动方向"<<endl;gotoxy(N+3,2);color(20);cout<<"按任意键暂停"<<endl;gotoxy(N+3,3);color(20);cout<<"得分:"<<endl;apple[0]=rand()%N+1;//苹果apple[1]=rand()%N+1;gotoxy(apple[0],apple[1]);color(12);cout<<"●"<<endl;}int main(){int i,j;int** snake=NULL;int apple[2];int score=0;int tail[2];int len=3;char ch='p';srand((unsigned)time(NULL));init(apple);snake=(int**)realloc(snake,sizeof(int*)*len);for(i=0;i<len;i++)snake[i]=(int*)malloc(sizeof(int)*2);for(i=0;i<len;i++){snake[i][0]=N/2;snake[i][1]=N/2+i;gotoxy(snake[i][0],snake[i][1]);color(14);cout<<"★"<<endl;}while(1)//进入消息循环{tail[0]=snake[len-1][0];tail[1]=snake[len-1][1];gotoxy(tail[0],tail[1]);color(11);cout<<"■"<<endl;for(i=len-1;i>0;i--){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];gotoxy(snake[i][0],snake[i][1]);color(14);cout<<"★"<<endl;}if(kbhit()){gotoxy(0,N+2);ch=getche();}switch(ch){case 'w':snake[0][1]--;break;case 's':snake[0][1]++;break;case 'a':snake[0][0]--;break;case 'd':snake[0][0]++;break;default: break;}gotoxy(snake[0][0],snake[0][1]);color(14);cout<<"★"<<endl;Sleep(abs(200-0.5*score));if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1{score++;len++;snake=(int**)realloc(snake,sizeof(int*)*len);snake[len-1]=(int*)malloc(sizeof(int)*2);apple[0]=rand()%N+1;apple[1]=rand()%N+1;gotoxy(apple[0],apple[1]);color(12);cout<<"●"<<endl;gotoxy(N+5,3);color(20);cout<<score<<endl;}if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败{gotoxy(N/2,N/2);color(30);cout<<"失败!!!"<<endl;for(i=0;i<len;i++)free(snake[i]);Sleep(INFINITE);exit(0);}}return 0;}
- 2021-02-22 00:30:01