21xrx.com
2024-11-22 07:25:51 Friday
登录
文章检索 我的文章 写文章
C++贪吃蛇游戏的最简单代码实现
2023-06-30 20:53:58 深夜i     --     --
C++ 贪吃蛇游戏 最简单代码实现

贪吃蛇是一款老少皆宜的经典游戏,它的编程实现也是程序员学习的入门经典案例之一。这篇文章将会介绍C++语言实现最简单的贪吃蛇游戏代码。

首先,我们需要明确游戏的基本规则:贪吃蛇每次移动一格,如果吃到了食物,就会变得更长;如果撞到了墙壁或者自己的身体,就会游戏结束。在代码实现中,我们需要定义蛇的方向、长度、身体坐标、食物坐标等变量。

接下来,我们编写一个循环,让贪吃蛇一直运行。每次循环中,我们需要判断蛇是否撞墙或者撞到了自己的身体,如果是,就结束游戏。如果没有撞到,蛇就继续移动,并判断是否吃到了食物。如果吃到了,就将长度加1,并生成新的食物。

具体的代码实现如下:


#include <iostream>

#include <ctime>

#include <conio.h>

using namespace std;

const int N = 20;

const int M = 50;

int map[N][M];

int snake[100][2];

int len = 3, fx = 1, fy = 0;

int foodx, foody;

void init()

{

  for (int i = 0; i < N; i++)

  {

    for (int j = 0; j < M; j++)

    {

      if (i == 0 || j == 0 || i == N - 1 || j == M - 1)

        map[i][j] = -1; // 边界

      else

        map[i][j] = 0; // 其他

    }

  }

  srand((unsigned)time(NULL)); // 设置随机数种子

  foodx = rand() % (N - 2) + 1; // 食物位置随机

  foody = rand() % (M - 2) + 1;

  map[foodx][foody] = 1; // 食物

}

void show()

{

  for (int i = 0; i < N; i++)

  {

    for (int j = 0; j < M; j++)

    {

      if (map[i][j] == -1)

        cout << "#";

      else if (map[i][j] == 0)

        cout << " ";

      else if (map[i][j] == 1)

        cout << "@";

      else if (map[i][j] == 2)

        cout << "*";

    }

    cout << endl;

  }

}

void change()

{

  for (int i = len - 1; i > 0; i--)

  {

    snake[i][0] = snake[i - 1][0];

    snake[i][1] = snake[i - 1][1];

  }

  snake[0][0] += fx;

  snake[0][1] += fy;

}

void move()

{

  int x = snake[0][0] + fx;

  int y = snake[0][1] + fy;

  if (map[x][y] == -1 || map[x][y] == 2)

  {

    cout << "Game over!" << endl;

    exit(0);

  }

  change();

  if (map[x][y] == 1)

  {

    len++;

    srand((unsigned)time(NULL));

    foodx = rand() % (N - 2) + 1;

    foody = rand() % (M - 2) + 1;

    map[foodx][foody] = 1;

  }

  snake[0][0] = x;

  snake[0][1] = y;

  map[x][y] = 2;

}

void input()

{

  if (_kbhit())

  {

    switch (_getch())

     fy = 1; break;

    

  }

}

int main()

{

  init();

  while (1)

  {

    system("cls");

    show();

    input();

    move();

  }

  return 0;

}

在上述代码中,我们使用了 `#` 表示边界、空格表示空白区域、`@` 表示食物、`*` 表示蛇的身体。我们可以使用 `system("cls");` 清空屏幕,然后使用 `show()` 函数来打印地图。`input()` 函数用于获取玩家的输入,改变蛇的方向,`move()` 函数用于更新蛇的位置。

通过上述代码实现,我们可以动手实现自己的贪吃蛇游戏,同时也可以加入一些自己的创意,例如添加障碍物,增加难度等等,让游戏变得更加有趣。

  
  

评论区

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