国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言小項目——小游戲貪吃蛇的實現(xiàn)

這篇具有很好參考價值的文章主要介紹了C語言小項目——小游戲貪吃蛇的實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?一、Win32API處理控制臺界面

?1.設(shè)置控制臺界面大小以及控制臺標題

我們可以使用mode命令來設(shè)置控制臺的大小,使用title命令來設(shè)置控制臺標題。在C語言中調(diào)用庫函數(shù)system來使用這些作用于控制臺的命令。使用代碼如下:C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言

采用該命令后控制臺界面大概如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

2.定位光標位置以及隱藏光標

控制臺坐標系以控制臺左上角為原點從上往下y軸坐標增大,從左往右x軸坐標增大。GOORD是一個結(jié)構(gòu)體表示一個字符在控制臺的坐標。GetStdHandle是?個WindowsAPI函數(shù)。它?于從?個特定的標準設(shè)備(標準輸?、標準輸出或標準錯誤)中取得?個句柄(?來標識不同設(shè)備的數(shù)值),使?這個句柄可以操作設(shè)備。GetConsoleCursorInfo檢索有關(guān)指定控制臺屏幕緩沖區(qū)的光標??和可?性的信息。那么我們可以將定位光標坐標封裝為一個函數(shù) 如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言
?

?二、蛇身的定義以及維護

?1.蛇身的定義

我們采用鏈表來定義蛇,可以使用一個結(jié)構(gòu)體定義蛇身一個節(jié)點的x坐標以及y坐標,使用鏈表鏈接。具體如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言

2.蛇的維護

同樣利用結(jié)構(gòu)體,定義出蛇頭的位置,食物的位置以及蛇的運動方向,蛇本身的狀態(tài),蛇每次運動的休眠時長,每個食物的分值,玩家的得分。 其中蛇的運動方向以及本身的狀態(tài)可以通過枚舉變量的方法來定義。具體實現(xiàn)如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言

三、游戲的開始界面

1.打印歡迎界面

歡迎界面的打印主要在于將光標定在一個合適的位置,讓打印變得好看些,還有pause命令的使用,這點較為簡單不過多贅述。實現(xiàn)代碼如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

2.地圖的打印

為了降低代碼維護難度,我們可以在頭文件中定義墻的符號,蛇身的符號以及代表食物的符號。如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

首先要使用setlocale將C語言環(huán)境改為本地環(huán)境,支持打印寬字符。然后將符號打印為寬字符。具體打印過程如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

3.初始化蛇

為降低代碼維護難度我們將第一個節(jié)點的坐標定義在頭文件:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

然后采用鏈表的頭插的方法將每個節(jié)點鏈接在一起,然后打印出蛇身,再將蛇的狀態(tài)設(shè)置好。

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

4.初始化食物位置

由于食物的位置是隨機的,所以食物的坐標可以使用rand函數(shù)來取隨機值,那么主函數(shù)要調(diào)用一次srand函數(shù):

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

然后為保證食物在地圖里面且能被蛇吃掉我們x坐標必須是二的倍數(shù)且取值范圍在2-54,y坐標在1-25。然后將食物打印出來:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言

5.幫助信息的打印

也就是游戲的操作問題,找一個合適的位置打印即可。

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

然后游戲的開始界面就實現(xiàn)完畢了:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

四、游戲的運行

?1.得分信息的打印以及蛇運動的方向

得分信息的打印跟上面幫助信息一樣,找個合適的時間打印即可,蛇的運動方向的改變我們可以使用do...while循環(huán)來實現(xiàn)。其中于我們的按鍵有關(guān),GetAsyncKeyState函數(shù)可以檢測按鍵,如果按了最低位為1否則為0,我們可以在頭文件定義一個宏來實現(xiàn)對按鍵的判斷。

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言

2.按下空格時的暫停

寫一個死循環(huán)讓它一直停止直到再次按下空格即可:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

3.蛇的運動

根據(jù)蛇的運動方向獲取蛇頭的下一個位置的坐標,然后如果下一個位置有食物的話蛇身變長,沒有食物將原來蛇的最后一個節(jié)點打印為空格,總長度不變。每走一步判斷一次蛇是否死亡。具體實現(xiàn)過程如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言

