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

/*********************************************************

********************贪吃蛇(难度可选)********************

**************制作者:Xu Lizi 日期:2012/12/31********

********************部分函数有借鉴************************

**********************************************************/

#include

#include

#include

#include

#include

int snakey[100]={5,4,3,2,1}; /*定义蛇的横坐标*/

int snakex[100]={1,1,1}; /*定义蛇的纵坐标,蛇头起始位置为(5,1)*/

int life=0; /*定义蛇的生命,0表示存活,1表示死亡*/

int lenght=5; /*定义蛇的长度,初始为5节*/

char map[12][24]={"***********************",/*y*/

"* *","* *",/*x*/ "***********************"};

void put_money(int i,int j) /*放钱函数,使用随机数,随机出现食物*/

{

int x=0,y=0;

srand(time(NULL));

while ( (map[y][x]==003) || (map[y][x]==002) || (map[y][x]=='*') || ((x==i)&&(y==j)) )

{

x=rand()%21+1;

y=rand()%10+1;

}

map[y][x]='$';

return;

}

void output() /*输出*/

{

system("cls");

int i,j;

for(i=0; i<12; i++)

{

for(j=0; j<23; j++) printf("%c",map[i][j]);

printf("\n");

}

return;

}

void gameover() /*游戏结束*/

{

life=1;

printf("笨蛋,输了吧!!!\n");

return;

}

void turn_up() /*向上移动*/

{

system("cls");

int i;

if ( (snakex[0]==1) || (map[snakex[0]-1][snakey[0]]==003) ) gameover(); else {

if (map[snakex[0]-1][snakey[0]]=='$')

{

put_money( snakey[0],snakex[0]-1 );

lenght++;

map[snakex[lenght-1]][snakey[lenght-1]]=003;

}

for(i=lenght; i>0; i--)

{

snakex[i]=snakex[i-1];

snakey[i]=snakey[i-1];

}

map[snakex[lenght]][snakey[lenght]]=' ';

snakex[0]--;

for(i=lenght-1; i>0; i--) map[snakex[i]][snakey[i]]=003;

map[snakex[0]][snakey[0]]=002;

output();

}

return;

}

void turn_down() /*向下*/

{

system("cls");

int i;

if ( (snakex[0]==10) || (map[snakex[0]+1][snakey[0]]==003) ) gameover();else {

if (map[snakex[0]+1][snakey[0]]=='$')

{

put_money(snakey[0],snakex[0]+1);

lenght++;

map[snakex[lenght-1]][snakey[lenght-1]]=003;

}

for(i=lenght; i>0; i--)

{

snakex[i]=snakex[i-1];

snakey[i]=snakey[i-1];

}

snakex[0]++;

map[snakex[lenght]][snakey[lenght]]=' ';

for(i=lenght-1; i>0; i--) map[snakex[i]][snakey[i]]=003;

map[snakex[0]][snakey[0]]=002;

output();

}

return;

}

void turn_left() /*向左*/

{

system("cls");

int i;

if ( (snakey[0]==1) || (map[snakex[0]][snakey[0]-1]==003) ) gameover();else {

if (map[snakex[0]][snakey[0]-1]=='$')

{

put_money(snakey[0]-1,snakex[0]);

lenght++;

map[snakex[lenght-1]][snakey[lenght-1]]=003;

}

for(i=lenght; i>0; i--)

{

snakex[i]=snakex[i-1];

snakey[i]=snakey[i-1];

}

map[snakex[lenght]][snakey[lenght]]=' ';

snakey[0]--;

for(i=lenght-1; i>0; i--) map[snakex[i]][snakey[i]]=003;

map[snakex[0]][snakey[0]]=002;

output();

}

return;

}

void turn_right() /*向右*/

{

system("cls");

int i;

if ( (snakey[0]==21) || (map[snakex[0]][snakey[0]+1]==003) ) gameover();else {

if (map[snakex[0]][snakey[0]+1]=='$')

{

put_money(snakey[0]+1,snakex[0]);

lenght++;

map[snakex[lenght-1]][snakey[lenght-1]]=003;

}

for(i=lenght; i>0; i--)

{

snakex[i]=snakex[i-1];

snakey[i]=snakey[i-1];

}

map[snakex[lenght]][snakey[lenght]]=' ';

snakey[0]++;

for(i=lenght-1; i>0; i--) map[snakex[i]][snakey[i]]=003;

map[snakex[0]][snakey[0]]=002;

output();

}

return;

}

int main()

