因为时间有限,没能尽可能完善这一款贪吃蛇,不过能做出来还是很有意思的

  1 #include<bits/stdc++.h>
  2 #include<windows.h>
  3 #include<conio.h>
  4 #include<stdlib.h>
  5 using namespace std;
  6 const int dy[5]={0,-1,1,0,0};
  7 const int dx[5]={0,0,0,1,-1};
  8 int n=50,m=30,Score,Speed;
  9 int kind[101][31];
 10 struct point{
 11     int x,y,kind;
 12 };
 13 HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出句柄
 14 void Setup(){
 15     system("color 0F");//设置控制台界面背景颜色和前景颜色
 16     system("mode con cols=50 lines=31");//初始化缓冲区大小
 17     SetConsoleTitle("Greddy Snake");//设置控制台窗口标题
 18 }
 19 void Move(int x,int y){//移动到指定坐标
 20     COORD posPoint={x,y};
 21     SetConsoleCursorPosition(hOut,posPoint);
 22 }
 23 void Home(){//显示首页
 24     system("CLS");
 25     Move(0,0);
 26     printf("移动 : [A] [S] [D] [W]\n");
 27     printf("暂停 : [P]\n");
 28     printf("确定 : [Space]\n");
 29     system("pause");
 30 }
 31
 32 void Addapp(){//放置苹果
 33     srand(time(0));
 34     if (40<Score++) Speed=100;
 35     int x,y;
 36     do{
 37         x=rand()%n;
 38         y=rand()%m;
 39     }while (kind[x][y]);
 40     kind[x][y]=2;
 41     Move(x,y);printf("#");
 42 }
 43
 44 bool Update(queue<point>& que,int now){//更新蛇体
 45     Move(12,30);printf("%d",Score);
 46     point s=que.back();
 47     s.x+=dx[now],s.y+=dy[now],s.kind=now;
 48     s.x=(s.x+n)%n,s.y=(s.y+m)%m;
 49     if (kind[s.x][s.y]==1) return false;
 50     if (kind[s.x][s.y]==2) Addapp();//吃到苹果
 51     else{
 52         point ss=que.front();
 53         Move(ss.x,ss.y);printf(" ");
 54         que.pop();kind[ss.x][ss.y]=0;
 55     }
 56     Move(s.x,s.y);printf("*");
 57     que.push(s);kind[s.x][s.y]=1;
 58     return true;
 59 }
 60 bool flag=true;
 61 void Play(){
 62     system("CLS");
 63     Move(0,30);printf("当前得分:    |----------<0xfaner>----------|",Score);
 64     memset(kind,0,sizeof(kind));
 65     kind[0][0]=1;
 66     queue<point> que;
 67     point a={0,0,1};que.push(a);
 68     Speed=200;Score=0;Addapp();
 69     int now=3;
 70     while (true){
 71         char x=' ';
 72         if (_kbhit()) x=getch();
 73         if ('a'<=x&&x<='z') x+='A'-'a';
 74         switch (x){
 75             case 'W':if (now>2) now=1;    break;
 76             case 'S':if (now>2) now=2;    break;
 77             case 'D':if (now<3) now=3;    break;
 78             case 'A':if (now<3) now=4;    break;
 79             case 'P':{
 80                 while (true){
 81                     if (_kbhit()) x=getch();
 82                     if (x!='P') break;
 83                 }
 84                 break;
 85             }
 86         }
 87         if (!Update(que,now)){
 88             Sleep(1000);
 89             system("CLS");
 90             Move(18,12);
 91             printf("You Lose");
 92             Move(11,13);
 93             printf("Press [R] to play again");
 94             Move(11,14);
 95             printf("Press [E] to exit game");
 96             do{
 97                 char x=getch();
 98                 if ('a'<=x&&x<='z') x+='A'-'a';
 99                 if (x=='E') flag=false;
100                 if (x=='E'||x=='R') break;
101             }while (true);
102             break;
103         }
104         Sleep(Speed);
105     }
106 }
107 int main(){
108     Setup();
109     Home();
110     while (flag) Play();
111     return 0;
112 }

Greedy_Snake

