C語言 貪吃蛇

2021-07-24 22:43:54 字數 2703 閱讀 4755

#include

#include

#include

#define framewidght 22

#define frameheight 22

short generaterandnumber(short a, short b) ;

void posconsolecursor(short x, short y) ;

void hideconsolecursoricon() ;

void initstarthint() ;

void inithint() ;

void initframe() ;

void initsnake() ;

void initgame() ;

void generatefood() ;

int knocksankebody(int yx) ;

void move(short dx, short dy) ;

void pausegame() ;

void listenkey(int *dx, int *dy) ;

void run() ;

/** *定義共同體 ,short x,y與int p占用同一位置

* 蛇的一小截的位置的結構體

* 系統採用小端方式儲存

* x是p的低位 ,y是p的高位

*/typedef

struct _position

; int yx ;

};struct _position *next ;

}position ;

/** *蛇的結構體

*/typedef

struct snake;

/** *定義全域性變數

*/snake snake ;

position *food ;

int score =0 ;

int isgameover ;

/** *主函式

*/int main()

return

0 ;}

/** *生成隨機數函式

*/short generaterandnumber(short a,short b)

/** *移動游標位置

*/void posconsolecursor(short x,short y)

/** *隱藏游標

*/void hideconsolecursoricon()

/** *初始化遊戲開始提示欄

*/void initstarthint()

/** *初始化提示

*/void inithint()

/** *初始化方框

*/void initframe()

for(i=0 ;i 2,frameheight-1);

printf("□") ;

}for(i=1 ;i 1 ;++i )

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

}/**

*初始化蛇

*/void initsnake()

p->next = null ;

snake.rear = p ;

}/**

* 初始化遊戲

* */

void initgame()

/** * 生成食物

*/void generatefood()

while(knocksankebody(yx)) ;

food = (position*)malloc(sizeof(position)) ;

food->yx = yx ;

food->next =null ;

posconsolecursor(food->x*2,food->y);

printf("●");

}/**

*判斷生成的隨機數是否在蛇的身體上

*/int knocksankebody(int yx)

p = p->next ;

}return flag ;

}/**

*暫停遊戲

*/void pausegame()

}/**

*蛇的移動

*/void move(short dx, short dy)

else

if(yx == food->yx)//是否吃到食物

else

p = p->next ;

}if(isgameover!=1)

}}/**

*監聽按鍵

*/void listenkey(int *dx ,int *dy)

return ;

}if(getasynckeystate(vk_down))

return ;

}if(getasynckeystate(vk_left))

return ;

}if(getasynckeystate(vk_right))

return ;

}if(getasynckeystate(vk_space))

}/**

*遊戲執行

C語言貪吃蛇

include include include include include include define screen width 40 遊戲螢幕寬度 define screen length 15 遊戲螢幕長度 define start x 16 螢幕起始x座標 define start y ...

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,蛇的轉向判定,一...