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