c語言編寫遊戲貪吃蛇以及部分easyx函式的使用

2022-07-10 06:54:10 字數 1812 閱讀 4052

遊戲貪吃蛇的主要**可以分為三個部分:

繪製地圖、小蛇與食物

遊戲的初始化

小蛇的移動

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 遊...