由于比较懒,所以不怎么写,觉得这样不应该。我应该对自己学的做出整理,不管是高端低端,写出来是自己的。

 // 贪吃蛇.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream>
#include"Windows.h"
#include<ctime> nData g_Snake[];
nData g_Food; using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int nKeyState = ;
int nSnakeMove = ;
int nSnakeLeng = ;
bool bSnake = false; //初始化食物
srand((unsigned)time(NULL));
g_Food.X = rand() % + ;
g_Food.Y = rand() % + ; //初始化蛇头 g_Snake[].X = ;
g_Snake[].Y = ; while (true)
{
system("CLS");
//开始菜单键盘输入
if (nKeyState < )
{
if (KEY_DOWN(VK_DOWN))
{
nKeyState++;
if (nKeyState > )
{
nKeyState = ;
}
}
else if (KEY_DOWN(VK_UP))
{
nKeyState--;
if (nKeyState < )
{
nKeyState = ;
}
}
else if (KEY_DOWN(VK_RETURN))
{
if (nKeyState == e_Menu_StartGame)
{
nKeyState = e_GO_StartGame;
}
}
}
//蛇动作
else if (nKeyState == e_GO_StartGame)
{
//备份蛇头
g_Snake[].XOD = g_Snake[].X;
g_Snake[].YOD = g_Snake[].Y; if (KEY_DOWN(VK_UP))
{
if (nSnakeMove == e_Move_Down)
{
nSnakeMove = e_Move_Down;
}
else
{
nSnakeMove = e_Move_Up;
}
}
else if (KEY_DOWN(VK_DOWN))
{
if (nSnakeMove == e_Move_Up)
{
nSnakeMove = e_Move_Up;
}
else
{
nSnakeMove = e_Move_Down;
}
}
else if (KEY_DOWN(VK_LEFT))
{ if (nSnakeMove == e_Move_Right)
{
nSnakeMove = e_Move_Right;
}
else
{
nSnakeMove = e_Move_Left;
}
}
else if (KEY_DOWN(VK_RIGHT))
{
if (nSnakeMove == e_Move_Left)
{
nSnakeMove = e_Move_Left;
}
else
{
nSnakeMove = e_Move_Right;
}
}
}
switch (nSnakeMove)
{
case e_Move_Up: g_Snake[].X--; break;
case e_Move_Down: g_Snake[].X++; break;
case e_Move_Left: g_Snake[].Y--; break;
case e_Move_Right: g_Snake[].Y++; break;
} //蛇撞墙
if (nGameFrame[g_Snake[].X][g_Snake[].Y] == )
{
nKeyState = e_GO_GameOver;
}
//过关
if (nSnakeLeng == )
{
nKeyState = e_Go_WinGame;
} //蛇吃到自己`
for (int i = ; i <= nSnakeLeng; i++)
{
if (g_Snake[i].X == g_Snake[].X&&g_Snake[i].Y == g_Snake[].Y)
{
nKeyState = e_GO_GameOver;
}
} //遍历蛇身位置
for (int i = ; i < nSnakeLeng; i++)
{
g_Snake[i].XOD = g_Snake[i].X;
g_Snake[i].YOD = g_Snake[i].Y;
g_Snake[i].X = g_Snake[i - ].XOD;
g_Snake[i].Y = g_Snake[i - ].YOD;
} //吃到食物
if (g_Food.X==g_Snake[].X&&g_Food.Y==g_Snake[].Y)
{
srand((unsigned)time(NULL));
g_Food.X = rand() % + ;
g_Food.Y = rand() % + ;
nSnakeLeng++;
} //渲染.
if (nKeyState < )
{
cout << "■■■■■■■■■■■■■■■■■" << endl;
cout << "■■■■■■■■■■■■■■■■■" << endl;
cout << "■■■■ ■■■■" << endl;
if (nKeyState == e_Menu_StartGame)
{
cout << "■■■■ >-开始游戏 ■■■■" << endl;
cout << "■■■■ 游戏设置 ■■■■" << endl;
cout << "■■■■ 游戏结束 ■■■■" << endl;
}
else if (nKeyState == e_Menu_GameSet)
{
cout << "■■■■ 开始游戏 ■■■■" << endl;
cout << "■■■■ >-游戏设置 ■■■■" << endl;
cout << "■■■■ 游戏结束 ■■■■" << endl;
}
else if (nKeyState == e_Menu_EndGame)
{
cout << "■■■■ 开始游戏 ■■■■" << endl;
cout << "■■■■ 游戏设置 ■■■■" << endl;
cout << "■■■■ >-游戏结束 ■■■■" << endl;
}
cout << "■■■■ ■■■■" << endl;
cout << "■■■■■■■■■■■■■■■■■" << endl;
cout << "■■■■■■■■■■■■■■■■■" << endl;
}
else if (nKeyState==e_GO_StartGame)
{
for (int i = ; i < ; i++)
{
for (int a = ; a < ; a++)
{
for (int n = ; n < nSnakeLeng; n++)
{
if (i == g_Snake[n].X&&a == g_Snake[n].Y)
{
bSnake = true;
break;
}
else
{
bSnake = false;
}
}
if (nGameFrame[i][a] == )
{
cout << "■";
}
else if (i == g_Snake[].X&&a == g_Snake[].Y)
{
cout << "◎";
}
else if (bSnake == true)
{
cout << "●";
}
else if (i == g_Food.X&&a == g_Food.Y)
{
cout << "◆";
}
else
{
cout << " ";
}
}
cout << endl;
}
}
else if (nKeyState == e_GO_GameOver)
{
cout << "GAME OVER"<<endl;
}
else if (nKeyState==e_Go_WinGame)
{
cout << "老铁666!"<<endl;
} }
return ;
}

