2015-04-03 60 views
0

即時嘗試使用匯編語言做一個蛇遊戲,並試圖開發一個循環體如何跟隨座標的頭。蛇遊戲大會:身體如何跟隨尾巴。

問題是可以說該行是12頭的山坳是40,然後我按下「d」的頭應該移動到左邊然後身體應該遵循,

如此動人之前,我如何複製變量行和列的值----> next_row和next_col, 我應該使用寄存器

+0

所有涉及加載和移動內存的操作都必須使用寄存器作爲中間步驟。沒有直接的內存到內存或內存到內存段的移動。在這裏你會想看看「inc/dec」(增量/減量)運算符,或者可能是「lea」(加載有效地址)。 'lea'允許在單個指令中指定地址和遞增/遞減。還有其他幾個功能可以掃描位等,但是它可以歸結爲某種類型的增量/減量。 – 2015-04-03 08:35:50

回答

1

有很多方法可以實現這一點,並且沒有關於它的特定彙編語言。

一個特別簡單的方法是不要將身體段想象成移動物體,而是將其視爲衰落的蹤跡。給每個單元格一個計數器,每增加一個計數器。

當蛇的頭部進入細胞時,將該細胞的計數器設置爲零。

當給定細胞的計數器大於蛇的長度時,清除該細胞。

如果你喜歡,你可以重載單元格的整數值來保存相當多的遊戲狀態。例如0 =空,1 =障礙物,... 128 =蛇頭。在這種情況下,您的滴答邏輯只會在數值> = 128時遞增。