C語言貪吃蛇小遊戲

2021-08-26 03:02:36 字數 3943 閱讀 7956

整個**都是c語言,其中呼叫少部分庫函式,不如實現螢幕座標列印的函式,貪吃蛇遊戲**的核心在於蛇身體座標的更新,實現細節請看**注釋,

//#include "stdafx.h"   如果是vc環境的話加上該標頭檔案 

#include#include #include #include #include #define turnup 1

//巨集定義蛇運動的四個方向

#define turndown 2

#define turnright 3

#define turnleft 4

#define maxrow 20

#define maxcol 30

void printsnake(int bodylen,coord bodypos);

void run (int bodylen,coord *body,int dirction,int times);

void initsnake (int bodylen,coord* body,coord head);

void createfood();

void printwall();

void printscore(int len);

void supervisekeybot(coord *body,int direction,int times);

void createfood1();

int len=5;

coord gfoodpos; //定義三個全域性變數,身體長度和兩種食物 座標

coord gfoodpos1; // coord為系統定義結構體,可實現螢幕座標表示

int main(int argc, char* argv)

; coord head=;

printwall();

initsnake (len,body,head);//根據head初始化蛇的身體

printsnake(len,body); //列印初始的蛇

createfood();

createfood1();

supervisekeybot(body,direction,10);

return0;}

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

函式名稱:printsnake

函式功能:列印蛇的身體

函式引數:bodylen --身體的長度

bodypos --蛇身體的座標

函式返回:

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

void printsnake(int bodylen,coord *bodypos)

} /*******************************************

函式名稱:changedirction

函式功能:實現蛇的轉彎,或者說蛇身體的更新

該函式為整個貪吃蛇的核心點,核心思想為以蛇頭座標為起點,

此程式將蛇頭座標定為body[len-1];

後面點的座標都取其前乙個點的的位置

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

void changedirction(int bodylen,coord *body,int dirction)

switch (dirction)

case turndown :

case turnright:

case turnleft :

default:

}//吃到食物的時候

if(body[p-1].x==gfoodpos.x

&&body[p-1].y==gfoodpos.y)

else

if(body[p-1].x==gfoodpos1.x //此處必須加else;不然有bug

&&body[p-1].y==gfoodpos1.y)

//邊界檢測

if(body[p-1].x==0||body[p-1].y==0||body[p-1].x==maxcol||body[p-1].y==maxrow)

for (int j=0;jif (body[p-1].x==body[p-j-2].x&&body[p-1].y==body[p-j-2].y)

}}/*******************************************

函式功能:

函式引數:

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

void run (int bodylen,coord *body,int dirction,int times)

}/*******************************************

函式功能:

函式引數:

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

void initsnake (int bodylen,coord* body,coord head)

}/*******************************************

函式功能:產生食物,呼叫rand函式隨機位置產生兩種食物

函式引數:

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

void createfood()

handle hout;

hout=getstdhandle(std_output_handle);

setconsolecursorposition(hout,gfoodpos);

printf("a\n");

}void createfood1()

handle hout;

hout=getstdhandle(std_output_handle);

setconsolecursorposition(hout,gfoodpos1);

printf("b\n");

}/*******************************************

函式功能:蛇身體的更新,呼叫system("cls")不能滿足要求

將座標點依次列印空格可實現「清屏」效果

函式引數:

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

} /*******************************************

函式功能:列印牆的邊界

函式引數:

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

void printwall()

putchar('\n');

}}/*******************************************

函式功能:檢測鍵盤的按鍵,實現蛇的實時控制

函式引數:

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

void supervisekeybot(coord *body,int direction,int times)

case

's':

case

'a':

case

'd':}}

}}/*******************************************

函式功能:將蛇的身體長度列印,作為分數

函式引數:

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

void printscore(int len)

c語言小遊戲 貪吃蛇

1 資料設計 遊戲地圖的寬和高,以及蛇的最大長度 食物在地圖上x和y上的顯示 蛇的長度,蛇得每一節的座標儲存,蛇的移動速度 蛇是否變化,蛇的初始移動方向 2 模組化設計 void drawmap 繪製遊戲地圖 void keydown 按鍵處理 voidcreatefood 產生食物 void go...

C 貪吃蛇小遊戲

自學了幾天c 嘗試寫了乙個貪吃蛇小遊戲,比較詳細地做了注釋,實現 1 貪吃蛇基本功能 2 長按加速 3 計分板 xaml 及介面 namespace 貪吃蛇 新食物生成 public void newfoodgenerate 計時器每乙個計時週期內的時間處理程式 void timer tick ob...

C 貪吃蛇小遊戲

1.有許多值得新手學習的地方 2.不看就吃虧了噢 3.如果沒有值得學習的地方,我就倒立洗頭!include include include include include 方向鍵的ascll值 上72,左75,右77,下80 背景顏色的 0 黑色 1藍色 2 綠色 3湖藍色 4紅色 5紫色 6黃色 ...