{

int i,timeover,hard;

long start;

char name,direcation;

printf("\n 向上移动:W ;向下移动:S ; 向左移动:A ; 向右移动:D \n");

printf("\t请选择难度(数字)\n\t分1~5级,分别代表\n\t1难,2中上,3中,4中下5,易:\n");

scanf("%d",&hard);

system("cls");

for(i=1;i<5;i++) map[1][i]=003; /*输出蛇身*/

map[1][5]=002; /*输出蛇头*/

put_money(0,0);

output();

while(life!=1) /*当蛇死亡时结束循环*/

{

/*让蛇自动运行的函数******有借鉴*/

timeover=1;

start=clock();

while((timeover=(clock()-start<=hard*100))&&!kbhit()); //难度设定

if(timeover)

{

direcation=getch();

}

/*让蛇自动运行的函数******有借鉴*/

switch(direcation)

{

case 'w':turn_up();break;

case 's':turn_down();break;

case 'a':turn_left();break;

case 'd':turn_right();break;

}

}

return 0;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是编程之家为你收集整理的贪吃蛇C语言代码实现(难度可选)全部内容,希望文章能够帮你解决贪吃蛇C语言代码实现(难度可选)所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

c语言编程贪吃蛇的不同功能,贪吃蛇C语言代码实现(难度可选)相关推荐

  1. 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书

    发布文章 博文管理我的博客退出 Trash Temp 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书 @[TO ...

  2. C语言 编程实现简单的计算器功能

    编程实现简单的计算器功能,要求用户按如下格式从键盘输入算式: 操作数1 运算符op 操作数2 计算并输出表达式的值,其中算术运算符包括:加(+).减(-).乘().除(/).^(次幂). 要求使其能进 ...

  3. C语言编程入门新手学习精华:这样学习C语言最有效

    1. C语言已死吗? 本资料描述的是使用C语言的高级技巧,力求将你的C语言能力由"基础"提升为"高级".但是学习态度胜过学习方法,在正式学习之前,有一个问题不吐 ...

  4. 换硬币c语言编程_为什么大多数程序员都会学C语言的5大原因!什么原因让你学不会?...

    一.c语言,不朽的传奇 从30年前到如今,一些流行的科技媒体上发表的编程语言排行榜,c语言始终稳定位于前三位,这是其他一种其他的编程语言都达不到的.c语言的江湖地位,不容撼动.虽历史悠久,却也是不朽的 ...

  5. linux下的c语言编程实验4,实验四-Linux下的C语言编程

    实验四Linux 下的 C 语言编程 四.实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用 ...

  6. atmega16 c语言编程,ATmega16开发系统设计(附protel电路图和C语言程序)☆

    摘    要 本文所研究的单片机是Atmega16,这款单片机零售价低,货源充足:且具有16KB的Flash,能满足绝大部分的实际需要:它还支持JTAG仿真,特别适合AVR初学者和需要繁琐调试的低成本 ...

  7. C语言编程可调电子钟设计,基于ZG211使用C语言编程的电子钟显示设计(最终版)...

    <基于ZG211使用C语言编程的电子钟显示设计.doc>由会员分享,可在线阅读全文,更多相关<基于ZG211使用C语言编程的电子钟显示设计(最终版)>请在www.woc88.c ...

  8. C语言编程论文多少,学生程序论文,有关C语言编程改革的参考

    指导: 本文主要讨论与学生程序论文相关的参考文献,对您的论文写作有参考作用. (1. 江苏师范大学现代教育技术中心,江苏徐州221116: 2. 中国矿业大学徐海学院计算机科学与技术系,江苏徐州221 ...

  9. c语言编程杨辉三角前八行思路,C语言----(杨辉三角)

    用C语言编程打印出杨辉三角的前10行.如下图所示: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 ... ... 解法1: ...

  10. python语言编程入门先学什么-初学者先学习python语言还是C语言

    有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...

最新文章

  1. PHP无法加载curl扩展
  2. 有三AI一周年了,说说我们的初衷,生态和愿景
  3. java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单
  4. shell编程最新总结大全
  5. 微软 PowerBI 被评为商业智能领导者-13年的企业产品奋斗史解读
  6. windows传真和扫描由于不能访问您的文档_扫描识别工具Dynamic Web TWAIN全年最低价来了!错过再等一年...
  7. LeetCode 1488. 避免洪水泛滥(贪心+set二分查找)
  8. MySql索引的原理
  9. 复旦计算机转专业面试问题,转专业最容易的6所985大学,清华大学第4,复旦大学第3,这所第一...
  10. android p preview_细数 Android P 开发者预览版中最不能错过的新特性
  11. 选课中应用Redis一些思考
  12. 互联网+工业,从哪里开始?
  13. 【20保研】四川大学计算机学院(软件学院)2019年全国优秀大学生暑期夏令营招生简章...
  14. 常用的接口测试工具有哪些?
  15. 字节跳动前端实习面经
  16. VBA控制Excel行列转换
  17. 《k3s 源码解析3 ---- k3s集群搭建》
  18. fusionCharts属性集
  19. Python并发编程之进程池
  20. iOS开发小技巧汇总

热门文章

  1. 留言板php数据库_PHP 留言板教程数据库表设计
  2. Halcon 注册说明
  3. hmcl手机版_hmcl启动器手机版下载-hmcl启动器安卓版下载mod附教程_易玩网
  4. 0基础学MySQL数据库—从小白到大牛(19)字符集
  5. Inventor Pro v2008
  6. 对话《哥德尔、埃舍尔、巴赫:集异璧之大成》作者:现在的AI还不够看
  7. DSP CCS5.5安装步骤
  8. JS—C11库仑计说明书,js-c11库仑计说明书
  9. ado控件连接mysql_VB利用ADO控件连接access数据库
  10. linux通过端口测试网速,【转】Linux下测试网速的工具