之后有时间我会继续完善这一款小游戏的(咕咕咕

计划清明节之前用多线程重写一下(咕咕咕

转载于:https://www.cnblogs.com/liyian/p/10639312.html

[娱乐]一款浅陋的C++控制台贪吃蛇小游戏相关推荐

  1. 【C++】经典项目控制台贪吃蛇小游戏详细教程

    [小游戏]贪吃蛇GreedySnake 本文将讲解如何使用c++面向对象方法编写控制台版贪吃蛇小游戏 项目github地址:游戏源码链接 游戏下载:GreedySnake 本人属初学者,水平所限,难免 ...

  2. C++控制台贪吃蛇小游戏详细教程

    游戏截图     开始动画:    游戏过程:  游戏架构设计 该游戏的玩法简单,玩家通过键盘方向键控制蛇上下左右移动,吃到食物得分并增长,碰到墙或者自己的身体则死亡,游戏结束.  整个游戏其实就是一 ...

  3. Golang 控制台百行代码贪吃蛇小游戏

    Golang 并不适合在前端工作,缺少强大的图形图像包和硬件加速包,更适合做成后台服务程序.本文的贪吃蛇小游戏运行与控制台上,其中调用了Window系统kernel32.dll中控制台相关的函数. 项 ...

  4. 控制台版贪吃蛇小游戏 C语言

    写在前面 最近我们C语言的课设快开始了,开始前刚好有时间就写了一下C语言的贪吃蛇小游戏(单链表实现),包含了经典模式和无边界模式 ,网上查了设置颜色 和 改变光标位置 还有 用方向键控制 的函数,第一 ...

  5. Android Studio实现贪吃蛇小游戏

    项目目录 一.项目概述 二.开发环境 三.详细设计 四.运行演示 五.项目总结 六.源码获取 一.项目概述 贪吃蛇是一款经典的街机游戏,不仅在电子游戏史上占有一席之地,也在很多人的童年回忆中留下了深刻 ...

  6. python简易贪吃蛇小游戏任务书含代码

    目  录 第一章 绪论 1.1 开发的背景 1.2 开发的目的 1.3 开发的意义 1.4 开发工具简介 第二章 需求分析 (1) 利用方向键来改变蛇的运行方向. (2) 在随机的地方产生食物. (3 ...

  7. 基于C语言Ncurse库和链表的简单贪吃蛇小游戏

    参考:基于C语言Ncurse库和链表的简单贪吃蛇小游戏 作者:三速何时sub20 发布时间:2020-09-29 10:23:51 网址:https://blog.csdn.net/weixin_44 ...

  8. python快速实现简易贪吃蛇小游戏

    贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本.既简单又耐玩.该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长.  贪吃蛇游戏最初为单机模式,后续又陆续推出团战模式.赏金模 ...

  9. 贪吃蛇小游戏 (一)

    贪吃蛇是一款儿时爱不释手的游戏.近日修行,想玩玩游戏开发.便简单写了个控制台版的贪吃蛇. 程序的简单框架: 建立一张固定大小的MAP,保存输出信息. 当信息有变动时,用system("cls ...

最新文章

  1. 在目前大数据时代下,怎么能成为一名合格的数据分析师
  2. SpringBoot - 探究Spring Boot应用是如何通过java -jar 启动的
  3. VB API 之 第十一课 绘制矩形
  4. 用c语言编译二叉树,C语言实现二叉树的基本操作
  5. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...
  6. WPF开源项目:WPF-ControlBase
  7. java 连接 sftp失败_java – 文件上传到SFTP失败(Apache VFS)
  8. 字节跳动暑期日常实习前端面试
  9. 想从远程办公进入 toB 蓝海?它可以,你未必
  10. 5. PDO 数据库封装
  11. 2018年中小学计算机培训,2018年中小学网管员培训心得体会
  12. GreenDao清空数据库的方法
  13. 抖音运营详细教程,算法解读、平台规则、热门涨粉......丨国仁网络
  14. 组态王 6.55 启停plc_PLC编程进料PLC编程项目
  15. 【檀越剑指大厂--redis】redis基础篇
  16. zbursh2021尝新,安装包
  17. perl与c相互调用
  18. 最详细最简单:最大公因数求法、辗转相除法、更相减损法,入门ACM,杭电水题,算法递归,初级算法题一看就懂
  19. Java中AudioFileStream_iOS音频学习一之AudioFileStream
  20. 交换机日志删除_如何查看交换机报警日志 并导出日志 命令是什么

热门文章

  1. captura录屏发生了一个错误_录屏教程的方法有哪些?学会这两种轻松搞定
  2. python3代码转python2_Python2代码转成Python3代码
  3. java 文本编辑器替换特殊字符_linux中批量替换文本中字符串--转载
  4. mysql server 80_mysql Host 'microsof-80f25e' is not allowed to connect to this MySQL server
  5. python软件安装及设置_入门Python——1.软件安装与基础语法
  6. mysql的表最多可设置多少字段?
  7. git 连接到远程的其它分支问题
  8. Android移动开发之【Android实战项目】漂亮Button样式
  9. 字符串 mysql索引,长字符串的MySQL索引
  10. 如何优化才能赢得搜索引擎“欢心”,提升抓取量?