21xrx.com
2024-09-19 09:59:36 Thursday
登录
文章检索 我的文章 写文章
C++简单贪吃蛇程序代码
2023-07-05 03:44:33 深夜i     --     --
C++ 简单 贪吃蛇 程序代码

C++是一种编程语言,因其具有易学、效率高、可移植性强等特点,成为众多程序员的首选开发语言。贪吃蛇是一种经典的游戏,玩家需要控制一条小蛇,逐渐变长,并切勿撞到自己或者边界,获得尽可能高的分数。下面,我们来看一下简单的C++贪吃蛇程序代码。

首先,我们需要用到C++中的图形界面库——graphics.h,需要先在开头加上头文件。代码如下:

#include

其次,我们需要定义窗口的大小、小蛇的大小、初始位置、分数等相关变量。代码如下:

int window_width=800; //窗口宽度

int window_height=600; //窗口高度

int snake_size=20; //小蛇大小

int init_snake_length=2; //初始小蛇长度

int snake_head_x; //小蛇头部横坐标

int snake_head_y; //小蛇头部纵坐标

int snake_body_x[100]; //小蛇身体横坐标数组

int snake_body_y[100]; //小蛇身体纵坐标数组

int score=0; //分数

bool game_over=false; //游戏是否结束

接下来,我们需要编写一个主函数,用于初始化窗口和小蛇,并在窗口中不断刷新小蛇的位置和分数。代码如下:

void main(){

initgraph(window_width,window_height);

//初始化窗口

snake_head_x=window_width/2; //初始化小蛇位置

snake_head_y=window_height/2;

for(int i=0;i

snake_body_x[i]=snake_head_x-i*snake_size;

snake_body_y[i]=snake_head_y;

}

while(!game_over){

cleardevice(); //清屏

draw_snake(); //绘制小蛇

draw_food(); //绘制食物

update_snake(); //更新小蛇位置

delay(200); //延迟200毫秒

}

closegraph(); //关闭窗口

}

在主函数中,我们首先调用initgraph()函数初始化窗口,然后初始化小蛇的位置,接着进入一个while循环,不断刷新小蛇的位置和分数,直到游戏结束为止。在循环中,我们需要调用自己编写的函数,用于绘制小蛇、食物、更新小蛇位置等。最后,关闭窗口。

最后,我们需要编写一些辅助函数,用于实现小蛇移动、食物随机生成等功能。代码如下:

void draw_snake(){

setfillcolor(GREEN);

fillcircle(snake_head_x,snake_head_y,snake_size/2); //绘制小蛇头部

for(int i=0;i

fillrectangle(snake_body_x[i],snake_body_y[i],

snake_body_x[i]+snake_size,snake_body_y[i]+snake_size);

} //绘制小蛇身体

}

void draw_food(){

setfillcolor(RED);

//随机生成食物位置

int x=rand()%(window_width/snake_size)*snake_size;

int y=rand()%(window_height/snake_size)*snake_size;

fillrectangle(x,y,x+snake_size,y+snake_size);

}

void update_snake(){

//将原来身体的位置向前移动一位

for(int i=init_snake_length-1;i>0;i--){

snake_body_x[i]=snake_body_x[i-1];

snake_body_y[i]=snake_body_y[i-1];

}

snake_body_x[0]=snake_head_x; //更新身体位置

snake_body_y[0]=snake_head_y;

//根据方向更新头部位置

if(GetAsyncKeyState(VK_UP)){

snake_head_y-=snake_size;

}

if(GetAsyncKeyState(VK_DOWN)){

snake_head_y+=snake_size;

}

if(GetAsyncKeyState(VK_LEFT)){

snake_head_x-=snake_size;

}

if(GetAsyncKeyState(VK_RIGHT)){

snake_head_x+=snake_size;

}

//判断是否撞到边界或自己

if(snake_head_x<0 || snake_head_x>=window_width ||

snake_head_y<0 || snake_head_y>=window_height){

game_over=true;

}

for(int i=1;i

if(snake_head_x==snake_body_x[i] &&

snake_head_y==snake_body_y[i]){

game_over=true;

}

}

//判断是否吃到食物

if(snake_head_x==food_x && snake_head_y==food_y){

init_snake_length++; //长度加1

score+=10; //分数加10

draw_food(); //重新生成食物

}

}

在这些函数中,我们调用了graphics.h库中的图形绘制函数,比如setfillcolor()、fillcircle()、fillrectangle()等,用来绘制小蛇、食物等。同时,我们还用到了一些C++中的控制语句,比如if语句、for循环等,用于判断小蛇是否撞到边界或自己、是否吃到食物等。

综上所述,以上就是一个简单的C++贪吃蛇程序的代码实现。在编写这个程序时,我们不仅锻炼了C++编程的基本功,还增强了思维能力、逻辑思维能力等。希望能对有志于学习C++编程的读者有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复