(1)下個位置有無食物的判斷及蛇身變化

下個位置是否是食物直接比較坐標即可,實現(xiàn)代碼如下:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言??

如果是食物的話就是吃食物,就是蛇身加長然后再次在地圖上更新一個食物:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

沒有食物就是繼續(xù)往下走,將原來蛇身最后一個節(jié)點打印為空格:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

(2)蛇是否死亡的判斷

蛇死亡有兩種情況:第一是撞墻死亡,還有就是蛇頭撞到蛇身的任一坐標。知道這兩點之后實現(xiàn)起來就很簡單:

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

五、游戲結(jié)束

游戲結(jié)束分三種情況:第一為正常結(jié)束,也就是玩家按下ESC鍵結(jié)束。第二種是撞到自己最后一種是撞到墻。結(jié)束后將蛇身的每個節(jié)點釋放了即可。

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

在寫完每個函數(shù)接口后,我們在主函數(shù)調(diào)用即可,為保證玩家能夠多次游玩,我們可以用一個循環(huán)來實現(xiàn),然后用getchar來接收玩家每次開始輸入的字符。

C語言小項目——小游戲貪吃蛇的實現(xiàn),c語言,開發(fā)語言?

到這里我們貪吃蛇的實現(xiàn)就完成了,也可以有更多別的功能待大家發(fā)掘。如果有問題可以評論哦,博主看到必回的。?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-859481.html

