/*********************************************************
********************贪吃蛇(难道可选)********************
**************制作者:Xu Lizi      日期:2012/12/31********
********************部分函数有借鉴************************
**********************************************************/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
int snakey[100]={5,4,3,2,1};     /*定义蛇的横坐标*/
int snakex[100]={1,1,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语言编写贪吃蛇代码(难度可选)相关推荐

  1. c语言编写贪吃蛇代码无错,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

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

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

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

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

  4. C语言实现贪吃蛇代码

    C语言实现贪吃蛇,有点难写啊. 我是用VS写的 代码里有注释 我就不多说了 大家也可以直接去下载我的可执行文件 #include<stdio.h> #include<time.h&g ...

  5. 用C语言编写贪吃蛇项目描述,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

  6. c语言编写贪吃蛇难点解析,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

  7. 如何用c 语言编写贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

  8. c语言字符蛇代码,贪吃蛇游戏c语言源贪吃蛇代码代码学习

    1########蛇的状态,U:上:D:下:L:左R:右蛇身的一个节点12{ 13intx; 14inty; 15structSNAKE*next; 16}snake; 1718//全局变量// 19 ...

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

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

最新文章

  1. 我,14岁初中生,从零开始拿到了Kaggle竞赛冠军
  2. 根据Android架构分层推荐开发书籍
  3. ubuntu安装vmware(支持mac)与卸载
  4. 111.什么是基带信号?什么是宽带信号?
  5. github操作命令
  6. pytest框架_Python最火的第三方开源测试框架——pytest
  7. 突破100万年薪《多线程服务器端架构》
  8. java培训韩顺平_java韩顺平视频教程
  9. MSSQL SQL简繁转换函数
  10. Radasm出现error LNK2001
  11. 无穷项和求极限(定积分)
  12. 苹果UDID泄露续:为什么UDID泄露会引起这么大反响?
  13. Mysql 创建数据库\添加用户\用户授权
  14. 广州搬家公司 居民搬家 公司搬迁 事业单位搬迁全天服务
  15. linux 内核2.6.35.3,linux-2.6.35.3内核移植(s3c2440)
  16. 英语四级常考100个短语
  17. 数组元素循环左移n个位置(JAVA)
  18. dubbo-dubbo spi详解
  19. python操作xls_python操作excel表格的方法
  20. 3dmax 管子动画_3DMAX中模拟液体在管道流动动画是如何做的?

热门文章

  1. 渗透测试实战-OTRS 5.0.x/6.0.x漏洞利用
  2. 801a qcn文件IMEI修改
  3. 推荐系统学习笔记-冷启动
  4. vue 基于 Export2Excel.js 导出 Excel
  5. 04 frameset-iframe【尚硅谷JavaWeb教程】
  6. 收货地址 html,收货地址.html
  7. 2020/5/19 微机原理
  8. 实验 1 :Data Lab
  9. 开源php留言板源码,PHP开源多功能留言板(SyGuestBook)
  10. matlab 雷达系统界面,基于Matlab的雷达系统仿真软件包设计与实现