21xrx.com
2024-11-22 09:52:58 Friday
登录
文章检索 我的文章 写文章
C++ 贪吃蛇代码分享
2023-07-04 19:11:59 深夜i     --     --
C++ 贪吃蛇 代码 分享

贪吃蛇是一款经典的游戏,不少人都喜欢玩。这款游戏不仅有趣刺激,还可以锻炼玩家的反应能力和观察力。如果你对贪吃蛇游戏感兴趣,那么今天我就给大家分享一下C++语言的贪吃蛇代码。

首先,我们需要建立一个游戏窗口。代码如下:

#include "stdafx.h"

#include "iostream"

#include "conio.h"

#include "windows.h"

using namespace std;

#define UP 1

#define DOWN 2

#define LEFT 3

#define RIGHT 4

int len = 3, dir = RIGHT, score = 0;

int hx, hy, fx, fy;

int tail_X[500], tail_Y[500];

void gotoxy(int x, int y)

{

  COORD coord;

  coord.X = x;

  coord.Y = y;

  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

void createFood()

{

  fx = rand() % 70 + 1;

  fy = rand() % 30 + 1;

}

void gameover()

{

  system("cls");

  gotoxy(35, 13);

  cout << "Game Over!";

  gotoxy(33, 15);

  cout << "Your score is " << score << endl;

  system("pause");

  exit(0);

}

void draw()

{

  system("cls");

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

  {

    gotoxy(0, i);

    cout << "*" << endl;

    gotoxy(71, i);

    cout << "*" << endl;

  }

  for (int i = 1; i <= 70; i++)

  {

    gotoxy(i, 0);

    cout << "*" << endl;

    gotoxy(i, 30);

    cout << "*" << endl;

  }

  gotoxy(fx, fy);

  cout << "%" << endl;

  gotoxy(hx, hy);

  cout << "@";

  for (int i = 1; i <= len; i++)

  {

    gotoxy(tail_X[i], tail_Y[i]);

    cout << "*";

  }

}

void move()

{

  int a = hx, b = hy;

  tail_X[1] = hx;

  tail_Y[1] = hy;

  hx++;

  if (hx == fx&&hy == fy)

  {

    len++;

    score += 10;

    createFood();

  }

  for (int i = 2; i <= len; i++)

  {

    int c = tail_X[i];

    int d = tail_Y[i];

    tail_X[i] = a;

    tail_Y[i] = b;

    a = c;

    b = d;

  }

  if (hx >= 71 || hx <= 0 || hy >= 30 || hy <= 0)

  {

    gameover();

  }

  for (int i = 1; i <= len; i++)

  {

    if (tail_X[i] == hx&&tail_Y[i] == hy)

    {

      gameover();

    }

  }

}

void changeDirection()

{

  if (_kbhit())

  {

    switch (_getch())

    {

    case 'w':

      if (dir != DOWN)

        dir = UP;

      break;

    case 's':

      if (dir != UP)

        dir = DOWN;

      break;

    case 'a':

      if (dir != RIGHT)

        dir = LEFT;

      break;

    case 'd':

      if (dir != LEFT)

        dir = RIGHT;

      break;

    }

  }

}

int main()

{

  srand(time(0));

  hx = 35, hy = 15;

  createFood();

  while (1)

  {

    draw();

    changeDirection();

    move();

    Sleep(100);

  }

  return 0;

}

这段代码实现了窗口的建立,蛇和食物的移动以及游戏结束的条件判定。玩家通过键盘控制蛇的移动,每当蛇头碰到食物时,蛇的长度加1,分数加10。当蛇头碰到窗口边缘或者碰到自己的身体时,游戏结束。

通过以上代码,我们可以轻松地实现一个简单的贪吃蛇游戏。不过,这只是一个基础版的代码,如果你想要让游戏更加丰富多彩,可以添加更多的功能,比如:蛇头碰到特殊道具时会出现不同的效果,食物的移动速度会随着分数的增加而增加等等。相信只要你肯花时间和精力去开发和调试,一定会有更多惊喜的发现。

总之,贪吃蛇是一款无论在哪个时代都受欢迎的游戏,也是一个值得玩家深入思考的游戏。如果你对C++语言感兴趣,不妨尝试编写一款属于自己的贪吃蛇游戏,相信这会成为你C++编程路上的又一大收获。

  
  

评论区

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