首先需要新建一个源代码,然后输入最基本的程序框架。
然后在printf后输入%d,在%d后面填写你想要运行的算术。
下一步就是检查代码并且保存下来,记得格式是c语言。
最后点击运行就可以了,点击编译运行,点击任意键,代码就可以运行了。
如果你还是不明白具体如何 *** 作,可以去一些app上,有很多人用devc做一些简单的游戏,你可以按照他们的步骤一步一步做,或者是去看教程,按照教程所教的内容一步一步来,这样就可以成功编写游戏了。
#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a\x0d\x0a#define U 1\x0d\x0a#define D 2\x0d\x0a#define L 3\x0d\x0a#define R 4 //蛇的状态,U:上 ;D:下;L:左 R:右\x0d\x0a\x0d\x0atypedef struct SNAKE { //蛇身的一个节点\x0d\x0aint x\x0d\x0aint y\x0d\x0astruct SNAKE *next\x0d\x0a} snake\x0d\x0a\x0d\x0a//全局变量//\x0d\x0aint score=0,add=10//总得分与每次吃食物得分。\x0d\x0aint status,sleeptime=200//每次运行的时间间隔\x0d\x0asnake *head, *food//蛇头指针,食物指针\x0d\x0asnake *q//遍历蛇的时候用到的指针\x0d\x0aint endgamestatus=0//游戏结束的情况,1:撞到墙;2:咬到自己;3:主动退出游戏。\x0d\x0a\x0d\x0a//声明全部函数//\x0d\x0avoid Pos()\x0d\x0avoid creatMap()\x0d\x0avoid initsnake()\x0d\x0aint biteself()\x0d\x0avoid createfood()\x0d\x0avoid cantcrosswall()\x0d\x0avoid snakemove()\x0d\x0avoid pause()\x0d\x0avoid gamecircle()\x0d\x0avoid welcometogame()\x0d\x0avoid endgame()\x0d\x0avoid gamestart()\x0d\x0a\x0d\x0avoid Pos(int x,int y)//设置光标位置\x0d\x0a{\x0d\x0aCOORD pos\x0d\x0aHANDLE hOutput\x0d\x0apos.X=x\x0d\x0apos.Y=y\x0d\x0ahOutput=GetStdHandle(STD_OUTPUT_HANDLE)\x0d\x0aSetConsoleCursorPosition(hOutput,pos)\x0d\x0a}\x0d\x0a\x0d\x0avoid creatMap()//创建地图\x0d\x0a{\x0d\x0aint i\x0d\x0afor(i=0ix=24\x0d\x0atail->y=5\x0d\x0atail->next=NULL\x0d\x0afor(i=1inext=tail\x0d\x0ahead->x=24+2*i\x0d\x0ahead->y=5\x0d\x0atail=head\x0d\x0a}\x0d\x0awhile(tail!=NULL) { //从头到为,输出蛇身\x0d\x0aPos(tail->x,tail->y)\x0d\x0aprintf("■")\x0d\x0atail=tail->next\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aint biteself()//判断是否咬到了自己\x0d\x0a{\x0d\x0asnake *self\x0d\x0aself=head->next\x0d\x0awhile(self!=NULL) {\x0d\x0aif(self->x==head->x &&self->y==head->y) {\x0d\x0areturn 1\x0d\x0a}\x0d\x0aself=self->next\x0d\x0a}\x0d\x0areturn 0\x0d\x0a}\x0d\x0a\x0d\x0avoid createfood()//随机出现食物\x0d\x0a{\x0d\x0asnake *food_1\x0d\x0asrand((unsigned)time(NULL))\x0d\x0afood_1=(snake*)malloc(sizeof(snake))\x0d\x0awhile((food_1->x%2)!=0) { //保证其为偶数,使得食物能与蛇头对其\x0d\x0afood_1->x=rand()%52+2\x0d\x0a}\x0d\x0afood_1->y=rand()%24+1\x0d\x0aq=head\x0d\x0awhile(q->next==NULL) {\x0d\x0aif(q->x==food_1->x &&q->y==food_1->y) { //判断蛇身是否与食物重合\x0d\x0afree(food_1)\x0d\x0acreatefood()\x0d\x0a}\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(food_1->x,food_1->y)\x0d\x0afood=food_1\x0d\x0aprintf("■")\x0d\x0a}\x0d\x0a\x0d\x0avoid cantcrosswall()//不能穿墙\x0d\x0a{\x0d\x0aif(head->x==0 || head->x==56 ||head->y==0 || head->y==26) {\x0d\x0aendgamestatus=1\x0d\x0aendgame()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0avoid snakemove()//蛇前进,上U,下D,左L,右R\x0d\x0a{\x0d\x0asnake * nexthead\x0d\x0acantcrosswall()\x0d\x0a\x0d\x0anexthead=(snake*)malloc(sizeof(snake))\x0d\x0aif(status==U) {\x0d\x0anexthead->x=head->x\x0d\x0anexthead->y=head->y-1\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //如果下一个有食物//\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else { //如果没有食物//\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(status==D) {\x0d\x0anexthead->x=head->x\x0d\x0anexthead->y=head->y+1\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else { //没有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(status==L) {\x0d\x0anexthead->x=head->x-2\x0d\x0anexthead->y=head->y\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else {//没有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(status==R) {\x0d\x0anexthead->x=head->x+2\x0d\x0anexthead->y=head->y\x0d\x0aif(nexthead->x==food->x &&nexthead->y==food->y) { //有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0ascore=score+add\x0d\x0acreatefood()\x0d\x0a} else { //没有食物\x0d\x0anexthead->next=head\x0d\x0ahead=nexthead\x0d\x0aq=head\x0d\x0awhile(q->next->next!=NULL) {\x0d\x0aPos(q->x,q->y)\x0d\x0aprintf("■")\x0d\x0aq=q->next\x0d\x0a}\x0d\x0aPos(q->next->x,q->next->y)\x0d\x0aprintf(" ")\x0d\x0afree(q->next)\x0d\x0aq->next=NULL\x0d\x0a}\x0d\x0a}\x0d\x0aif(biteself()==1) { //判断是否会咬到自己\x0d\x0aendgamestatus=2\x0d\x0aendgame()\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0avoid pause()//暂停\x0d\x0a{\x0d\x0awhile(1) {\x0d\x0aSleep(300)\x0d\x0aif(GetAsyncKeyState(VK_SPACE)) {\x0d\x0abreak\x0d\x0a}\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0avoid gamecircle()//控制游戏\x0d\x0a{\x0d\x0a\x0d\x0aPos(64,15)\x0d\x0aprintf("不能穿墙,不能咬到自己\n")\x0d\x0aPos(64,16)\x0d\x0aprintf("用↑.↓.←.→分别控制蛇的移动.")\x0d\x0aPos(64,17)\x0d\x0aprintf("F1 为加速,F2 为减速\n")\x0d\x0aPos(64,18)\x0d\x0aprintf("ESC :退出游戏.space:暂停游戏.")\x0d\x0aPos(64,20)\x0d\x0a//\x0d\x0astatus=R\x0d\x0awhile(1) {\x0d\x0aPos(64,10)\x0d\x0aprintf("得分:%d ",score)\x0d\x0aPos(64,11)\x0d\x0aprintf("每个食物得分:%d分",add)\x0d\x0aif(GetAsyncKeyState(VK_UP) &&status!=D) {\x0d\x0astatus=U\x0d\x0a} else if(GetAsyncKeyState(VK_DOWN) &&status!=U) {\x0d\x0astatus=D\x0d\x0a} else if(GetAsyncKeyState(VK_LEFT)&&status!=R) {\x0d\x0astatus=L\x0d\x0a} else if(GetAsyncKeyState(VK_RIGHT)&&status!=L) {\x0d\x0astatus=R\x0d\x0a} else if(GetAsyncKeyState(VK_SPACE)) {\x0d\x0apause()\x0d\x0a} else if(GetAsyncKeyState(VK_ESCAPE)) {\x0d\x0aendgamestatus=3\x0d\x0abreak\x0d\x0a} else if(GetAsyncKeyState(VK_F1)) {\x0d\x0aif(sleeptime>=50) {\x0d\x0asleeptime=sleeptime-30\x0d\x0aadd=add+2\x0d\x0aif(sleeptime==320) {\x0d\x0aadd=2//防止减到1之后再加回来有错\x0d\x0a}\x0d\x0a}\x0d\x0a} else if(GetAsyncKeyState(VK_F2)) {\x0d\x0aif(sleeptime 回答于 2022-11-16文件路径导出。找到建立工程的路径,如果你没有建立工程,那么找到你的原文件所在的路径,exe,obj等文件就会在那个路径,你可以复制到想要的地方进行导出。
DEVC++小游戏pvp,利用DevC++和EGE图形库写出一款C语言飞机大战小游戏。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)