C语言贪吃蛇

  • Z7_403705
    了解作者
  • 1.8MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-18 08:26
    上传日期
C语言的黑白版贪吃蛇,利用循环数组的简单程序,适合新手学习。
贪吃蛇.rar
  • she
  • Debug
  • vc60.pdb
    60KB
  • she.pdb
    521KB
  • she.ilk
    221.4KB
  • vc60.idb
    41KB
  • c.ilk
    205.9KB
  • c.obj
    20KB
  • she.pch
    2.7MB
  • c.exe
    188.1KB
  • c.pch
    2.7MB
  • c.pdb
    497KB
  • she.exe
    188.1KB
  • Release
  • she.opt
    47.5KB
  • she.ncb
    41KB
  • she.dsw
    514B
  • c.dsp
    3.3KB
  • she.dsp
    4.1KB
  • c.dsw
    510B
  • c.c
    6.1KB
  • c.exe
    20.7KB
  • c.opt
    47.5KB
  • c.ncb
    41KB
内容介绍
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> #include<windows.h> int x=5, y=5,life=0,goals=0,changdu=1,direction=1; char map[20][20]; int map2[20][20],a[20],b[20]; void print() { int i, j; for(i=0; i<=19; i++) { for(j=0; j<=19; j++) { printf("%c",map[i][j]); } printf("\n"); } printf("goal:%d",goals); } void control(int ch) { int i,j; switch(ch) { case 2: for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; map2[a[changdu]][b[changdu]]=0; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; b[i]=b[i-1];a[i]=a[i-1]; } b[0]++; if(b[0]==19){ life=1; break; } for(i=1;i<=changdu;i++) { if(a[i]==a[0]&&b[i]==b[0]) { life=1; break; } } if(life) break; for(i=0;i<changdu;i++) { map[a[i]][b[i]]='\1'; map2[a[i]][b[i]]=1; map[a[i+1]][b[i+1]]='\1'; map2[a[i+1]][b[i+1]]=1;} break; case 4: for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; map2[a[changdu]][b[changdu]]=0; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; b[i]=b[i-1];a[i]=a[i-1];} b[0]--; if(b[0]==0) { life=1; break; } for(i=1;i<=changdu;i++) { if(a[i]==a[0]&&b[i]==b[0]) { life=1; break; } } if(life) break; for(i=0;i<changdu;i++) { map[a[i+1]][b[i+1]]='\1'; map2[a[i+1]][b[i+1]]=1; map[a[i]][b[i]]='\1'; map2[a[i]][b[i]]=1;} break; case 3: for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; map2[a[changdu]][b[changdu]]=0; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; a[i]=a[i-1];b[i]=b[i-1];} for(j=0;j<1;j++) a[j]++; if(a[0]==19) { life=1; break; } for(i=1;i<=changdu;i++) { if(a[i]==a[0]&&b[i]==b[0]) { life=1; break; } } if(life) break; for(i=0;i<changdu;i++) { map[a[i]][b[i]]='\1'; map2[a[i]][b[i]]=1; map[a[i+1]][b[i+1]]='\1'; map2[a[i+1]][b[i+1]]=1;} break; case 1: for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; map2[a[changdu]][b[changdu]]=0; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; a[i]=a[i-1];b[i]=b[i-1];} a[0]--; if(a[0]==0){ life=1; } for(i=1;i<=changdu;i++) { if(a[i]==a[0]&&b[i]==b[0]) { life=1; break; } } if(life) break; for(i=0;i<changdu;i++) { map[a[i+1]][b[i+1]]='\1'; map2[a[i+1]][b[i+1]]=1; map[a[i]][b[i]]='\1'; map2[a[i]][b[i]]=1;} break; } } int main() { int i,j,c,d,v=3; int success=0; char ch; for(i=0; i<=19; i++) { for(j=0; j<=19; j++) { map[i][j]='\4'; } } for(i=1;i<=18;i++) { for(j=1;j<=18;j++) { map[i][j]=' '; } } map[y][x]='\1'; map[y-1][x]='\1'; a[0]=y;a[1]=y-1; b[0]=x;b[1]=x; map2[y][x]=1; map2[y-1][x]=1; while (1) { system("cls"); if(success==2) break; if(life) break; success=0; srand((unsigned)time(NULL)); c=rand()%17+1; d=rand()%17+1; if(map2[c][d]!=1) { map[c][d]='\3'; } while(success==0) { print(); /* while((ch=getch())!='a'||(ch=getch())!='w'||(ch=getch())!='s'||(ch=getch())!='d') { if(direction==1) { for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; a[i]=a[i-1];b[i]=b[i-1];} for(j=0;j<1;j++) a[j]++; if(a[0]==19) { life=1; break; } for(i=0;i<changdu;i++) { map[a[i]][b[i]]='\1'; map[a[i+1]][b[i+1]]='\1';} Sleep(1000); system("cls");} if(direction==2) { for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; a[i]=a[i-1];b[i]=b[i-1];} a[0]--; if(a[0]==0){ life=1; break; } for(i=0;i<changdu;i++) { map[a[i+1]][b[i+1]]='\1'; map[a[i]][b[i]]='\1';} Sleep(1000); system("cls"); } if(direction==3) { for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; b[i]=b[i-1];a[i]=a[i-1];} b[0]--; if(b[0]==0) { life=1; break; } for(i=0;i<changdu;i++) { map[a[i+1]][b[i+1]]='\1'; map[a[i]][b[i]]='\1';} Sleep(1000); system("pause"); } if(direction==4) { for(i=changdu;i>0;i--) { map[a[changdu]][b[changdu]]=' '; a[changdu+1]=a[changdu]; b[changdu+1]=b[changdu]; b[i]=b[i-1];a[i]=a[i-1]; } b[0]++; if(b[0]==19){ life=1; break; } for(i=0;i<changdu;i++) { map[a[i]][b[i]]='\1'; map[a[i+1]][b[i+1]]='\1';} Sleep(1000); system("cls"); } }*/ for (i=1;i<=15;i++){ if(GetAsyncKeyState(VK_UP)<0){ if(v==3) {v=3;} else if(v==1) break; else v=1; } else if(GetAsyncKeyState(VK_DOWN)<0){ if(v==1) { v=1; } else if(v==3) break; else v=3; } else if(GetAsyncKeyState(VK_RIGHT)<0){ if(v==4) { v=4;} else if(v==2) break; else v=2; } else if(GetAsyncKeyState(VK_LEFT)<0){ if(v==2) { v=2;} else if(v==4) break; else v=4; } if(goals<10) Sleep(10); else if(goals>=10&&goals<=15) Sleep(2); else if(goals>15) {success=2; break;} } ch=v; if(ch=='0') break; control(ch); if(life) break; if(success==2) break; if((a[0]==c)&&(b[0]==d)) {success=1; goals++; changdu++; map[a[changdu+1]][b[changdu+1]]='\1'; break; } system("cls"); } } if(life=1) { system("cls"); printf("game over"); } if(success==2) printf("恭喜你闯关成功!!、\n"); else printf("再接再厉~~\n"); system("pause"); return 0; }
评论
    相关推荐
    • 谭浩强C语言
      这是谭浩强C语言的新版,有兴趣想学C语言的童鞋们可以下载来看看啊!
    • 谭浩强c语言
      谭浩强c语言,国内最权威的c语言学习宝典,从零基础开始,成为c语言高手。
    • Makefile c语言
      Makefile c语言Makefile c语言Makefile c语言Makefile c语言 四本资料!自己学习的时候整理的!
    • c语言教程
      c语言教程,优秀的c语言教程,简单基础,是学习c语言的好教程
    • C语言 实现
      C语言 项目实现 《计算方法》课件 俄罗斯方块游戏 C语言实训 综合案例-学生成绩管理程序 C语言程序设计学习与实践指导(源代码)
    • c语言
      c语言
    • C语言库函数
      C语言函数库,里面包括C语言的函数库,方便直接调用,还可以了解很多C语言一些函数模板
    • C语言
      C语言
    • 谭浩强C语言
      谭浩强C语言word版,学习C语言的,经典教材。 使用的编译工具有些老旧,建议是使用visual stdio 2008。
    • 水滴石穿C语言
      学习C语言的有用文档 水滴石穿C语言C语言的底层操作 水滴石穿C语言之extern声明辨析 水滴石穿C语言之static辨析 水滴石穿C语言之typedef的问题 水滴石穿C语言之编译器引出的问题 水滴石穿C语言之代码检查工具 ...