c语言变长数组_2018级C语言大作业 - 祖玛
分享18級同學大一上學期用C語言實現的祖瑪。分步驟代碼、圖片音樂素材、可執行程序可從百度網盤下載:
鏈接:https://pan.baidu.com/s/1klPi-7s7a60dI71ddlOmYw
提取碼:8qr5
一.游戲介紹
游戲的主角是佩奇,佩奇會吐出各種顏色的珠子,環繞著石青蛙的是承載珠子的軌道,各種顏色的珠子沿著軌道往前滑動,佩奇必需遏止珠子滾進軌道終點的房頂。佩奇吐出的珠子與軌道上的珠子相結合,連續三顆顏色相同即可消失得分,當軌道上的所有珠子被消除干凈時即取得游戲的勝利。當珠子碰到房頂游戲失敗。
你可以:按下鼠標左鍵發射小球;按下鼠標右鍵更換小球顏色;按下ESC鍵暫停游戲;游戲結束后你也可以選擇再來一局或是退出。
二.設計思路
整個祖瑪游戲我們首先分為兩大部分,第一部分是素材,第二部分是功能。
1.素材里面分為四大部分:中間的佩奇,背景,小球、房子和音樂。小球共五種顏色,用EasyX實現。音樂分背景音樂、失敗音樂、成功音樂和吐球的音樂。
2.功能分為兩大部分:中間的佩奇的旋轉和小球的處理。
1) 中間的佩奇和即將吐出的球利用EasyX實現隨鼠標轉向。
2) 行進中的小球需要實現出洞、沿路線前進、進洞游戲失敗。首先利用數組實現球鏈的路徑,之后利用結構體和鏈表代替數組。實現時定好出洞和進洞的位置,路徑先定為簡單的矩形。
3) 利用鏈表實現小球的插入、消除和對速度的處理。
三.分步驟實現方法
1. 球鏈的路徑和顏色
球鏈的路徑定為矩形,第一步采用坐標位置改變實現,但由于想讓結束時小球速度為0,第二步采用坐標位置加速度實現球鏈移動。
實現顏色的第一步利用rand()%255,但顏色種類太多,而且會出現每個球每秒鐘顏色不一樣的情況。因此第二步定義一個數組儲存五種顏色,在初始化時給每個球隨機賦予不同的顏色。第三步使用srand(time(NULL));設置隨機種子數,使每次小球的顏色都不一樣。
2. 利用三角函數實現佩奇和即將要吐的小球隨鼠標旋轉
3. 背景
利用EasyX繪制畫面并放背景,采用HWND hwnd = GetHWnd();和SetWindowText(hwnd, "祖瑪小豬");獲取窗口句柄并設置窗口標題文字
4. 將數組變為鏈表,方便實現后面小球的插入與消除
第一步定義小球結構體。第二步定義新函數制作雙向鏈表,使每個數據結點中都有兩個指針,分別指向直接后繼和直接前驅,這樣從雙向鏈表中的任意一個結點開始,都可以很方便地訪問它的前驅結點和后繼結點。同時定義了首尾哨兵。
5. 吐球
利用鼠標交互左鍵發射小球、右鍵換小球顏色。并實現等吐出去的小球插入球鏈或超出畫面邊際后才能發射下一個小球。
6. 小球的插入及后續處理
定義函數,實現插入和更新鏈表長度。
后續處理時我們增加了幾項功能:讓插入的小球進入球鏈中,后面的小球位置依次后移;消除后前面的球鏈保持不動,等后面的球鏈跟進再一起前進。
7. 小球的消除
第一步判斷吐出去的小球和球鏈中小球的距離,小于一定值時分別向前查重、向后查重,判斷與它最近的小球的顏色是否與其相同,重復顏色的球大于等于三個時小球消除。第二步更新鏈表長度和分數。第三步重復上述步驟連環消球。
8. 開始界面、失敗界面、成功界面、暫停界面
第一步定義一個變量為游戲狀態(等于0為初始菜單界面,1為正常游戲,2為結束游戲狀態,3為游戲暫停,4為游戲失敗),初始化為0。第二步定義三個函數,分別利用settextcolor、settextstyle、outtextxy和鼠標交互實現界面互換。
9. 加入音樂
利用mciSendString加入音樂。
四.體會與總結
一開始選游戲內容的時候我們就想到了祖瑪,看著代碼一天天變長,功能一天天完善,真的很開心。從一開始球鏈的顏色閃來閃去,到最后背景音樂都可以配合著游戲進行,感到很開心,很有成就感,也學到了很多。
祖瑪主要應該用鏈表實現,而我們決定一開始先用數組實現一部分,等到后面再將數組變為鏈表,這樣以來實現球鏈的路徑就容易了許多。球鏈的顏色這部分也一樣,沒有用較復雜的結構體,而是運用了簡單的數組和rand實現。就像老師一開始就教我們用簡單的代碼做游戲一樣,簡單的函數也可以很好的實現強大的功能。做祖瑪游戲也讓我學會了PS,學會了摳圖和加遮罩層。學習是相通的,要善于聯想。
在編寫游戲的時候也遇到過一些困難,需要一步一步的慢慢去找錯誤,有時候改對了一個又會出現另一個,所以要耐下心,仔細的找,不能急功近利。
這次做游戲,讓我收獲了一個好的隊友,通過她我學到了許多知識,這次也讓我學會了獲取知識的許多途經,讓我知道要敢于嘗試,敢于去想象,要動手去做,要有目標,要用于實現。
總結
以上是生活随笔為你收集整理的c语言变长数组_2018级C语言大作业 - 祖玛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hbase 可视化工具_Hadoop工具
- 下一篇: bootstrap4 左侧导航栏 优秀