C 實現貪吃蛇

2021-10-03 01:30:07 字數 1468 閱讀 8488

vs 2015 + easyx

蛇能上下左右移動

蛇能吃食物

能判斷蛇的死亡

蛇的長度,每節蛇的座標,蛇移動的方向;

蛇初始化,移動,改變方向,吃食物,畫蛇,蛇是否死亡

食物的座標,食物是否被吃掉;

初始化食物,新的食物,畫食物;

因為蛇吃食物時需要知道食物的座標,所以需要獲得食物座標的方法;

因為蛇吃食物後需要改變食物是否被吃的狀態,所以需要獲得食物座標的方法;

因為需要根據食物是否被吃來確定是否需要新食物,所以需要獲得食物狀態的方法;

首先應初始化蛇和食物,直接用建構函式初始化即可,然後在乙個死迴圈中完成遊戲邏輯,每乙個迴圈為乙個遊戲幀;

遊戲邏輯為:首先判斷是否有鍵盤按下,若有蛇改變方向,若沒有蛇按原方向運動,並繪製蛇和食物,然後執行蛇吃食物方法,此方法中若吃了食物則改變食物狀態,根據食物狀態判斷是否產生新的食物。

標頭檔案主要完成蛇和食物的定義

#ifndef _greedysnake_h

#define _greedysnake_h

#include #include #include #include //方向列舉

enum ch ;

//座標結構體

struct coor

;class food

;food::food()

void food::newfood()

coor food::getzb()

bool food::getiseat()

void food::setiseat(bool b)

void food::drawfood()

//蛇類

class snake

;snake::snake()

void snake::drawsnake()

}void snake::movesnake()

//蛇頭的移動與方向有關

switch (ch) }

void snake::changech()

}void snake::eatfood(food &food)//若想改變food的成員變數用引用

}//判斷遊戲結束

void snake::gameover()

//蛇頭與蛇身相撞

for (int i = n - 1; i > 0; i--) }

}#endif

原始檔主要執行的是遊戲幀

#include "greedysnake.h"

int main()

else

//檢測到按鍵

snake.changech();//改變方向

} return 0;

}

方向的列舉

enum ch ;
蛇的移動是將前一節的座標給後一節

檢測有無按鍵的函式

c 實現貪吃蛇

include include include include include include include include include word square color 7 義方向 define key up 72 define key down 80 define key left 75...

貪吃蛇 c 實現

週末無聊,嘗試寫了下貪吃蛇。先上 include include include include include includeusing namespace std define up 72 define down 80 define left 75 define right 77 struct ...

C實現貪吃蛇

include include include include define width 25 define high 15 int movedirection 1 2 3 4是小蛇的移動方向,分別表示上下左右 int canvas high width 二維陣列儲存遊戲畫布中對應的元素 0為空格,...