程序笔记   发布时间:2022-06-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了贪吃蛇C语言代码实现(难度可选)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

/********************************************************* 
********************贪吃蛇(难度可选)******************** 
**************制作者: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};   /*定义蛇的纵坐标,蛇头起始位置为(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语言手把手教你实现贪吃蛇AI(中)
  • C语言手把手教你实现贪吃蛇AI(上)
  • C语言贪吃蛇经典小游戏
  • C语言链表实现贪吃蛇游戏
  • C语言结构数组实现贪吃蛇小游戏
  • 基于C语言实现的贪吃蛇游戏完整实例代码
  • C语言手把手教你实现贪吃蛇AI(下)

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。