資訊學奧林匹克競賽 C語言貪吃蛇

2021-07-10 06:00:55 字數 2552 閱讀 4738

#include#include#include#include#define u 1

#define d 2

#define l 3

#define r 4 //蛇的狀態,u:上 ;d:下;l:左 r:右

typedef struct snake snake;

//全域性變數//

int score=0,add=10;//總得分與每次吃食物得分。

int status,sleeptime=200;//每次執行的時間間隔

snake *head, *food;//蛇頭指標,食物指標

snake *q;//遍歷蛇的時候用到的指標

int endgamestatus=0; //遊戲結束的情況,1:撞到牆;2:咬到自己;3:主動退出遊戲。

//宣告全部函式//

void pos();

void creatmap();

void initsnake();

int biteself();

void createfood();

void cantcrosswall();

void snakemove();

void pause();

void gamecircle();

void welcometogame();

void endgame();

void gamestart();

void pos(int x,int y)

void creatmap()

for(i=1; i<26; i++)

}void initsnake()

while(tail!=null)

}int biteself()

self=self->next;

} return 0;

}void createfood()

food_1->y=rand()%24+1;

q=head;

while(q->next==null)

q=q->next;

} pos(food_1->x,food_1->y);

food=food_1;

printf("■");

}void cantcrosswall()

}void snakemove()

score=score+add;

createfood();

} else

pos(q->next->x,q->next->y);

printf(" ");

free(q->next);

q->next=null;

} }if(status==d)

score=score+add;

createfood();

} else

pos(q->next->x,q->next->y);

printf(" ");

free(q->next);

q->next=null;

} }if(status==l)

score=score+add;

createfood();

} else

pos(q->next->x,q->next->y);

printf(" ");

free(q->next);

q->next=null;

} }if(status==r)

score=score+add;

createfood();

} else

pos(q->next->x,q->next->y);

printf(" ");

free(q->next);

q->next=null;

} }if(biteself()==1)

}void pause() }}

void gamecircle() else if(getasynckeystate(vk_down) && status!=u) else if(getasynckeystate(vk_left)&& status!=r) else if(getasynckeystate(vk_right)&& status!=l) else if(getasynckeystate(vk_space)) else if(getasynckeystate(vk_escape)) else if(getasynckeystate(vk_f1))

}} else if(getasynckeystate(vk_f2))

}} sleep(sleeptime);

snakemove(); }}

void welcometogame()

void endgame() else if(endgamestatus==2) else if(endgamestatus==3)

pos(24,13);

printf("您的得分是%d\n",score);

exit(0);

}void gamestart()

int main()

資訊學奧林匹克競賽 ISBN號碼

每一本正式出版的圖書都有乙個isbn號碼與之對應,isbn碼包括9位數字 1位識別碼和3位分隔符,其規定格式如 x xx x 其中符號 就是分隔符 鍵盤上的減號 最後一位是識別碼,例如0 670 82162 4就是乙個標準的isbn碼。isbn碼的首位數字表示書籍的出版語言,例如0代表英語 第乙個分...

國際資訊學奧林匹克競賽 IOI

1987年,保加利亞的sendov教授在聯合國教科文組織第24屆全體會議上,倡議舉行國際資訊學奧林匹克,定名為international olympiad in informatics,簡稱ioi。首屆ioi於1989年5月在保加利亞首都索菲亞舉行。資訊學奧林匹克是計算機知識在世界範圍的青少年中普及...

資訊學奧林匹克競賽 運輸層協議

運輸層最重要的兩種協議 udp和tcp 運輸層向它上面的應用層提供通訊服務 從運輸層的角度看,通訊的真正端點並不是主機而是主機中的程序。運輸層的功能 復用 multiplexing 在傳送方不同的應用程序都可以使用同乙個運輸層協議傳送資料 分用 dumultiplexing 接收方的運輸層在剝去報文...