zoukankan      html  css  js  c++  java
  • 贪吃蛇

      1  #include <stdio.h>
      2 #include <stdlib.h>
      3 #include <time.h>
      4 #include <conio.h>
      5 
      6 struct Node
      7 {
      8     int x;
      9     int y;
     10     struct Node *pre;
     11     struct Node *next;
     12 };
     13 
     14 struct Food
     15 {
     16     int x;
     17     int y;
     18     char c;
     19 };
     20 
     21 void main()
     22 {
     23     int a[15][15]={0};
     24     int i,j,t,flag=0;
     25     char c='d',c1='d';
     26     struct Food food={5,8,'A'};
     27     int gameover=0;
     28     struct Node *head,*p,*rear,*pt;
     29     
     30     head=(struct Node *)malloc(sizeof(struct Node));
     31     head->x=5;
     32     head->y=8;
     33     head->pre=NULL;
     34     head->next=NULL;
     35     rear=head;
     36 
     37     srand((unsigned)time(NULL));
     38     
     39     while(1)
     40     {
     41         if(food.x==head->x && food.y==head->y)
     42         {
     43             p=(struct Node *)malloc(sizeof(struct Node));
     44             pt=head;
     45             while(pt->next!=NULL)
     46                 pt=pt->next ;
     47             p->pre= pt;
     48             pt->next = p;
     49             p->next=NULL;
     50             rear=p;
     51 
     52             food.x=rand()%15;
     53             food.y=rand()%15;
     54             food.c=65+rand()%26;
     55 
     56             flag=1;
     57             t=0;
     58             while(flag==1)
     59             {
     60                 if(t>5)
     61                     break;
     62 
     63                 flag=0;
     64 
     65                 pt=head;
     66                 while(pt!=NULL)
     67                 {
     68                     if(food.x==pt->x && food.y==pt->y)
     69                     {
     70                         flag=1;
     71                         food.x=rand()%15;
     72                         food.y=rand()%15;
     73                         break;
     74                     }
     75                     pt=pt->next;
     76                 }
     77                 t++;
     78             }
     79             if(t>5)
     80             {
     81                 if(c=='d')
     82                 {
     83                     food.x=head->x+1;
     84                     food.y=head->y;
     85                     if(food.x>=15)
     86                         food.x-=15;
     87                 }
     88                 else if(c=='a')
     89                 {
     90                     food.x=head->x-1;
     91                     food.y=head->y;
     92                     if(food.x<0)
     93                         food.x+=15;
     94                 }
     95                 else if(c=='w')
     96                 {
     97                     food.x=head->x;
     98                     food.y=head->y+1;
     99                     if(food.y>=15)
    100                         food.y-=15;
    101                 }
    102                 else if(c=='s')
    103                 {
    104                     food.x=head->x;
    105                     food.y=head->y-1;
    106                     if(food.y<0)
    107                         food.y+=15;
    108                 }
    109             }
    110         }
    111 
    112         if(kbhit())
    113         {
    114             c1=getch();
    115             if(c1==27)
    116                 break;
    117             
    118             if(c!='d' && c1=='a')
    119                 c=c1;
    120             else if(c!='a' && c1=='d')
    121                 c=c1;
    122             else if(c!='w' && c1=='s')
    123                 c=c1;
    124             else if(c!='s' && c1=='w')
    125                 c=c1;
    126         }
    127 
    128         pt=rear;
    129         while(pt!=head )
    130         {
    131             pt->x=pt->pre->x;
    132             pt->y=pt->pre->y;
    133             pt=pt->pre;
    134         }
    135 
    136         if(c=='d')
    137         {
    138             head->y+=1;
    139             if(head->y>=15)
    140                 head->y-=15;
    141         }
    142         else if(c=='a')
    143         {
    144             head->y-=1;
    145             if(head->y<0)
    146                 head->y+=15;
    147         }
    148         else if(c=='w')
    149         {
    150             head->x-=1;
    151             if(head->x<0)
    152                 head->x+=15;
    153         }
    154         else if(c=='s')
    155         {
    156             head->x+=1;
    157             if(head->x>=15)
    158                 head->x-=15;
    159         }
    160 
    161         pt=head->next;
    162         while(pt!=NULL)
    163         {
    164             if(head->x==pt->x && head->y==pt->y)
    165             {
    166                 gameover=1;
    167                 break;
    168             }
    169             pt=pt->next ;
    170         }
    171         if(gameover==1)
    172             break;
    173         
    174         system("cls");
    175         printf("  ───────────────
    ");
    176         for(i=0;i<15;i++)
    177         {
    178             printf("");
    179             for(j=0;j<15;j++)
    180             {
    181 
    182                 flag=0;
    183                 pt=head;
    184                 while(pt!=NULL)
    185                 {
    186                     if(i==pt->x && j==pt->y)
    187                     {
    188                         if(pt==head)
    189                             printf("");
    190                         else
    191                             printf("");
    192                         flag=1;
    193                         break;
    194                     }
    195                     pt=pt->next;
    196                 }
    197 
    198 
    199                 if(flag==0)
    200                 {
    201                     if(i==food.x && j==food.y)
    202                     {
    203                         putchar(food.c);
    204                         putchar(food.c);
    205                         continue;
    206                     }
    207                     printf("  ");
    208                 }
    209             }
    210             printf("");
    211             putchar('
    ');
    212         }
    213         printf("  ───────────────
    ");
    214         
    215         _sleep(200);   
    216             
    217     }
    218 
    219     if(gameover==1)
    220         puts("game over!
    ");
    221 
    222     getch();
    223     
    224 }
  • 相关阅读:
    [MySQL] MySQL连接字符串总结[转]
    JavaScript删除字符串中的空格
    日期正则表达式[转]
    WIN7拥有管理员权限的使用方法
    SQLWave. GUI Client for MySQL Database Server
    Windows下MySQL多实例运行[转]
    Facebook 的 PHP 性能与扩展性[转]
    改变Datalist行背景色
    Excel导入数据库
    c#创建Table
  • 原文地址:https://www.cnblogs.com/herizai/p/3157637.html
Copyright © 2011-2022 走看看