C/C++ 编程代写
当前位置:以往案例 > >C语言程式案例 | 坦克戰遊戲案例 | Linux案例 |GNU案例
2020-08-31

C语言程式案例 這個項目的目標是用C 語言編寫一個坦克戰遊戲。目標是消滅所有敵方坦克,同時保護小鳥(蒂蒂)。該項目必須在GNU / Linux 環境下完成。僅通過控制台就可以完成顯示。

C语言程式 坦克戰遊戲


成果展示:
這個項目的目標是用C 語言編寫一個坦克戰遊戲。目標是消滅所有敵方坦克,同時保護小鳥(蒂蒂)。該項目必須在GNU / Linux 環境下完成。僅通過控制台就可以完成顯示。


在這個遊戲計劃中,我們可以看出:

黃色坦克,屬於玩家的坦克;
屬於敵人的白色坦克;
一隻小鳥(蒂蒂),被紅磚包圍。我們的任務是保護這隻鳥免受敵人的攻擊。
紅磚,易碎,很輕,可以輕易打破;
白磚,堅硬,可以打碎,但只能通過超級裝甲坦克射擊來擊碎。我們還可以看出三種不同的坦克類型:
C语言程式案例




普通坦克裝甲坦克超級裝甲坦克





您可以繪製自己的坦克模型(強烈推薦)。

該遊戲計劃上是通過一個.txt 文件來包含背景,為了減輕顯示負擔,遊戲窗口應該固定在屏幕上,以避免每次都重新加載。

請不要和實例中的重複,請自己設計背景地圖。請為遊戲添加聲音,使其更加舒適,例如:



背景音樂;
摧毀紅磚時發出聲音;
摧毀白磚時的聲音;
當敵方坦克被擊落時發出聲音;
其他


為此,您可以使用sox 庫並通過後台命令“play”啟動聲音,以免在遊戲過程中乾擾顯示。遊戲啟動時,玩家必須能夠在兩種模式種進行選擇:

簡單模式(Facile):將產生更少的坦克(例如15),坦克移動緩慢,射擊次數減少等。
困難模式(Difficile):將產生更多坦克(例如30輛),坦克快速前進,射擊更頻繁和更快,更多超級裝甲坦克等。
另外請添加至少一種額外的模式,這是本項目的重點。例如:道具模式(老家無敵,自身無敵,穿甲彈,散彈)

溜冰模式(全方向射擊,且會一直朝前前進,不停止) 雙人模式

等等。





技術方面
以下技術對應於之前實現的成果,您可以將它用於您的程序。



遊戲計劃從“.txt”文件加載,並在標準輸出上以傳統方式顯示。

每個坦克模型都在一個單獨的“.txt”文件中,並且必須在啟動時加載。

使用二維數組來存儲平面中每個對象的存在與否。以下是用於收集與坦克相關的所有信息的結構示例:



您可能需要其他結構,尤其是shell(包含多種類型的信息,例如:shell 的位置,方向甚至原點)。為了在菜單或者進程中進行選擇,您可以使用下列key_pressed()函數:



此功能允許您在不延遲顯示的情況下恢復用戶輸入的密鑰,因為該計劃必須是動態的。為此,您將需要以下附加庫:

signal.h, string.h, termios.h, unistd.h fcntl.h.



要在屏幕上顯示坦克/外殼,只需將終端上的光標移動到所需位置,然後使用printf 來顯示對應的圖畫Carrosserie。

為了更好的顯示,需要使用擴展的ASCII字符。您可以通過以下鏈接找到它們:http://www.theasciicode.com.ar/

您還可以在此鏈接中找到表情符號,以便更好地呈現您的遊戲:https://fr.piliapp.com/twitter-symbols/

只需單擊所需的符號,將其複制並將其粘貼到源文件中即可。如果符號在終端上無法正確顯示,則必須通過以下命令安裝軟件包“ttf-ancient-fonts”: sudo apt-get install ttf-ancient-fonts



對於那些想要擁有更複雜圖形的人來說,他們可以使用SDL,但是沒有必要為了獲得最高分而使用它。



其他實用信息

該項目必須在GNU / Linux環境下完成,並且必須在不遲於02/12/2018 23:55以存檔的形式存放在Moodle教育平台上。上傳形式為.zip 並且命名為姓_名.zip,包含所有項目源文件以及報告(PDF 形式)如果文件大小超過8M,請通過電子郵件向我發送下載鏈接liyiming0806@gmail.com ,未來的面試中,您將解釋每個部分採取的所有步驟,並特別強調遇到的困難和未解決的問題(如果有的話)。



您的計劃必須提供以下主題:

表格,指針和動態分配;
結構和鍊錶;
包含編譯命令的Makefile文件;
註釋,可讀和組織良好的代碼行;
一致的變量名稱選擇


評估將分為四個部分:

1.遊戲計劃的整體設計(坦克,外殼,裝飾等),遊戲的啟動和結束。

2.簡單模式的測試。

3.困難模式的測試。

pdf 中的報告必須謹慎,完整且詳細。

在线提交订单