21xrx.com
2024-12-22 22:53:04 Sunday
登录
文章检索 我的文章 写文章
"50条简易版C++贪吃蛇代码分享"
2023-07-03 15:28:22 深夜i     --     --
C++ 贪吃蛇 代码分享 简易版 50条

贪吃蛇游戏一直以来都是大家喜爱的经典游戏之一。在今天,我们分享50条简易版C++贪吃蛇的代码,让大家快速上手,自己动手编写属于自己的贪吃蛇游戏。

这里我们使用Dev-C++进行编写,以下是50条的代码:

1.#include

2.#include

3.#include

4.#include

5.using namespace std;

6.void startup();

7.void gotoxy(int, int);

8.void move();

9.void createfood();

10.const int MapW = 30;

11.const int MapH = 20;

12.//1代表蛇,0代表空地,2代表食物

13.int map[MapW][MapH];

14.int length = 3;//蛇的长度

15.int fx, fy;//食物的位置

16.//让光标转移到(x,y)坐标处。

17.void gotoxy(int x, int y) {

18.  COORD pos = { 2 * x,y };

19.  HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

20.  SetConsoleCursorPosition(hOut, pos);

21.}

22.void startup() {

23.  //初始化地图

24.  //地图最外圈全部填充1

25.  for (int i = 0; i < MapW; i++) {

26.    map[i][0] = 1;

27.    map[i][MapH - 1] = 1;

28.  }

29.  for (int i = 0; i < MapH; i++) {

30.    map[0][i] = 1;

31.    map[MapW - 1][i] = 1;

32.  }

33.  map[15][8] = 1;

34.  map[15][9] = 1;

35.  map[15][10] = 1;

36.  map[8][8] = 2;

37.  createfood();

38.  gotoxy(0, 0);

39.  for (int i = 0; i < MapH; i++) {

40.    for (int j = 0; j < MapW; j++) {

41.      if (map[j][i] == 1)

42.        cout << "#";

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

44.        cout << " ";

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

46.        cout << "$";

47.    }

48.    cout << endl;

49.  }

50.}

51.void move() {

52.  if (_kbhit()) {//判断是否有输入

53.    int c = _getch();//读取输入

54.    switch (c) {

55.    case 72://上

56.      gotoxy(fx, fy);

57.      cout << " ";

58.      fy--;

59.      break;

60.    case 80://下

61.      gotoxy(fx, fy);

62.      cout << " ";

63.      fy++;

64.      break;

65.    case 75://左

66.      gotoxy(fx, fy);

67.      cout << " ";

68.      fx--;

69.      break;

70.    case 77://右

71.      gotoxy(fx, fy);

72.      cout << " ";

73.      fx++;

74.      break;

75.    }

76.  }

77.  if (map[fx][fy] == 1 || fx == 0 || fx == MapW - 1 || fy == 0 || fy == MapH - 1) {

78.    //当蛇撞到墙或者自己时游戏结束

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

80.    exit(0);

81.  }

82.  else if (map[fx][fy] == 2) {

83.    //蛇吃到食物

84.    length++;

85.    createfood();

86.  }

87.  //移动蛇

88.  for (int i = length; i > 0; i--) {

89.    map[i][0] = map[i - 1][0];

90.    map[i][1] = map[i - 1][1];

91.    map[i][2] = map[i - 1][2];

92.  }

93.  map[1][0] = fx;

94.  map[1][1] = fy;

95.  gotoxy(fx, fy);

96.  cout << "*";

97.}

98.void createfood() {

99.  //在地图上随机生成一个食物

100.  while (true) {

101.    int x = rand() % (MapW - 2) + 1;

102.    int y = rand() % (MapH - 2) + 1;

103.    if (map[x][y] == 0) {

104.      map[x][y] = 2;

105.      fx = x;

106.      fy = y;

107.      gotoxy(x, y);

108.      cout << "$";

109.      break;

110.    }

111.  }

112.}

113.int main() {

114.  startup();

115.  while (true) {

116.    move();

117.    Sleep(300);

118.  }

119.  return 0;

120.}

通过以上的50条代码,我们实现了简易版的贪吃蛇游戏。通过该代码,大家可以自己动手尝试编写,并且添加更多的功能和玩法。希望能够帮助大家提高编程能力。

  
  

评论区

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