**一.**贪吃蛇还要其余的,私聊作者#include
/***光标定位***/HANDLEhout=GetStdHandle(STD_OUTPUT_HANDLE);COORDcoord;
voidlocate(intx,inty){coord.X=y;coord.Y=x;SetConsoleCursorPosition(hout,coord);};
/***隐藏光标***/voidhide(){CONSOLE_CURSOR_INFOcursor_info={1,0};SetConsoleCursorInfo(hout,&cursor_info);}
/***生成随机数***/doublerandom(doublestart,doubleend){returnstart+(end-start)*rand()/(RAND_MAX+1.0);}
/***定义地图的长宽,蛇的坐标,长度,方向,食物的位置***/intm,n;
structnode{intx,y;}snake[1000];
intsnake_length,dir;nodefood;intdirect[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
/***输出墙***/voidprint_wall(){cout<<"";for(inti=1;i<=n;i++)cout<<"-";cout< /***首次输出蛇,其中snake[0]代表头**/voidprint_snake(){locate(snake[0].x,snake[0].y);cout<<"@";for(inti=1;i<=snake_length-1;i++){locate(snake[i].x,snake[i].y);cout<<"";}} /***判断是否撞墙或者自撞***/boolis_correct(){if(snake[0].x0||snake[0].y0||snake[0].xm+1||snake[0].yn+1)returnfalse;for(inti=1;i<=snake_length-1;i++){if(snake[0].xsnake[i].x&&snake[0].ysnake[i].y)returnfalse;}returntrue;} /***随机生成并输出食物位置***/boolprint_food(){srand((unsigned)time(0));boole;while(1){e=true;inti=(int)random(0,m)+1,j=(int)random(0,n)+1;food.x=i;food.y=j;for(intk=0;k<=snake_length-1;k++){if(snake[k].xfood.x&&snake[k].yfood.y){e=false;break;}}if(e)break;}locate(food.x,food.y);cout<<"$";returntrue;} /***蛇的前进/boolgo_ahead(){nodetemp;boole=false;temp=snake[snake_length-1];for(inti=snake_length-1;i>=1;i--)snake[i]=snake[i-1];snake[0].x+=direct[dir][0];snake[0].y+=direct[dir][1];locate(snake[1].x,snake[1].y);cout<<"";/*吃到了食物/if(snake[0].xfood.x&&snake[0].yfood.y){snake_length++;e=true;snake[snake_length-1]=temp;}/输出此时蛇状态/if(!e){locate(temp.x,temp.y);cout<<"";}elseprint_food();locate(snake[0].x,snake[0].y);cout<<"@";/如果自撞***/if(!is_correct()){system("cls");cout<<"Youlose!"<