演算法參照perl字元貪吃蛇,原始碼:
#include #include#define width 12 //
寬#define height 8 //
高#define debug 0
const
char fence ='
*'; //
柵欄const
char head ='
@'; //
蛇頭const
char body ='
#'; //
蛇身const
char food ='
o'; //
食物const
char blank ='
'; //
空白char
arr[height][width];
struct
snakesnake[width*height]; //
結構體,儲存座標點
int len=0,food=0,key=0,score=0,alive=1,direct=4,speed=1,full=(width-2)*(height-2); //
長度、食物、按鍵、總分、存活、方向、速度
int uldr[5][2]=,,,,}; //
上、左、下、右
void init()
else
snake[
0].y=start_pos;
snake[
0].x=3
; len++;
snake[
1].y=start_pos;
snake[
1].x=2
; len++;
arr[ snake[
0].y ][ snake[0].x ] =head ;
arr[ snake[
1].y ][ snake[1].x ] =body ;
}void
show()
}void
make_food()
}}void
move()
//禁止反向移動
} len++; //
準備將當前位置放在snake陣列首部
if(debug)printf("
len:%d\n
",len);
for(cnt=len-1;cnt>0;cnt--)
snake[
0].y+=uldr[direct][0
]; snake[
0].x+=uldr[direct][1]; //
移動蛇頭
}void
check_head()
if( arr[y][x] == body )
if( arr[y][x] ==blank)
if( arr[y][x] == food )
if(debug)printf("
len:%d\n
",len);
if(debug)
}arr[ snake[len-1].y ][ snake[len-1].x ]=blank; //
先清除蛇尾顯示
len--;
for(cnt=1;cnt<=len-1;cnt++)
}void
main()
}if( len ==full)
else
}
字元遊戲 貪吃蛇
貪吃蛇遊戲的設計思路很簡單,相信有過一些程式設計經驗的同學都不至於束手無策,可在我剛剛接觸程式設計時,這個小小的貪吃蛇遊戲可是讓我費了不少腦筋,即使軟導老師已經把偽 告訴了我們,我還是花費了好大的功夫。話不多說,我們現在就開始吧,首先我們整理一下思路。首先列印地圖,然後用兩個一維陣列來表示蛇頭的座標...
字元遊戲 貪吃蛇
貪吃蛇是一款十分經典的遊戲。下面介紹一下字元版本貪吃蛇。偽 框架 輸出字元矩陣 while not 遊戲結束 do ch 等待輸入 case ch do a 左前進一步,break d 右前進一步,break w 上前進一步,break s 下前進一步,break end case 輸出字元矩陣 e...
Perl字元貪吃蛇
一時興起,想試試能不能用perl實現字元貪吃蛇,演算法如下 定義2個陣列 bg snake,bg用來顯示整個介面,snake從蛇頭開始儲存蛇的座標點。蛇每移動一次,新的座標點放到 snake頭部,並去除最後乙個元素,再改變 bg對應座標的值。通過控制台視窗不斷清屏再列印,使蛇 看起來在移動 簡單的速...