纯C语言写的贪吃蛇源码

2015-01-11 0 814
纯C语言写的贪吃蛇源码
    #include  
    #include  
    #include  
    #include  
    #include   
      
    #define N 225  
      
    struct Food  
    {  
        int x;  
        int y;  
        int yes;//1表示需要出现新食物,0表示已有食物。  
    }food;  
      
    struct Snake  
    {  
        struct Food body[N];  
        int life;//1表示蛇死啦,0表示蛇活着。  
        int node;//蛇的节数。  
        char direction;//蛇自动运动的方向。  
    }snake;  
      
    int score=0;  
      
    int main()  
    {  
        FILE *p;  
        int i,j,k,b;  
        char map[16][16],c;  
      
        p=fopen("E:\\file.txt","r");  
        if(p==NULL)  
        {  
            printf("error");  
            exit(1);  
        }  
        for(i=0;i<16;i++) { for(j=0;j<16;j++) { map[i][j]=fgetc(p); } fgetc(p); } snake.body[0].x=8;//蛇头。 snake.body[0].y=8; snake.body[1].x=8; snake.body[1].y=7; snake.body[2].x=8; snake.body[2].y=6; snake.node=3;//蛇的节数。 food.yes=1; srand(time(NULL)); snake.direction='d';//一开始蛇自动往右跑。 while(1) { if(kbhit()) { c=getch(); if(snake.life==1) break; if(c=='w' && snake.direction!='s') snake.direction='w'; else if(c=='a' && snake.direction!='d') snake.direction='a'; else if(c=='s' && snake.direction!='w') snake.direction='s'; else if(c=='d' && snake.direction!='a') snake.direction='d'; } if(food.yes==1)//需要随机出现新的食物。 { food.x=1+rand()%14; food.y=1+rand()%14; for(i=0;i0;i--)//蛇往前移动。  
            {  
                snake.body[i].x=snake.body[i-1].x;  
                snake.body[i].y=snake.body[i-1].y;  
            }  
      
            switch(snake.direction)//蛇头方向。  
            {  
                case'a':  
                    snake.body[0].y-=1;  
                    break;  
                case'w':  
                    snake.body[0].x-=1;  
                    break;  
                case'd':  
                    snake.body[0].y+=1;  
                    break;  
                case's':  
                    snake.body[0].x+=1;  
                    break;  
            }  
      
      
            if(food.yes==0)//显示蛇,食物和围墙。  
            {  
                system("cls");  
                for(i=0;i<16;i++) { for(j=0;j<16;j++) { b = 1; for(k=0;k0 && j<15 && j>0)//食物。  
                                printf("★");  
                            else if(map[i][j]=='1')  
                                printf("■");  
                            else   
                                printf("  ");  
                        }  
                                  
                    }  
                    putchar('\n');  
                }  
                Sleep(250);//休眠函数。  
            }  
              
            for(i=3;i=15 || snake.body[0].x<=0 || snake.body[0].y>=15 || snake.body[0].y<=0) { printf("蛇撞墙死了!\n"); printf("共得分:%d\n",score); snake.life=1; break; } } fclose(p); return 0; } 
  1. 下面是file.txt: 
  1. 1111111111111111  
  2. 1000000000000001  
  3. 1000000000000001  
  4. 1000000000000001  
  5. 1000000000000001  
  6. 1000000000000001  
  7. 1000000000000001  
  8. 1000000000000001  
  9. 1000000000000001  
  10. 1000000000000001  
  11. 1000000000000001  
  12. 1000000000000001  
  13. 1000000000000001  
  14. 1000000000000001  
  15. 1000000000000001  
  16. 1111111111111111 

遇见资源网 c/c++ 纯C语言写的贪吃蛇源码 http://www.ox520.com/10001.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务