零基礎教做貪吃蛇 (1)準備知識

2021-10-02 12:49:16 字數 2514 閱讀 2096

大家可以先大概看下這個圖,心裡大概有個底,這樣寫起程式來才不會無從下手。

通過上面這個圖,我們可以大致了解到,這次的東西並不怎麼複雜,主要難度都集中在蛇的移動上面。

大家剛學完c語言基礎的童鞋可能現在會有些懵逼了,怎麼才能在用c語言輸入能動的東西欸。以前都沒學過這種東西啊,,,毫無頭緒欸。。。

其實我們遇到的大多數的課設都會用到一些windows提供的api來幫助我們達到更好的效果。所以如大家所想,我們這次就用到了一些這種函式。。。(大家就把他們當成是c的普通函式使用就可以了。。)

下面我把這些函式整理出來,告訴大家怎麼使用的。。

c語言標準庫中沒有sleep這個函式,它實際上是乙個系統api函式。 sleep是一種函式,作用是延時。

說白了,就是乙個延時函式,括號裡面輸入的是int型變數,延時的單位是毫秒。

使用它之前,要在檔案頂部包含windows.**件。

這樣:

#include

使用樣例:

sleep

(500

)//就是休眠0.5s

這個函式我們在貪吃蛇中主要用於控制蛇的速度,,大家可以試試用for迴圈輸出乙個數,然後每次迴圈都sleep下,隨著sleep括號內的數值減少,輸出的東西就看上去越快,嘿嘿嘿。。system是乙個c語言和c++下的函式。windows作業系統下system () 函式詳解主要是在c語言中的應用,system函式需加標頭檔案後方可呼叫。

我們這個專案使用這個函式只幹一件事——清屏

和上乙個一樣需要匯入windows.h標頭檔案

system

("cls"

);//效果清屏

至於為啥子要清屏,嘿嘿,當然是把之前顯示的東西清理掉,實時更新畫面,達到「動態」的效果啦。。

getch()函式使用前也要匯入標頭檔案: conio.h。主要作用從控制台讀取乙個字元,但不顯示在螢幕上。emmm可以理解為getchar()的公升級版吧。。。

emm,,,我也不知道怎麼說他,,功能就是無條件跳轉。應該屬於c語言裡的語法,這裡提下,免主要是怕大家忘記了。

在遊戲中,食物是要隨機生成的,怎麼隨機生成嘞?其實有這樣的函式,我們只要呼叫就可以了。

我們使用的下面的模板:

記得包含下time.h的標頭檔案哦!

srand

(time

(null))

;//使用時間作為隨機的種子

food =

rand()

;//使用變數food接收

或許大家會有疑問,萬一rand()函式返回的值特別大什麼的,怎麼辦?我們可以使用取餘符號「%」來把它的隨機出來的值進行處理沒從卡在地圖內。這個後面寫到了再詳細解釋叭。。。

這個主要用於頂點輸出東西,從而實現視覺化的操作,它也是window.h裡面的函式,我們還是一樣套用模板就可以了。

handle hout;

//defining handle objects

coord cor;

//defining coordinate objects

hout =

getstdhandle

(std_output_handle)

;//get the handle of the output screen buffer

cor.x = y;

cor.y = x;

setconsolecursorposition

(hout, cor)

;//move cursor

其中,x,y是視窗中點的座標。

#include

#include

#include

#include

using

namespace std;

intmain()

return0;

}

效果圖:

大家看**可以發現,我沒有使用\n這種換行的**,也沒有在開頭空格,它就達到了這種效果。大家可以現在去試試。

關於準備知識就講到這裡,下一章會大致介紹下c語言的結構體的使用,以及怎麼自己寫.**件,之後就可以開始愉快的寫**啦~~

零基礎教做貪吃蛇 (4)剩餘函式講解

emmm,昨天沒有更新,這個嘛。還是因為stm32的原因,昨天弄它的串列埠通訊弄了一下午加半個晚上,再加上降溫了。手冷,昨天就沒寫。今天因為妹妹開網課了,我又給她把家裡以前的台式拼起來,所以耽誤的不少時間。好了,話不多說,我們來開始今天的主題,這是最後一章了,我會把剩餘的函式都講了它。大家看完後可以...

零基礎教做貪吃蛇 (3)部分函式講解

為啥子不按照順序先從initmap開始講嘞?因為initmap這個函式需要定點輸出,而且我之前說了,在這個專案中我不會使用 n 這種來輸出介面,所以我們採用定點輸出的方式,為了方便它的使用,當然是把它打包成乙個函式啦。這個函式沒啥子講的,只是死套模板罷了,只不過我們把x和y作為函式的輸入就可以了 v...

vb做的貪吃蛇

dim q as integer dim w as integer dim sq as integer dim sw as integer dim cq as integer dim cw as integer dim ss as long dim c as integer dim a as int...