学堂 学堂 学堂公众号手机端

以下是一个简单的C++贪吃蛇游戏代码示例

lewis 2年前 (2023-10-25) 阅读数 6 #技术

以下是一个简单的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。您可以根据需要进一步完善和优化代码。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门