首页 > 编程语言 >基于C++的AI贪吃蛇

基于C++的AI贪吃蛇

时间:2023-04-27 11:03:48浏览次数:45  
标签:CursorInfo 游戏 AI C++ window 贪吃蛇 static 设置 光标

访问【WRITE-BUG数字空间】_[内附完整源码和文档]


用C++做了个有AI功能的贪吃蛇小游戏,希望大家enjoy it.

总体概况

  • 开发环境:VIsual Studio 2017
  • 开发语言:C++ 和 少许Windows API
  • 运行环境:Windows 10

01 初始化工作-游戏设置

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

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

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

基于C++的AI贪吃蛇_随机数

基于C++的AI贪吃蛇_随机数_02

基于C++的AI贪吃蛇_随机数_03

基于C++的AI贪吃蛇_初始化_04

标签:CursorInfo,游戏,AI,C++,window,贪吃蛇,static,设置,光标
From: https://blog.51cto.com/u_16075443/6229941

相关文章

  • mdadm彻底删除software RAID 0
    有没有朋友感觉今天的文章有点难,如果觉得难的朋友可以在下面留言,后面我会给大家安排一些简单的文章,让大家可以循序渐进。基础稍微薄弱的童鞋也可以投稿,这样你就慢慢成长起来了。在我们社区,我希望你们都可以成为大牛,很大很大的大牛哈。加油!Linux系统中可以通过使用mdadm这个简单高效......
  • 【C++】类与对象(上)
    系列文章之前的文章中讲解了,什么是类、类的实例化,以及封装的意义,若仍有不理解的部分可以移步上一篇文章  【C++】类与对象(引入)目录系列文章1.默认成员函数2.构造函数2.1定义2.2特性2.2.1重载构造函数2.2.2与缺省参数混合使用2.2.3默认构造函数3.析构函数3.1定义3.2特性4.拷贝构造......
  • 美颜SDK的未来发展:AI时代下的自然美颜
    美颜SDK作为一种广泛应用于各种视图、娱乐、拍摄场景的美颜技术,在近十年来得到了“狂飙式”的发展,从最开始的“傻瓜相机”一键美颜,到后来的视频直播实时美颜,期间我们经历了太多的迭代。目前,“过度美颜、暴力美颜”的时代已经过去,更加自然、无痕、还原自然美的美颜SDK才是未来的主流......
  • Linux(Centos7)failed to start lsb bring up/down 反其道解决
    VM虚拟机里装的CentOS7,之前用的好好的,突然就连不上网了。使用命令:systemctlrestartnetwork.service提示错误:  注:网截图了,用网友的按提示输入:systemctlstarusnetwork里面有行错误提示: failedtostartlsbbringup/down网上找了一圈,大部分说是 ......
  • 无界微前端方案官方示例,main-vue 项目打包之后 访问index.html页面空包,控制台报资源错
    报错信息: 修改方案: publicPath:“./”修改为如上配置即可。......
  • 推荐两个AI神器:ChatGPT只需1个标题,2分钟全自动生成PPT!
    今天给大家分享两个工具,帮助你全自动生成PPT,接下来以自动化测试为主题,教大家如何2分钟生成好PPT。1、第一个工具:ChatGPT1、打开ChatGPT页面,输入prompt,告诉它,让它帮你生成一份自动化测试为主题的PPT,如:帮我生成一个自动化测试为主题的PPT,内容不少于10页,用markdown格式生成2、......
  • 【饮食与健康】【AIGC创作】表观生理年龄逆转指北
    一、引言我们都知道,岁月不饶人,但是谁又不想在岁月的长河中留下青春的容颜呢?在这个人人都追求健康和美丽的时代,我们的生活节奏却愈发紧张,高压的工作和不规律的作息让我们的身体时刻处于亚健康状态。这时候,你是不是开始想:“要是有一个方法能让我变年轻,那该有多好啊!”好消息是,科学家......
  • c++输出格式控制
    c++输出格式控制 一.控制符需要<iomanip>头文件常用:1.保留几位有效数字:setpricision(),括号里是保留的位数2.保留几位小数:setiosflags(ios::fixed)<<setpricision(),括号里是保留的位数(注意前面半句会影响此后所有setpricision()的用法,都变成保留小数位数,不只是这......
  • 【C++】类与对象(引入)
    目录前言类的引入类的定义封装与访问限定符封装访问限定符类的实例化类的大小this指针特性前言......
  • C++每日打卡
    一个捐款人类Donator及一个相关函数getMaxName(),Donator类中包含捐款人的姓名及其捐款额。输出一批捐款人来到前后的捐款总金额,以及本批次捐款人中捐款最高者的姓名。 #include<iostream>usingnamespacestd;classDonator{private:stringname;float......