用C C 實現較完整貪吃蛇遊戲

2021-08-07 06:29:09 字數 2566 閱讀 9041

記得在大一時剛學習c/c++語言,學到一半突然想用這門語言做一些小遊戲出來,首先想到的便是貪吃蛇。於是本人利用空餘時間寫出了這麼乙個簡單的小遊戲。

由於當時的我還沒有能力構造出使用者介面,故直接使用dos介面執行。那麼問題來了,如何讓乙個字元在dos介面上自由移動???對於這個問題我採用的解決方案是實現gotoxy函式來控制指標位置從而實現字元的移動。那麼我們就先來實現這個函式。

gotoxy 函式並非系統函式,我將其儲存於 gotoxy.h 的標頭檔案中方便呼叫。

gotoxy.h

#include void gotoxy(int x,int y) 

現在我們已經能夠利用 gotoxy 函式對指標進行控制,那麼實現字元的移動則只需將原來位置的字元清除,然後利用此函式移動指標到想去的座標後列印字元即可。

該遊戲的兩個難點都解決了,話不多說 ↓

(由於沒有涉及什麼演算法,加之年少,**顯得過於冗長)

這裡主要運用到的知識有這些:結構體,srand(), rand(), kbhit(), getch(), sleep().

/*******************

#include#include"gotoxy.h"

#include#include#includeusing namespace std;

char direction_a,direction_b; //方向a、b,用於方向的限制

int scores,num,fool_x,fool_y,speed=100; //得分、num用於蛇身起步、食物x座標、食物y座標

bool end; //結束標記

struct node //蛇身結點

*head=null,*p,*tail;

void init(); //初始化開始介面

void start(); //遊戲開始入場

void init_snake(); //初始化蛇身

void delete_snake(); //刪除蛇身

void control(); //方向控制

void move(); //蛇身移動

void limit(); //方向限制

void panduan(); //配合limit限制方向

void fool(); //食物的出現以及食物被吞

void isend(); //結束判斷

void zhuangwei(); //撞尾判斷

void zhuangqiang(); //撞牆判斷

int main ()

control();

fool();

sleep(speed);

if(kbhit()) //kbhit 非阻塞函式

panduan();

num=1;

zhuangqiang();

zhuangwei();

if(end) break;

} }while(direction_a=='y'||direction_a=='y');

return 0;

}void init()

void start()

gotoxy(1,2);

for(int i=0;i<=21;i++) }

void init_snake()

tail->next=null;

node *q=head->next;

gotoxy(head->x,head->y);

cout<

while(q!=null) }

void delete_snake()

}void move()

tail->next=null;

delete q;

}void control()

move();

}void limit()

void panduan()

void fool()

q=head;

while(q!=null)

q=q->next; }}

void isend()

void zhuangwei()

q=q->next; }}

void zhuangqiang()

效果圖:

由於考慮到遊戲的各種 bug 故自定義函式很多,有興趣的朋友可以自行改動一些函式對比效果。

JS實現的貪吃蛇遊戲完整例項

思想 1 設計蛇 屬性有寬 高 方向 狀態 有多少節 方法 顯示,跑 2 設計食物 屬性寬 高 3 顯示蛇 根據狀態向地圖裡加元素 4 蛇跑起來 下一節到前一節的位置,蛇頭根據方向變,刪除原來的蛇,新建蛇 當出界時,死亡,初始化 當蛇頭吃到自己的時候,死亡,初始化 5 食物被吃掉,蛇加一節,去掉原來...

用C 實現的貪吃蛇遊戲

我是乙個c 初學者,控制台實現了乙個貪吃蛇遊戲。下面貼上 貪吃蛇遊戲 v1.0 李國良於2016年12月29日編寫完成 include include include include include using namespace std int food 2 初始食物座標 int snake 10...

用C 實現的貪吃蛇遊戲

我是乙個c 初學者,控制台實現了乙個貪吃蛇遊戲。貪吃蛇遊戲 v1.0 李國良於2016年12月29日編寫完成 include include include include include using namespace std int food 2 初始食物座標 int snake 1000 2 ...