控制台贪吃蛇小游戏

C++ 简单的控制台贪吃蛇小游戏的更多相关文章

  1. 一个控制台贪吃蛇小游戏(wsad控制移动)

    /******************************************** * 程序名称:MR.DUAN 的贪吃蛇游戏(链表法) * 作 者:WindAutumn <flutti ...

  2. 贪吃蛇小游戏-----C语言实现

    1.分析 众所周知,贪吃蛇游戏是一款经典的益智游戏,有PC和手机等多平台版本,既简单又耐玩.该游戏通过控制蛇头方向吃食物,从而使得蛇变得越来越长,蛇不能撞墙,也不能装到自己,否则游戏结束.玩过贪吃蛇的 ...

  3. Java GUI学习,贪吃蛇小游戏

    JAVA GUI练习 贪吃蛇小游戏 前几天虽然生病了,但还是跟着狂神学习了GUI的方面,跟着练习了贪吃蛇的小项目,这里有狂神写的源码点我下载,还有我跟着敲的点我下载,嘿嘿,也就注释了下重要的地方,这方 ...

  4. JS高级---案例:贪吃蛇小游戏

    案例:贪吃蛇小游戏 可以玩的小游戏,略复杂,过了2遍,先pass吧 先创建构造函数,再给原型添加方法.分别创建食物,小蛇和游戏对象. 食物,小蛇的横纵坐标,设置最大最小值,运动起来的函数,按上下左右键 ...

  5. 用GUI实现java版贪吃蛇小游戏

    项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public static void main(String[] args) { JFrame jFr ...

  6. Java 用java GUI写一个贪吃蛇小游戏

    目录 主要用到 swing 包下的一些类 上代码 游戏启动类 游戏数据类 游戏面板类 代码地址 主要用到 swing 包下的一些类 JFrame 窗口类 JPanel 面板类 KeyListener ...

  7. JavaScript实践-简单的贪吃蛇小游戏

    实现逻辑: //获取Html中的格子(行,列) //建立数组存储所有格子(x,y) //建立数组用于存储蛇身(x,y) //生成随机坐标(x,y)的函数 //随机创建蛇身并存储到蛇身数组 //创建食物 ...

  8. 用python+pygame写贪吃蛇小游戏

    因为python语法简单好上手,前两天在想能不能用python写个小游戏出来,就上网搜了一下发现了pygame这个写2D游戏的库.了解了两天再参考了一些资料就开始写贪吃蛇这个小游戏. 毕竟最开始的练手 ...

  9. html5面向对象做一个贪吃蛇小游戏

    canvas加面向对象方式的贪吃蛇 2016-08-25 这个小游戏可以增加对面向对象的理解,可以加强js逻辑能力,总之认真自己敲一两遍收获还是不少啊!!适合刚学canvas的同学练习!! 废话不多说 ...

随机推荐

  1. Dubbo2.6.5+Nacos注册中心(代替Zookeeper)

    在上一节的小栗子的基础上,只需要更改两个地方 第一个:父工程的pom依赖增加 <!-- Dubbo Nacos registry dependency --> <dependency ...

  2. eMMC真能优化成UFS?谈谈手机闪存的文件系统

    和UFS闪存相比,eMMC的性能更弱,同一型号的手机混用这两种规格的闪存,让一些消费者感到了不满.对此,厂商称通过优化,eMMC的产品也可以获得优秀的体验.这个优化到底是怎么回事?根据以往的一些宣传, ...

  3. Spotlight--你不得不用的Mac查询利器

    世界上有两种Mac用户:一种是经常使用Spotlight的,另一种是忽略Spotlight的.如果你是第二种用户,那么你需要改变.Mac所有方面的使用场景,都会随着Spotlight而变得更快.你只需 ...

  4. 解决ssh登录慢的问题

    修改文件/etc/ssh/sshd_config  : UseDNS no GSSAPIAuthentication no 重启服务 service sshd restart

  5. CMS收集器和G1收集器优缺点

    首先要知道 Stop the world的含义(网易面试):不管选择哪种GC算法,stop-the-world都是不可避免的.Stop-the-world意味着从应用中停下来并进入到GC执行过程中去. ...

  6. (一)校园信息通微信小程序从前端到后台整和笔记

    前段时间接触了微信小程序,现在回过头来做一些笔记. 先上效果图 后台数据管理界面(PHP) 校园信息通微信小程序前端界面 下面先简单的说一下怎样部署一个微信小程序 首先是前端 微信小程序有它专门的开发 ...

  7. Django之分页

    需要知道:每页多少条数据.一共多少条数据.一共需要多少页.每页从哪开始到哪结束 注意问题:1.用户输入页码为非数字.  2.用户输入页码超出页码范围 def books(request): try: ...

  8. 华为交换机配置stelnet登陆的实例

    作者:邓聪聪 为满足等堡安全要求,对测评对象的交换机做安全登陆的限制 :开启ssh的服务 stelnet server enable :#创建认证用户的用户名和密码 aaa local-user te ...

  9. 翻译NYOJ

    #include<iostream> #include<string.h> #include<stdio.h> using namespace std; ; int ...

  10. [转]PuTTY字体颜色设置

    转载于 https://blog.csdn.net/cyd_shuihan/article/details/77836290 用putty登录Linux,默认配色方案看不清,我们可以自己设置新的字体大 ...