c語言精簡版貪吃蛇

2021-09-04 05:28:03 字數 1727 閱讀 4786

本大一菜鳥在上個月剛學完陣列,就迫不及待寫了經典的貪吃蛇。但畢竟能力不足,搗鼓一下午,寫了個四百多行、花裡花俏的版本,雖能執行,也是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檔案,讀取最高紀錄 ...