C 有乙個貪吃蛇的指標演算法問題

2024-12-25 07:40:16 字數 1093 閱讀 7679

1樓:雨中笨豬

第一次看到這個程式。

如有不對的地方,請指正。

while (temp !=

如果temp不是蛇頭的下乙個點。

將temp的x值設為temp上乙個點的x值。

temp-> = temp->before->;

將temp的y值設為temp上乙個點的y值temp-> = temp->before->;

將當前點作為上一點,下次迴圈使用。

temp = temp->before;

貪吃蛇是乙個不斷增加的連結串列,連結串列中每乙個點都需要隨著蛇頭不斷的更新位置,這個程式更新位置的方法是,蛇頭座標直接增加,而蛇身中的點下一點座標取上一點座標值,依次類推。

2樓:網友

額。。。好長。。。不是一下子能看完的。

c語言貪吃蛇轉向問題

3樓:緣明思

單連結串列,節點結構存body放位置座標x,y以及指向前乙個結構的指標*fount。

計時器time,鍵盤捕捉函式getkey(),隨機產生新身體newbody()。

程式開始->螢幕中心產生乙個「蛇」->得到按鍵命令後移動->計時器++time後,按照上次得到的按鍵命令方向移動->得到新按鍵命令轉向->得到新「身體」->撞牆(自身)結束遊戲。

產生蛇:螢幕確定地點選取三個位置,放置三個body,在第一次接收按鍵時確定」頭「座標(x0,y0)。

頭:*fount指向null的節點。

移動和轉向:確定座標(如直角座標系左上為(0,0),右下為(mx,my)),左=x-1,右=x+1,上=y-1,下=y+1。且所有按鍵均為有效方向按鍵。

身體移動:」頭「移動後,身體依次接替前一項。即,」頭「移動到」新頭「,」頭「的下乙個,移動到頭;再下乙個移動到上乙個,以此類推。

得到新「身體」:停止這一次計時器移動,並且把新「身體」當做「頭」。

撞牆:「頭」的座標中有乙個==邊界座標即為撞牆。

撞自身:「頭」的座標==「身體」中任意乙個節點的座標即為裝自身。

4樓:網友

獲取鍵盤事件,,,更改頭的下乙個位置x,和y 。。

有關指向指標的指標的問題,一個有關指向指標的指標的問題?

指標,全稱是指標變數,如 char pc pc是指標變數,我習慣上叫他指標 就因為這個叫法讓人迷惑了 char ppc ppc也是指標變數,我們習慣上稱它為指向指標的指標。這些習慣上的叫法,其實沒有真正體現它們的實際意義!我們來看定義 指標變數 定義 存放地址的變數稱為指標變數。指標變數是一種特殊的...

簡單的C 問題,一個簡單的C 問題

可以按浮點數讀入輸入,然後判斷小數點後面是不是有小數,比如 include using namespace std define alpha 0.000001int main void else cout please enter integer return 0 不過感覺有點tricky,有高見的...

c 的小問題,c 的一個小問題

這個,假設你的word 4 這時 word.size 4 那麼for迴圈這樣工作!j 0 i word.size 1 3temp word i temp d word i word j word i a word j temp word j d 這時j 1,i 2 temp word i temp ...