字元版本貪吃蛇遊戲設計

2021-08-13 23:20:56 字數 2180 閱讀 6620

在前面的智慧型蛇遊戲中,我已經將我的全部**都貼出來了,大家也都看到了我的成果,雖然存在很多bug,但總算是有乙個初步的構架了,接下來,我要與大家分享一下這條蛇的艱難成長過程。

首先,當然是最順利的乙個部分啦,那就是除去最基本的影象列印了,這我想也不用多說,大家接觸到這個作業時,肯定噼里啪啦就打出了乙個大概的框架了,因此,在這裡我就一筆帶過了。

那麼,在順利地完成了框架後,我就開始膨脹了,極其順暢地敲完了移動的**,自信地一跑,結果蛇的身體竟然斷開了!而且蛇的行動也與我的設想大相徑庭,這就讓我覺得很難辦了。

最開始的移動**如下:

int i;

if(sx == 1)

if(snake_x[i] == snake_x[i+1])

else snake_x[i]++;

}for(i=4;i>=1;i--)

if(snake_x[i] == snake_x[i+1]) ;

else }}

if(sx == -1)

if(snake_y[i] == snake_y[i+1])

else

if(snake_y[i] > snake_y[i+1]) snake_y[i]--;

else snake_y[i]++;

}for(i=4;i>=0;i--)

if(snake_x[i] == snake_x[i+1]) ;

else }}

if(sy == -1)

if(snake_y[i] == snake_y[i+1])

else snake_y[i]++;

}for(i=4;i>0;i--)

map[snake_y[i]][snake_x[i]] = map[snake_y[i-1]][snake_x[i-1]];}}

if(sy == 1)

if(snake_y[i] == snake_y[i+1])

else

if (snake_y[i] < snake_y[i+1]) snake_y[i]++;

else snake_y[i]--;

}for(i=5;i>0;i--)

map[snake_y[i]][snake_x[i]] = map[snake_y[i-1]][snake_x[i-1]];

}}

打了這麼多**,結果卻出現了許多難以預料的bug,我的心情是崩潰的,在經過苦苦思索後,突然,我意識到了乙個問題,我上面的**很多部分都是無意義的重複(我是利用除了蛇頭以外,其他部分都沿著上一節的位置運動的),想通了這點,我立刻修改了我的**

這裡是修改後的**:

int i;

map[snake_y[0]][snake_x[0]] = ' ';

for(i = 0;i

<4;i++ )

if(sx == 0)

else snake_x[4] = snake_x[4] + sx;

map[snake_y[4]][snake_x[4]] = 'h';

打完這個,突然覺得之前的我好傻…..

既然是貪吃蛇,自然少不了其重要的一部分:吃東西啦,這部分**較為簡單,利用c庫帶的rand函式即可實現

**如下:

void put_money()}}

}

上面的是修改之後的**,由於我之前的**使用遞迴的方法,在生成幾個食物後,程式會自己崩潰,我便利用迴圈來達到生成食物的目的。

當然,還要相應地新增伸長的**:

if(map[snake_y[0]][snake_x[0]] == '$')
這樣,我們的第乙個模組就完成了。

利用我們的智慧型蛇程式,我們可以實現蛇自動行走,我們只控制方向,然而,這樣還是毫無難度,我們可以設計乙個**,使蛇越長,爬的越快,利用時間函式,可以很輕易地做到這一點。

**如下:

clock_t start,end;

start = time(null);

end = time(null);

while(end - start

< 4 / snake_index) end = time(null);

這樣就稍微增加了一點難度了。

這就是我的這個小遊戲的設計過程了,雖然很簡陋,但總的還是挺能吸引初學者的興趣的。

字元版本貪吃蛇遊戲設計及演算法

貪吃蛇,是一款經典的益智遊戲。我們可以通過演算法捕捉和傳遞智慧型,設計出能自動跑著吃食物的智慧型蛇。有不少人對此研究,設計出了很棒的演算法,如圖 歸納一些比較高階的演算法為三類 1.寬度優先搜尋最短路徑 2.走哈密頓迴路 3.特殊決策 這裡我主要介紹最簡單的貪婪演算法及整個遊戲的設計。首先是自動尋路...

字元遊戲 貪吃蛇

貪吃蛇遊戲的設計思路很簡單,相信有過一些程式設計經驗的同學都不至於束手無策,可在我剛剛接觸程式設計時,這個小小的貪吃蛇遊戲可是讓我費了不少腦筋,即使軟導老師已經把偽 告訴了我們,我還是花費了好大的功夫。話不多說,我們現在就開始吧,首先我們整理一下思路。首先列印地圖,然後用兩個一維陣列來表示蛇頭的座標...

字元遊戲 貪吃蛇

貪吃蛇是一款十分經典的遊戲。下面介紹一下字元版本貪吃蛇。偽 框架 輸出字元矩陣 while not 遊戲結束 do ch 等待輸入 case ch do a 左前進一步,break d 右前進一步,break w 上前進一步,break s 下前進一步,break end case 輸出字元矩陣 e...