到了這里,關(guān)于C語言小項目——小游戲貪吃蛇的實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C語言-------實現(xiàn)貪吃蛇小游戲

    C語言-------實現(xiàn)貪吃蛇小游戲

    Windows 這個多作業(yè)系統(tǒng)除了協(xié)調(diào)應(yīng)用程序的執(zhí)行、分配內(nèi)存、管理資源之外, 它同時也是一個很大的服務(wù)中心,調(diào)用這個服務(wù)中心的各種服務(wù)(每一種服務(wù)就是一個函數(shù)),可以幫應(yīng)用程序達到開啟視窗、描繪圖形、使用周邊設(shè)備等目的,由于這些函數(shù)服務(wù)的對象是應(yīng)用程序

    2024年04月29日
    瀏覽(26)
  • C語言之實現(xiàn)貪吃蛇小游戲篇(2)

    目錄 ??測試游戲test.c ??游戲頭文件包含函數(shù)聲明snake.h ??游戲?qū)崿F(xiàn)snake.c 屏幕錄制 2023-12-02 204515 ? ?????最后感謝大家的閱讀,若有錯誤和不足,歡迎指正!乖乖敲代碼哦!? 代碼---------→【唐棣棣 (TSQXG) - Gitee.com】 聯(lián)系---------→【郵箱:2784139418@qq.com】

    2024年02月05日
    瀏覽(23)
  • C語言從零實現(xiàn)貪吃蛇小游戲

    C語言從零實現(xiàn)貪吃蛇小游戲

    制作不易,點贊關(guān)注一下唄?。?! 文章目錄 前言 一.? 技術(shù)要點 二、 WIN32API介紹 三、 貪吃蛇游戲設(shè)計與分析? ? ? ? ?1.游戲開始前的初始化 ? ? ? ? 2.游戲運行的邏輯? 總結(jié) 當我們掌握鏈表這樣的數(shù)據(jù)結(jié)構(gòu)之后,我們就可以用它來做一些小項目,比如童年小游戲貪吃蛇

    2024年02月20日
    瀏覽(26)
  • c語言及數(shù)據(jù)結(jié)構(gòu)實現(xiàn)簡單貪吃蛇小游戲

    c語言及數(shù)據(jù)結(jié)構(gòu)實現(xiàn)簡單貪吃蛇小游戲

    目錄 一·貪吃蛇簡單介紹: 二·貪吃蛇的實現(xiàn)的開始準備: 2.1:歡迎界面的實現(xiàn): 2.2地圖的繪制: 2.3.1初始化蛇: 2.3.2初始化食物:? 三·貪吃蛇的運行操作: 3.1輔助信息的打?。?3.2蛇的下一步移動操作: 3.2.1判斷玩家按鍵情況: 3.2.2下一步遇到食物: 3.2.3下一步不是食物:

    2024年04月27日
    瀏覽(21)
  • 【C語言小游戲】貪吃蛇

    【C語言小游戲】貪吃蛇

    ??使?C語?在Windows環(huán)境的控制臺中模擬實現(xiàn)經(jīng)典?游戲貪吃蛇 實現(xiàn)基本的功能: 貪吃蛇地圖繪制 蛇吃?物的功能 (上、下、左、右?向鍵控制蛇的動作) 蛇撞墻死亡 蛇撞??死亡 計算得分 蛇?加速、減速 暫停游戲 游戲指引頁面 游戲頁面 指針; 動態(tài)內(nèi)存; 結(jié)構(gòu)體;

    2024年01月19日
    瀏覽(24)
  • C語言——貪吃蛇小游戲

    C語言——貪吃蛇小游戲

    目錄 一、ncurse 1.1 為什么需要用ncurse: 1.2 ncurse的輸入輸出: 1.2.1 如何使用ncurse: 1.2.2 編譯ncurse的程序: 1.2.3 測試輸入一個按鍵ncurse的響應(yīng)速度: 1.3 ncurse上下左右鍵獲?。?1.3.1 如何查看宏定義的.h文件: 1.3.2 ncurse上下左右鍵獲?。?二、地圖規(guī)劃 2.1 地圖規(guī)劃算法顯示第一

    2024年02月07日
    瀏覽(24)
  • 項目實踐---貪吃蛇小游戲(下)

    項目實踐---貪吃蛇小游戲(下)

    對于貪吃蛇小游戲,最主要的還是主函數(shù)部分,這里就和大家一一列舉出來, 上一章已經(jīng)寫過頭文件了,這里就不多介紹了。 首先就是打印桌面,也就是背景,則對應(yīng)的代碼為: 然后就是打印墻體,在打印墻體之前,要先聲明一下類型,用 #define ,來定義。則對應(yīng)的代碼為:

    2024年04月28日
    瀏覽(18)
  • 小游戲:人生中寫的第一個小游戲——貪吃蛇(C語言)

    小游戲:人生中寫的第一個小游戲——貪吃蛇(C語言)

    ????????小編開了一個關(guān)于游戲的專欄,主要是運用easyx圖形庫進行的。 ? ? ? ?第一章:人生中寫的第一個小游戲——貪吃蛇(C語言) ????????這個游戲的代碼我在gitee上發(fā)布了,大家如果不嫌棄,可以進入這個網(wǎng)址進行查看和復(fù)制:https://gitee.com/rising-sun-1。 ? ? ?

    2024年02月09日
    瀏覽(32)
  • 游戲開發(fā)丨基于Pygame的AI版貪吃蛇小游戲

    游戲開發(fā)丨基于Pygame的AI版貪吃蛇小游戲

    本期內(nèi)容 基于pygame的AI版貪吃蛇小游戲 所需環(huán)境 python pycharm或anaconda pygame 下載地址 https://download.csdn.net/download/m0_68111267/88789665 本游戲使用Pygame模塊開發(fā),不需要玩家操縱貪吃蛇,貪吃蛇會自動吃掉屏幕上隨機出現(xiàn)的食物,每吃一個食物貪吃蛇長度增加一節(jié)。如果貪吃蛇撞到

    2024年02月20日
    瀏覽(29)
  • 【C語言】做一個貪吃蛇小游戲,完整代碼&附帶視頻演示

    【C語言】做一個貪吃蛇小游戲,完整代碼&附帶視頻演示

    視頻演示: https://www.bilibili.com/video/BV1pt421a7Nu/?spm_id_from=333.999.0.0vd_source=82b65865be0947de29bd55efc8cdb40a 編譯環(huán)境:linux(Vmware16.2.4 + Ubantu20.04.3); 小蛇??只能在固定的范圍內(nèi)活動; 可以利用鍵盤方向鍵控制小蛇??的前進方向; 活動范圍內(nèi)會隨機生成食物; 小蛇??吃到食物,身

    2024年02月21日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包