#include
#include
#include
#include
#include
#include
#define screen_width 40 /*遊戲螢幕寬度*/
#define screen_length 15 /*遊戲螢幕長度*/
#define start_x 16 /*螢幕起始x座標*/
#define start_y 2 /*螢幕起始y座標*/
enum direc; /*蛇的運動方向*/
typedef struct snakesnake;
typedef structfood;
void hidecursor() /*隱藏游標,用到了一些console api*/
void gotorood(int x, int y) /*游標跳躍到某個位置,用了 console api*/
// sleep()代替delay sleep(500)表示延遲500ms
int random(int n) /*隨機生成食物的位置*/
void buildsnk(snake *head) /*構造蛇身*/
}void removesnk(snake *head) /*清除函式*/
}void move(int *d) //移動方向。。。 上下左右 上:72 下:80 左:75 右:77
else if (ch == 80)
else if (ch == 75)
else if (ch == 77)
}}void iniscreen(snake *head) /*初始化螢幕*/
gotorood(start_x, start_y + screen_length + 1);
for (i = 0; i < screen_width + 2; i++)
printf("-");
for (j = 1; j <= screen_length; j++)
gotorood(start_x + 20, start_y - 1);
gotorood(0,start_y + 2);
printf("遊戲說明:\n\n↑設定等級\n\n按〖回車〗開始\n\n↑↓←→\n控制方向\n");
/*--------------孵化蛇-------------------*/
head->x = start_x + screen_width / 2;
head->y = start_y + 8;
head->pre = null;
p1 = head;
i = 0;
while (++i < 3)
p1->next = null;
head->end = p1;
buildbody(head);
}void creatfood(food *fd, snake *snk) /*做吃的,記得增加乙個功能就是讓食物不與蛇體衝突*/
if (clash == 0)
break;
}gotorood(fd->x, fd->y);
printf("*");
}void collisiontest(snake *head)
int eated(snake *head, food *fd) /*....有木有吃到食物*/
int gameover(snake *head) /*判斷遊戲結束了沒.*/
return 0;
}void gameing() /*遊戲過程*/
else if (rank == 13)
break;
}while (1)
if (!eat) /*如果沒吃到,那自然增加蛇的長度*/
else
head->pre = ptemp; /*。。佇列連線*/
ptemp->next = head;
ptemp->pre = null;
head = ptemp;
if (eat = eated(head, fd))
gotorood(start_x + 10, start_y - 1);
printf("score: %-3d", score);
}if (gameover(head)) /*遊戲是否結束....*/
collisiontest(head); /*碰撞測試*/
buildsnk(head);
sleep((10 - grade) * 50); /*延時...程式會暫停(10 - grade)*50ms 的時間, windows.h裡的函式*/}}
int main()
C語言 貪吃蛇
include include include define framewidght 22 define frameheight 22 short generaterandnumber short a,short b void posconsolecursor short x,short y voi...
C語言貪吃蛇
親測devc 編譯器完美執行 define crt secure no warnings include include include include void readini file fphead,int score,char argv 建立或開啟乙個和執行檔案對應的ini檔案,讀取最高紀錄 ...
C語言 貪吃蛇
結構體鍊錶,動態分配記憶體,鍵盤輸入檢測,設定游標。1,涉及多個結構體,分別定義蛇,方向,結點,位置座標,遊戲 2,結點串聯形成鍊錶,遍歷獲取成員座標,列印符號得到蛇身。3,不斷的加頭,去尾,重新遍歷座標,再列印形成蛇的移動。4,食物產生的位置判定,不能越界,也不能與蛇身體重合。5,蛇的轉向判定,一...