首先,遊戲設計要遵循自頂向下,逐步求精的原則。所以我們要先寫出貪吃蛇遊戲的僞代碼。
輸出字符矩陣
WHILE not 遊戲結束 DO
ch=等待輸入
CASE ch DO
‘A’:左前進一步,break
‘D’:右前進一步,break
‘W’:上前進一步,break
‘S’:下前進一步,break
END CASE
輸出字符矩陣
END WHILE
輸出 Game Over!!!
得到僞代碼之後,我們再逐步完善各個模塊的函數。(以蛇移動的函數爲例)
void Move()
{
int i, x, y;
int t = sum;
x = Snake[0].x;
y = Snake[0].y;
GameMap[x][y] = '.';
Snake[0].x = Snake[0].x + dx[ Snake[0].now ];
Snake[0].y = Snake[0].y + dy[ Snake[0].now ];
if(sum == t) //蛇身移動
for(i = 1; i < sum; i++) //從蛇尾節點向前移動
{
if(i == 1) //尾節點設置爲空再移動
GameMap[ Snake[i].x ][ Snake[i].y ] = '.';
if(i == sum-1)
{
Snake[i].x = x;
Snake[i].y = y;
Snake[i].now = Snake[0].now;
}
else //其他蛇身走到前一個蛇身的位置
{
Snake[i].x = Snake[i+1].x;
Snake[i].y = Snake[i+1].y;
Snake[i].now = Snake[i+1].now;
}
GameMap[ Snake[i].x ][ Snake[i].y ] = 'X'; //移動後要置爲蛇身'X'
}
}