【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载) 您所在的位置:网站首页 诺基亚n72上的3d贪吃蛇是真的吗 【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)

【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载)

2023-12-03 05:33| 来源: 网络整理| 查看: 265

C++编写贪吃蛇小游戏快速入门

刚学完C++。一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能。希望大家Enjoy It.

效果图示

AI模式演示

imageimage 整体规划+原理 image

大体上可以分为图上所示的几个类。不过……怎么看都有点强行面向对象的味道在里面。。[哭笑][哭笑][哭笑]。不管了……代码写得可能有点凌乱,下面我会为大家一一讲解。

整个程序设计的原理就是:主函数死循环,不断刷新打印贪吃蛇和食物。这样每循环一次,就类似电影里面的一帧,最终显示的效果就是蛇会动起来。

01 初始化工作-游戏设置

游戏设置和相关初始化放在了一个类里面,并进行了静态声明。主要设置了游戏窗口的长和款。并在GameInit()函数里面设置了窗口大小,隐藏光标,初始化随机数种子等。代码如下:

1//游戏设置相关模块,把函数都放到一个类里面了。函数定义为static静态成员,不生成实体也可以直接调用 2class GameSetting 3{ 4public: 5    //游戏窗口的长宽 6    static const int window_height = 40; 7    static const int window_width = 80; 8public: 9    static void GameInit()10    {11        //设置游戏窗口大小12        char buffer[32];13        sprintf_s(buffer, "mode con cols=%d lines=%d",window_width, window_height);14        system(buffer);1516        //隐藏光标17        HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);18        CONSOLE_CURSOR_INFO CursorInfo;19        GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息20        CursorInfo.bVisible = false; //隐藏控制台光标21        SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态22        //初始化随机数种子23        srand((unsigned int)time(0));24    }25};

用到了几个相关的Windows API,本文不做过多介绍,大家百度即可。

02 打印信息类

该类主要是用来打印一些游戏相关信息的。该类大体如下:

image

下面挑几个重点的来讲:

2.1 画地图边界

这个函数主要是根据上面所给的游戏窗口长宽来打印地图边界的。其中还划分了几个区域,主要用来放不同的信息的。

1//画地图边界 2static void DrawMap() 3{ 4    system("cls"); 5    int i, j; 6    for (i = 0; i 


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有