本大一菜鳥在上個月剛學完陣列,就迫不及待寫了經典的貪吃蛇。但畢竟能力不足,搗鼓一下午,寫了個四百多行、花裡花俏的版本,雖能執行,也是bug百出。最近閒來無事,便重寫了乙個「簡約」版(無邊界)的貪吃蛇,在此記錄。
#include
#include
#include
#include
void
gotoxy
(int x,
int y,
int c)
;//第三引數指明要列印的方塊型別,1為蛇身,大於1為食物,小於1為空白(清除尾部)
void
main
(void);
//陣列用來存放蛇身座標(遇到高手400肯定不夠用,應該更大)
console_cursor_info cursor_info =
;//隱藏游標,使畫面更整潔
setconsolecursorinfo
(getstdhandle
(std_output_handle)
,&cursor_info)
;srand
(time
(null))
;system
("color f0");
//白底黑字
gotoxy
(a[0][
0]=20
,a[0][
1]=10
,1);
//先把初始位置列印出來
while(1
) l++
;//來列印新食物,說明吃到食物了,長度+1
gotoxy
(x,y,l+1)
;//列印食物
while
(a[head][0
]!=x||a[head][1
]!=y)
//頭與食物座標不重疊
} a[head=
(head+1)
%400][
1]=(a[
(head+
399)
%400][
1]+(ch==72?
19:(ch==80?
1:0)
))%20
;//計算蛇頭座標//無邊界處理
a[ head ][0
]=(a[(head+
399)
%400][
0]+(ch==75?
116:
(ch==77?
2:0)
))%118
;gotoxy
(a[k][0
],a[k=
(head+
400-l)
%400][
1],0
);//清除尾部
gotoxy
(a[head][0
],a[head][1
],1)
;//列印蛇頭
a[k][0
]=0;
a[k][1
]=0;
for(k=
1;k)//撞到自己則結束 }}
}}void
gotoxy
(int x,
int y,
int c)
執行畫面:
C語言貪吃蛇
include include include include include include define screen width 40 遊戲螢幕寬度 define screen length 15 遊戲螢幕長度 define start x 16 螢幕起始x座標 define start y ...
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檔案,讀取最高紀錄 ...