遊戲貪吃蛇的主要**可以分為三個部分:
繪製地圖、小蛇與食物
遊戲的初始化
小蛇的移動
void show()//繪製函式
} setfillcolor(rgb(0, 255, 0));//設定食物顏色為綠色
fillrectangle(food_j * block_size, food_i * block_size,
(food_j + 1) * block_size, (food_i + 1) * block_size);
if (isfailure)//判斷遊戲是否失敗
flushbatchdraw();
}
void fillrectangle(
int left,
int top,
int right,
int bottom
);
其中,left等分別表示矩形框的左側橫座標、上側縱座標、右側橫座標與下側縱座標。
void startup()//初始化函式
首先,我們需要通過遍歷blocks陣列以找出小蛇(陣列元素大於0,下文稱此部分為「小蛇陣列」)的位置,
並且確定蛇頭(小蛇陣列整體自加後數值為2,詳見**部分)、蛇尾(小蛇陣列中值最大的元素);
其次,根據使用者輸入確定新蛇頭的位置,如果蛇頭超過邊界或者蛇頭碰到蛇身,則判定失敗(isfailure);
如果蛇頭碰到食物,則重新整理食物位置,不處理蛇尾(相當於長度+1);
如果沒有碰到食物,則舊蛇尾變成空白。
**如下:
void movesnake()
if (blocks[i][j] == 2)
}int newhead_i = oldhead_i;
int newhead_j = oldhead_j;
//根據按鍵確定新蛇頭的位置
if (movedirection == 'w')
newhead_i = oldhead_i - 1;
else if (movedirection == 's')
newhead_i = oldhead_i + 1;
else if (movedirection == 'a')
newhead_j = oldhead_j - 1;
else if (movedirection == 'd')
newhead_j = oldhead_j + 1;
if (newhead_i >= height || newhead_j >= width || newhead_i < 0 || newhead_j < 0
|| blocks[newhead_i][newhead_j]>0)//判斷遊戲是否失敗
blocks[newhead_i][newhead_j] = 1;
if (newhead_i == food_i && newhead_j == food_j)//吃到食物
else
blocks[oldtail_i][oldtail_j] = 0;
}
在貪吃蛇遊戲中,使用者不進行輸入小蛇位置也會發生移動,因此我們需要分別寫與輸入有關的函式和與輸入無關的函式。
void withoutinput()//與輸入無關
}void withinput()//與輸入有關
}}
int main()
return 0;
}
C 編寫貪吃蛇遊戲 RedSnake
開發環境 microsoft visual studio net 2003 開發語言 c 開發者 red angelx 程式介面如圖一所示圖一 主介面左邊是遊戲區域,由乙個 picturebox 和lable 組成,picturebox 用來繪製遊戲介面,label 用來顯示遊戲是否執行。右邊是狀態...
C語言 貪吃蛇遊戲
相信每個人都接觸過貪吃蛇遊戲,而對於學習c語言的同學來說,一開始是不是覺得c語言寫不出什麼東西來呢?那麼,貪吃蛇應該是第一步,開始了解一些模組化的知識,一些物件導向的思想,一些小專案的編寫。效果 通過 wasd 移動蛇,蛇能夠吃隨機產生的食物,並且變長。基本實現 用兩個陣列snakex,snakey...
C語言 貪吃蛇遊戲
該遊戲不依賴tc環境,任何第三方庫,可以在vc 6.0 vs c free等常見ide中編譯通過。設計貪吃蛇遊戲的主要目的是讓大家夯實c語言基礎,訓練程式設計思維,培養解決問題的思路,領略多姿多彩的c語言。遊戲開始後,會在中間位置出現一條只有三個節點的貪吃蛇,並隨機出現乙個食物,如下圖所示 圖1 遊...