c语言编程贪吃蛇的不同功能,贪吃蛇C语言代码实现(难度可选)
本文实例为大家分享了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语言代码实现(难度可选)相关推荐
- 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书
发布文章 博文管理我的博客退出 Trash Temp 操作系统大作业 基于Linux的模拟进程调度算法 运用c++语言编程 在VMware虚拟机里 centos 亲自写亲自测试 代码 说明书 @[TO ...
- C语言 编程实现简单的计算器功能
编程实现简单的计算器功能,要求用户按如下格式从键盘输入算式: 操作数1 运算符op 操作数2 计算并输出表达式的值,其中算术运算符包括:加(+).减(-).乘().除(/).^(次幂). 要求使其能进 ...
- C语言编程入门新手学习精华:这样学习C语言最有效
1. C语言已死吗? 本资料描述的是使用C语言的高级技巧,力求将你的C语言能力由"基础"提升为"高级".但是学习态度胜过学习方法,在正式学习之前,有一个问题不吐 ...
- 换硬币c语言编程_为什么大多数程序员都会学C语言的5大原因!什么原因让你学不会?...
一.c语言,不朽的传奇 从30年前到如今,一些流行的科技媒体上发表的编程语言排行榜,c语言始终稳定位于前三位,这是其他一种其他的编程语言都达不到的.c语言的江湖地位,不容撼动.虽历史悠久,却也是不朽的 ...
- linux下的c语言编程实验4,实验四-Linux下的C语言编程
实验四Linux 下的 C 语言编程 四.实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用 ...
- atmega16 c语言编程,ATmega16开发系统设计(附protel电路图和C语言程序)☆
摘 要 本文所研究的单片机是Atmega16,这款单片机零售价低,货源充足:且具有16KB的Flash,能满足绝大部分的实际需要:它还支持JTAG仿真,特别适合AVR初学者和需要繁琐调试的低成本 ...
- C语言编程可调电子钟设计,基于ZG211使用C语言编程的电子钟显示设计(最终版)...
<基于ZG211使用C语言编程的电子钟显示设计.doc>由会员分享,可在线阅读全文,更多相关<基于ZG211使用C语言编程的电子钟显示设计(最终版)>请在www.woc88.c ...
- C语言编程论文多少,学生程序论文,有关C语言编程改革的参考
指导: 本文主要讨论与学生程序论文相关的参考文献,对您的论文写作有参考作用. (1. 江苏师范大学现代教育技术中心,江苏徐州221116: 2. 中国矿业大学徐海学院计算机科学与技术系,江苏徐州221 ...
- 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: ...
- python语言编程入门先学什么-初学者先学习python语言还是C语言
有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...
最新文章
- PHP无法加载curl扩展
- 有三AI一周年了,说说我们的初衷,生态和愿景
- java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单
- shell编程最新总结大全
- 微软 PowerBI 被评为商业智能领导者-13年的企业产品奋斗史解读
- windows传真和扫描由于不能访问您的文档_扫描识别工具Dynamic Web TWAIN全年最低价来了!错过再等一年...
- LeetCode 1488. 避免洪水泛滥(贪心+set二分查找)
- MySql索引的原理
- 复旦计算机转专业面试问题,转专业最容易的6所985大学,清华大学第4,复旦大学第3,这所第一...
- android p preview_细数 Android P 开发者预览版中最不能错过的新特性
- 选课中应用Redis一些思考
- 互联网+工业,从哪里开始?
- 【20保研】四川大学计算机学院(软件学院)2019年全国优秀大学生暑期夏令营招生简章...
- 常用的接口测试工具有哪些?
- 字节跳动前端实习面经
- VBA控制Excel行列转换
- 《k3s 源码解析3 ---- k3s集群搭建》
- fusionCharts属性集
- Python并发编程之进程池
- iOS开发小技巧汇总
热门文章
- 留言板php数据库_PHP 留言板教程数据库表设计
- Halcon 注册说明
- hmcl手机版_hmcl启动器手机版下载-hmcl启动器安卓版下载mod附教程_易玩网
- 0基础学MySQL数据库—从小白到大牛(19)字符集
- Inventor Pro v2008
- 对话《哥德尔、埃舍尔、巴赫:集异璧之大成》作者:现在的AI还不够看
- DSP CCS5.5安装步骤
- JS—C11库仑计说明书,js-c11库仑计说明书
- ado控件连接mysql_VB利用ADO控件连接access数据库
- linux通过端口测试网速,【转】Linux下测试网速的工具