| 這個作業屬于哪個課程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
|---|---|
| 這個作業要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253 |
| 這個作業的目標 | 初步了解游戲的基本功能和交互設計。 |
| 學號 | 102202147 |
Github倉庫:https://github.com/Blueming92/Blueming92
test(1.py為本次作業代碼。
??一、游戲名稱:消除游戲
??二、游戲規則:
游戲目標:在限定的時間(TIME_LIMIT)內,通過點擊消除盡可能多的圖案來獲得高分。
圖案:游戲中有多種圖案(由TILE_TYPES常量定義),每種圖案對應一個圖像。
游戲區域:游戲區域是一個多層的網格,每個圖層上的圖案可以獨立操作。
選擇圖案:玩家通過鼠標點擊選擇圖案。每次點擊會將圖案添加到selected列表中,最多可以選擇兩個圖案。
圖案消除:當玩家選擇了兩個相同的圖案時,這兩個圖案會被消除(設置為-1),并且玩家獲得分數。
得分:每次成功消除圖案,玩家的得分(score)會增加。基本消除得分為10分,連續消除會額外獎勵5分。
??三、前端設計與特殊功能
1.界面設計
開始界面
顯示游戲標題和“開始游戲”按鈕。

結束界面:
顯示游戲結束信息、最終得分。

主界面
包含游戲區域、計分板、計時器和控制按鈕。

2.用戶交互
點擊操作:玩家通過點擊選擇和消除圖案。
實時反饋:圖案消除和得分更新提供即時反饋。
3.特色功能
多層圖案消除:游戲包含多個圖層,增加游戲的策略性和復雜性。
計分系統:基于消除的圖案數量和連續消除次數進行計分。
時間限制:增加游戲的挑戰性,要求玩家在限定時間內完成游戲。
4.特殊算法
圖案匹配算法:用于檢測并消除玩家選中的兩個相同圖案。
圖層管理:確保玩家只能與最頂層的圖案交互。
5.游戲運行后終端會顯示如下,反應圖案的正確匹配。

6.實現思路
初始化游戲環境:設置窗口大小、加載圖像和字體資源。
游戲循環:處理事件、更新游戲狀態、繪制界面。
事件處理:響應玩家的點擊事件,實現圖案選擇和消除。
圖案消除邏輯:檢查選中的圖案是否匹配,并更新游戲狀態。
計分和計時:根據玩家的操作更新得分和剩余時間。
游戲狀態管理:控制游戲的開始、進行和結束狀態。
??四、測試
簡單進行幾個消除動作,測試是否能夠正確計分。
測試部分代碼如下:

測試效果如下:

計分系統正常,可顯示
??五、AIGC表格任務
| 子任務 | 借助何種AIGC技術,實現了什么功能 | 效果如何 |
|---|---|---|
| 界面設計 | 任務按鈕 | 良好 |
| 圖案排列 | 隨機生成圖標順序 | 良好 |
| 倒計時 | 設置游戲的限定時長,并實時更新 | 良好 |
| 圖案消除 | 更新游戲界面 | 動作后無法更新,需調整 |
| 計分設置 | 設置得分邏輯,并實時更新 | 良好 |
??六、AIGC表格
| 項目名稱 | 項目描述 | 學到的內容 | 心得體會 |
|---|---|---|---|
| 消除游戲開發 | 使用Pygame庫開發一個消除游戲,包括游戲邏輯、界面設計和事件處理。 | - Pygame庫的基本使用 - 圖形用戶界面的設計 - 游戲邏輯的實現 - 事件驅動編程 |
通過這個項目,我了解到了游戲開發的基本原則和Pygame庫的強大功能。在實踐中,我學會了如何將游戲邏輯轉化為代碼,并且理解了用戶交互的重要性。 |
| 圖像處理 | 學習如何使用Python進行圖像處理,包括圖像加載、縮放和顯示。 | - Python圖像處理庫的使用 - 圖像的基本操作 - 圖像文件格式的理解 |
圖像處理是游戲開發中的一個重要部分。我學會了如何將圖像資源有效地整合到游戲中,這對我的項目視覺設計有很大幫助。 |
| 事件處理 | 學習如何在Pygame中處理用戶輸入和游戲事件。 | - 鼠標和鍵盤事件的處理 - 事件驅動的游戲邏輯 |
事件處理是游戲交互的核心。通過這個項目,我學會了如何響應用戶的操作,使游戲更加生動和響應靈敏。 |
| 計分系統 | 實現一個簡單的計分系統,記錄玩家在游戲中的表現。 | - 變量和數據結構的使用 - 基本的算法邏輯 |
計分系統讓我意識到了數據管理和游戲反饋的重要性。我學會了如何設計和實現一個直觀的計分板,以增強玩家的游戲體驗。 |
| 多層圖案邏輯 | 開發一個具有多層圖案的游戲邏輯,提高游戲的復雜度和策略性。 | - 多圖層管理 - 復雜的條件判斷和邏輯 |
這個挑戰讓我學會了如何組織和管理更復雜的游戲邏輯。我意識到了在游戲設計中考慮玩家策略和游戲平衡的重要性。 |
??七、PSP表格
| PSP | 預估耗時(min) | 實際耗時(min) |
|---|---|---|
| 需求分析 | 15 | 30 |
| 設計游戲規則 | 30 | 45 |
| 界面設計 | 40 | 35 |
| 圖層設計 | 40 | 45 |
| 優化 | 60 | 80 |
| 測試與調試 | 70 | 100 |
??八、個人作業評價
由于我是第一次接觸游戲開發任務,一開始對這個任務進行解讀花了不少時間。在這次的作業中,我有去嘗試使用AIGC技術為我寫一些代碼,但是技術可能還是有一些有限,有時候給出來的代碼跑起來有bug,需要對代碼進行更詳盡的分析,去發現到底是哪里有問題。
通過這次的作業,我初步了解了一個小游戲進行開發會經過什么樣的過程,有哪些地方需要特別注意,以后可以做得更好。
浙公網安備 33010602011771號