学完C语言,想做个东西,C只有控制台,很无奈,于是用VisualStudio2017码的C++代码,贪食蛇,亲测有效,不懂的可以咨询我qq:2323178881,一起探讨,要用到Easyx,你也可以用其他的工具,代码如下:

#pragma once
#include<stdio.h>
#include<tchar.h>
#include<graphics.h>
#include<mmsystem.h>
#pragma comment(lib ,"winmm.lib")
#include <time.h>
#include <conio.h>#define N 20 //这里设置一节蛇的大小为20*20个像素
#define MAXM 1000void InitGame();//初始化
void SnakeDraw();//绘制蛇
void SnakeMove();//蛇移动
void SnakeDirection();//蛇的方向控制
void EatFood();
void FoodPaint();
void FoodCool();
void GameBreak();
void GameOver();enum CH {//枚举类型表示上下左右键的键值up = 72,down = 80,left = 75,right = 77
};struct COOR {int x;int y;
};struct SNAKE {int n;//蛇节数COOR scr[MAXM];//蛇节数的数组CH ch;
} snake;struct Food {COOR fcr;//食物坐标int flag;//1标示没有食物,需要生成食物
} food;int main() {InitGame();//创建窗口while (1)//暂停{while (!_kbhit()){if (food.flag == 0) {FoodCool();}cleardevice();FoodPaint();SnakeMove();//蛇的移动SnakeDraw();//绘制蛇Sleep(300);EatFood();GameBreak();}SnakeDirection();}return 0;
}void InitGame() {srand((unsigned int)time(NULL));//产生随机的种子initgraph(640, 480);setbkcolor(WHITE);//定义颜色cleardevice();//刷到背景去char ch[100];//图片snake.scr[0].x = 0;//蛇开始出现的坐标snake.scr[0].y = 0;//蛇出现的坐标snake.n = 1;//蛇开始的节数snake.ch = right;food.flag = 0;//没有食物}void SnakeDraw() {//绘制蛇setlinecolor(GREEN); //设置蛇边缘的线条颜色setfillcolor(RED);  //设置蛇身的颜色//遍历数组for (int i = 0; i < snake.n; i++) {fillrectangle(snake.scr[i].x, snake.scr[i].y, snake.scr[i].x + N, snake.scr[i].y + N);  //根据蛇的当前长度,创建蛇身,}    }//蛇移动
void SnakeMove()
{for (int i = snake.n - 1; i > 0; i--) {snake.scr[i].x = snake.scr[i - 1].x;snake.scr[i].y = snake.scr[i - 1].y;}switch (snake.ch) {case up:snake.scr[0].y -= N;break;case down:snake.scr[0].y += N;break;case left:snake.scr[0].x -= N;break;case right:snake.scr[0].x += N;break;default:break;}
}void SnakeDirection()
{switch (_getch()){case 72:if (snake.ch != down)snake.ch = up;break;case 80:if (snake.ch != up)snake.ch = down;break;case 75:if (snake.ch != right)snake.ch = left;break;case 77:if (snake.ch != left)snake.ch = right;break;default:break;}
}
//生成一个食物
void FoodCool()
{srand((unsigned)time(NULL));food.fcr.x = rand() % 32 * N;food.fcr.y = rand() % 24 * N;food.flag = 1;
}void FoodPaint()
{setfillcolor(BLUE);fillroundrect(food.fcr.x, food.fcr.y, food.fcr.x + N, food.fcr.y + N, N, N);
}
//食物的坐标和蛇头坐标的重合
void EatFood()
{if (snake.scr[0].x == food.fcr.x&&snake.scr[0].y == food.fcr.y)//食物的坐标和蛇头坐标的重合{//节数增加snake.n++;food.flag = 0;}
}//判断游戏退出
void GameBreak()
{//撞墙 if (snake.scr[0].y < -1 || snake.scr[0].y>471 || snake.scr[0].x < -1 || snake.scr[0].x>631){//退出GameOver();}for (int i = snake.n - 1; i > 0; i--){if (snake.scr[0].x == snake.scr[i].x&&snake.scr[0].y == snake.scr[i].y){//退出GameOver();}}}void GameOver()
{cleardevice();settextcolor(GREEN);settextstyle(50, 0, L"黑体");outtextxy(200, 200, L"game over");Sleep(2000);exit(0);
}

C++贪食蛇代码亲测有效相关推荐

  1. Python3飞机大战全代码(亲测OJBK)

    以下是亲测Python飞机大战全部代码,在保证有pygame环境支持并且有Python3解释器的话完全没问题! 如果大家喜欢的话麻烦点个赞! 当然没有图片的可以给小编评论留下自己的qq号并且点个赞,晚 ...

  2. 天猫30个店铺签到领喵币代码 亲测可用

    天猫30个店铺签到领喵币代码 准备工作: 需要使用360极速浏览器或chrome浏览器 这个代码是自动逛30店铺 领取喵币 运行代码后 不要窗口化页面 步骤如下: 第1步:浏览器打开https://m ...

  3. 【小算法】二分图匹配之匈牙利算法详解(图例说明,代码亲测可用)

    在软件开发领域,任务指派和数据关联是一种常见业务需求,比如买卖订单的匹配,共享出行的人车匹配,及自动驾驶领域中目标追踪. 这都牵扯到一种技术,那就是数据关联,而匈牙利算法就是解决此类问题最典型的算法, ...

  4. 【Excel VBA】用datediff函数计算两个日期的间隔,实例代码亲测好用

    纲举目张 说明 代码code 使用说明 说明 前一段时间在CSDN上回答了一位朋友的提问,其中就用到了datediff函数.个人认为这个自带的函数功能很强大,但是了解的人很少,我在最开始写一写功能的时 ...

  5. sd敢达g世纪android,SD敢达G世纪 世界/超越世界 安卓模拟器金手指代码亲测有用...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 先说下我用的是安卓ppsspp模拟器 手机手机是小米3(开发版) _S ULJS-00363 (世界) _G SD敢达 _C1 金钱最大 _L 0x212 ...

  6. 微信小程序生成页面分享二维码(代码亲测有效)

    /*** 获取不限制的小程序码(没有数量限制)** @param accessToken* @param page* @return*/public void getUnlimitedQRCode(S ...

  7. idea svn切换分支像eclipse一样主干覆盖分支代码(亲测有效)

    1.//在idea中svn切换到新分支:[vcs] -> [subversion] -> [update file]. 修改其中的svn路径即可 类似eclipse中team->sw ...

  8. Python 简易版贪食蛇(源代码)

    Python 简易版贪食蛇 简易版贪食蛇代码如下,直接运行即可. 1. 效果图 2.源代码 源代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*-im ...

  9. pytorch用多层感知机实现鸢尾花3分类(亲测可用)

    pytorch用多层感知机实现鸢尾花3分类(亲测可用) 泪目了,家人们 我终于能交出点东西了 这是上课的要求,不能直接用库,不能用sklearn函数,必须用多层感知机!而且要3分类,太难了. 鸢尾花分 ...

最新文章

  1. 细说浏览器特性检测(2)-通用事件检测
  2. UIApplicaton详情
  3. C# delegate
  4. vue项目设置img标签的默认图片
  5. Mathematica数据处理(11)--标签
  6. SystemVerilog搭建验证平台使用DPI时遇到的问题及解决方案
  7. 陆续放出各种安装及配置文档
  8. 【ArcGIS风暴】ArcGIS Editor for OSM中文教程(2):下载及加载OSM数据
  9. 实例对象的索引的方法
  10. 风控贷中环节应该监控哪些风险指标
  11. 【OpenCV】直方图
  12. 怎样HTML做图片画廊,42个jQuery图片画廊插件
  13. vue2整合echarts5.0
  14. Linux 驱动 IIC_MPU6050
  15. fcitx 添加输入法但并没有输入候选项
  16. 复习————吃饭睡觉打豆豆
  17. 角色和武器Shader特效开发
  18. Android自定义View——实现字母导航栏
  19. Excel中的数字格式与文本格式进行转换
  20. 6-7 BMI计算(类与对象) (10分)

热门文章

  1. 无监督学习与有监督学习的本质差异是什么_机器学习入门:有监督、无监督和强化学习都是什么,有什么差别?...
  2. 工作伦理和消费美学的陷阱
  3. 新网互联面板介绍,域名管理
  4. android QQ登录与分享
  5. Wannafly挑战赛13 B-Jxc军训
  6. ht城市介绍人口数量Html,中国人口2020总人数 全国城市人口排名
  7. 软件项目技术点(19)——文件的保存和打开(解压缩)
  8. memoQ单机版入门指南(新)
  9. 联合国:《2019年数字经济报告》
  10. 用原始股交学费 想毕业先创业