以下是一个简单的C++贪吃蛇游戏代码示例
以下是一个简单的C++贪吃蛇游戏代码示例:
#include<iostream>
#include<conio.h>
#include<windows.h>
usingnamespacestd;
boolgameOver;
constintwidth=20;
constintheight=20;
intx,y,fruitX,fruitY,score;
inttailX[100],tailY[100];
intnTail;
enumeDirection{STOP=0,LEFT,RIGHT,UP,DOWN};
eDirectiondir;
voidSetup()
{
gameOver=false;
dir=STOP;
x=width/2;
y=height/2;
fruitX=rand()%width;
fruitY=rand()%height;
score=0;
}
voidDraw()
{
system("cls");
for(inti=0;i<width+2;i++)
cout<<"#";
cout<<endl;
for(inti=0;i<height;i++)
{
for(intj=0;j<width;j++)
{
if(j==0)
cout<<"#";
if(i==y&&j==x)
cout<<"O";
elseif(i==fruitY&&j==fruitX)
cout<<"F";
else
{
boolprint=false;
for(intk=0;k<nTail;k++)
{
if(tailX[k]==j&&tailY[k]==i)
{
cout<<"o";
print=true;
}
}
if(!print)
cout<<"";
}
if(j==width-1)
cout<<"#";
}
cout<<endl;
}
for(inti=0;i<width+2;i++)
cout<<"#";
cout<<endl;
cout<<"Score:"<<score<<endl;
}
voidInput()
{
if(_kbhit())
{
switch(_getch())
{
case'a':
dir=LEFT;
break;
case'd':
dir=RIGHT;
break;
case'w':
dir=UP;
break;
case's':
dir=DOWN;
break;
case'x':
gameOver=true;
break;
}
}
}
voidLogic()
{
intprevX=tailX[0];
intprevY=tailY[0];
intprev2X,prev2Y;
tailX[0]=x;
tailY[0]=y;
for(inti=1;i<nTail;i++)
{
prev2X=tailX[i];
prev2Y=tailY[i];
tailX[i]=prevX;
tailY[i]=prevY;
prevX=prev2X;
prevY=prev2Y;
}
switch(dir)
{
caseLEFT:
x--;
break;
caseRIGHT:
x++;
break;
caseUP:
y--;
break;
caseDOWN:
y++;
break;
default:
break;
}
if(x>=width)
x=0;
elseif(x<0)
x=width-1;
if(y>=height)
y=0;
elseif(y<0)
y=height-1;
for(inti=0;i<nTail;i++)
{
if(tailX[i]==x&&tailY[i]==y)
gameOver=true;
}
if(x==fruitX&&y==fruitY)
{
score+=10;
fruitX=rand()%width;
fruitY=rand()%height;
nTail++;
}
}
intmain()
{
Setup();
while(!gameOver)
{
Draw();
Input();
Logic();
Sleep(10);
}
return0;
}
请注意,这只是一个简单的贪吃蛇游戏代码示例,可能存在一些功能性的不足和bug。您可以根据需要进一步完善和优化代码。
版权声明
本文仅代表作者观点,不代表博信信息网立场。
上一篇:
在Linux系统上安装npm时,需要注意以下事项 下一篇:用python语句九九乘法表