【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载) | 您所在的位置:网站首页 › 诺基亚n72上的3d贪吃蛇是真的吗 › 【C/C++】10分钟教你用C++写一个贪吃蛇附带AI功能(附源代码详解和下载) |
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 实验室设备网 版权所有 |