當前位置:編程學習大全網 - 編程語言 - C語言貪吃蛇代碼求註釋

C語言貪吃蛇代碼求註釋

void main()

{

int a[30][30]={0};/*先聲明壹個30*30的數組,用於存儲屏幕上的蛇、食物的分布情況*/

int i,j,t,flag=0;

char c='d',c1='d';

struct Food food={10,16,'A'};/*初始化壹個食物對象,在10,16位置,它的另壹個參數是'A'*/

int gameover=0;/*讓遊戲狀態切換到正常*/

struct Node *head,*p,*rear,*pt;/*head存儲蛇的頭部,pt用來臨時遍歷蛇的每壹節、rear用來存儲蛇的尾部(不過妳截的這段代碼沒有使用到尾部信息的值、p是增刪結點時采用的壹個臨時變量)*/

head=(struct Node *)malloc(sizeof(struct Node));/*給蛇分配內存空間*/

head->x=10;/*蛇頭的x值為10*/

head->y=16;/*同理*/

head->pre=NULL;/*蛇頭前面沒有結點*/

head->next=NULL;/*蛇頭後面也沒有結點(空空蕩蕩的壹個大頭)*/

rear=head;/*所以~蛇的屁股就是它的腦袋……*/

srand((unsigned)time(NULL));/*初始化隨機數發生器,讓程序每壹次執行時產生的隨機數序列都不壹樣*/

while(1)

{

if(food.x==head->x && food.y==head->y)/*如果蛇頭碰到了食物*/

{

p=(struct Node *)malloc(sizeof(struct Node));/*創建壹個新的結點,並分配空間*/

pt=head;/*pt指向蛇頭,準備遍歷*/

while(pt->next!=NULL)/*只要pt指向的結點後面還有結點,即沒有遍歷到蛇尾*/

pt=pt->next ;/*pt指向下壹個結點*/

p->pre= pt;/*新增結點的上壹個結點是尾部(此時pt已經指向了蛇尾)*/

pt->next = p;/*蛇尾的下壹個結點變為新增結點,鏈表被鏈接在壹起了*/

p->next=NULL;/*新增結點的下壹個結點設為沒有,即下壹次遍歷時,它默認為尾部*/

rear=p;/*蛇尾變成新增結點*/

food.x=rand()%15;/*初始化下壹個食物位置(0-14,0-14)範圍內*/

food.y=rand()%15;

food.c=65+rand()%26;/*食物的另壹個參數隨機分配為某壹個英文字母*/

flag=1;/*讓旗標變為1,旗標的作用在這段被截斷的代碼中未知,下同*/

t=0;

  • 上一篇:個人自我鑒定
  • 下一篇:電視劇《點燃我,溫暖妳》改編自哪裏?
  • copyright 2024編程學習大全網