一 貪吃蛇的製作

2021-10-19 14:47:28 字數 3108 閱讀 3503

對於貪吃蛇 很多人都不陌生 但作為學程式設計的學生 如何在學完c語言後寫出一款控制台貪吃蛇呢?

1首先,我們要明確要定義的標頭檔案

#include #include #include //windows程式設計標頭檔案

#include #include //控制台輸入輸出標頭檔案

#include

2其次,無論是遊戲還是什麼 ,首先要想清楚他的執行方法

對於貪吃蛇,分別有:

1 遊戲邊框的製作

2 蛇身體的表現

3 食物的隨機出現

4 對於食物是否吃到的判斷

話不多說 下面是我練習的** 在大部分地方做了注釋 (個人建議 莫要複製貼上 思維是最重要的)

#define snakesize 100//蛇的身體最大節數

#define mapwidth 118 //寬度

#define mapheight 29//高度

//食物的座標

struct food;

//蛇的相關屬性

struct snake;

//繪製遊戲邊框

void drawmap();

//隨機生成食物

void createfood();

//按鍵操作

void keydown();

//蛇的狀態

bool snakestatus();

//從控制台移動游標

void gotoxy(int x, int y);

int key = 72;//表示蛇移動的方向,72為按下「↑」所代表的數字

//用來判斷蛇是否吃掉了食物,這一步很重要,涉及到是否會有蛇身移動的效果以及蛇身增長的效果

int changeflag = 0;

int sorce = 0;//記錄玩家的得分

//將控制台游標移到(x,y)處

void gotoxy(int x, int y)

void drawmap()

//列印左右邊框

for (int i = 1; i < mapheight; i++)

//隨機生成初試食物

while (1)

//將游標移到食物的座標處列印食物

gotoxy(food.x, food.y);

printf("★");

//同上這個符號可以自行改變

//初始化蛇的屬性

snake.len = 3;

snake.speed = 200;

//在螢幕中間生成蛇頭

snake.x[0] = mapwidth / 2 + 1;//x座標為偶數

snake.y[0] = mapheight / 2;

//列印蛇頭

gotoxy(snake.x[0], snake.y[0]);

printf("⊙");

//生成初試的蛇身

for (int i = 1; i < snake.len; i++)

//列印完蛇身後將游標移到螢幕最上方,避免游標在蛇身處一直閃爍

gotoxy(mapwidth - 2, 0);

return;

}void keydown()

/* *蛇移動時候先擦去蛇尾的一節

*changeflag為0表明此時沒有吃到食物,因此每走一步就要擦除掉蛇尾,以此營造乙個移動的效果

*為1表明吃到了食物,就不需要擦除蛇尾,以此營造乙個蛇身增長的效果

*/ if (changeflag == 0)

//將蛇的每一節依次向前移動一節(蛇頭除外)

for (int i = snake.len - 1; i > 0; i--)

//蛇當前移動的方向不能和前一次的方向相反,比如蛇往左走的時候不能直接按右鍵往右走

//如果當前移動方向和前一次方向相反的話,把當前移動的方向改為前一次的方向

if (pre_key == 72 && key == 80)

key = 72;

if (pre_key == 80 && key == 72)

key = 80;

if (pre_key == 75 && key == 77)

key = 75;

if (pre_key == 77 && key == 75)

key = 77;

/***控制台按鍵所代表的數字

*「↑」:72

*「↓」:80

*「←」:75

*「→」:77

*/ //判斷蛇頭應該往哪個方向移動

switch (key)

//列印出蛇頭

gotoxy(snake.x[0], snake.y[0]);

printf("⊙");

gotoxy(mapwidth - 2, 0);

//由於目前沒有吃到食物,changflag值為0

changeflag = 0;

return;

}void createfood()

}//隨機生成的食物不能橫座標為奇數,也不能在蛇身,否則重新生成

if (flag && food.x % 2 == 0)

break;

} //繪製食物

gotoxy(food.x, food.y);

printf("★");

snake.len++;//吃到食物,蛇身長度加1

sorce += 10;//每個食物得10分

snake.speed -= 5;//隨著吃的食物越來越多,速度會越來越快

changeflag = 1;//很重要,因為吃到了食物,就不用再擦除蛇尾的那一節,以此來造成蛇身體增長的效果

} return;

}bool decide ()

return true;

}int main()

gotoxy(mapwidth / 2, mapheight / 2);

printf("game over!\n");

gotoxy(mapwidth / 2, mapheight / 2 + 1);

printf("本次遊戲得分為:%d\n", sorce);

sleep(5000);

return 0;

}

用 Python 製作乙個 貪吃蛇

今天呢,將分享乙個關於 遊戲製作的小案例 僅用不到 200 行 實現乙個貪吃蛇遊戲,作為 python遊戲 系列的第一篇文章,先看一下程式效果 關於程式具體實現部分,請看下文 工具庫程式中用到的 python 庫有 sys pygame time collection time random 其中核...

貪吃蛇遊戲

貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...

貪吃蛇(改進)

該程式分成3個檔案 第乙個檔案 fang.cs using system using system.collections.generic using system.text using system.windows.forms using system.drawing namespace snak...