GitHub地址:https://github.com/HardenMVB/5.8
1.引言
1.1目的
為明確軟件需求、規划項目、確認進度、組織軟件開發並測試而撰寫本文檔。同時,詳細分析項目總體需求,可以作為軟件開發工作的基礎和依據以及確認測試和驗收的依據。
1.2背景
本次待開發的軟件為愛心24點微信小程序,由酸辣土豆絲團隊提出並開發。
1.3參考資料
1、鄒欣.構建之法[M].第三版.人民郵電出版社,2017
2.項目概述
2.1產品描述
本次項目旨在使用Python開發一個關於24點的微信小游戲,用戶可通過微信小程序的方式使用我們的游戲,類似於歡樂斗地主那樣的類型。用戶可以享受各式各樣的玩法,包括單機模式及聯機模式,闖關和競速模式,還可以獲得點幣等豐富獎勵。
2.2產品功能
本產品主要有以下功能,隨着版本更新,功能可能會有增刪。
- 單機模式:單人玩
- 對戰模式:可以創建房間,進行聯機對戰
- 用戶登陸后,即可查看做過的題目,以及平均做題時間
- 通過點幣,可以獲得更多道具,幫助用戶更好完成答題
2.3用戶場景
根據需求定義如下典型用戶與典型場景:
1.小明——學渣
名字 |
小明 |
性別、年齡 |
男、20 |
身份 |
大三學生 |
生活/工作情況 |
成績倒數 |
用戶偏好 |
打網絡游戲 |
典型場景 |
喜愛斗地主等各種手游 |
典型描述 |
沉迷不可自拔 |
2.阿餅——學霸
名字 |
阿餅 |
性別、年齡 |
男、21 |
身份 |
大三學生 |
生活/工作情況 |
成績優異,准備考研 |
用戶偏好 |
看書,泡圖書館 |
典型場景 |
休閑時喜歡玩益智類游戲 |
典型描述 |
泡圖書館里不學習,改做題了 |
3.阿珊——上班族
名字 |
阿珊 |
性別、年齡 |
女、22 |
身份 |
藍領 |
生活/工作情況 |
無車無房,有男朋友 |
用戶偏好 |
上網,炒股 |
典型場景 |
周末不開市無聊 |
典型描述 |
炒股多虧啊,還不如玩24點 |
2.4一般約束
1.開發環境約束:
- 開發工具:pygame
- 開發語言:HTML5+Python
- 開發測試瀏覽器:Google chrome
2.時間約束:開發周期短,對於剛成立的團隊和生疏的操作還需要磨合。
3.技術約束:團隊成員在相關技術水平方面存在一定的欠缺,缺乏相關的項目經驗,需要在開發中並發學習多種技術和能力。
4.其它約束:開發期間,團隊成員還有別的學習任務,對項目進度造成一定程度上的影響。
2.5假設與依據
本項目是否能夠成功實施,主要取決於以下的條件:
- 團隊成員的積極合作配合,為了項目的開發和實施,對個人時間進行合理規划同時為團隊做出合理犧牲,配合隊友完成任務
- 開發過程中遇到的技術問題可以及時得到同學或者老師的指導和幫助
3.具體需求
3.1 UML圖
24點游戲用例圖:
用例圖說明:
LogIn:當玩家(player)進入游戲,登記注冊信息,控制器(Controller)控制游戲進行初始化,包括更新玩家數據,游戲數據,並提示計數器(Calculator)計數等,然后向玩家返回開始游戲信息。
Play Game:玩家進入游戲,並根據游戲提示進行相關操作,然后根據玩家本次的得分情況以及游戲的累積分數分析結果,獲得玩家下一步的操作,每當游戲結束,Calculator要向玩家返回玩家的分數,並顯示排名更新情況。
Quit Game:玩家選擇退出游戲,Controller查看玩家信息,更新玩家信息,並提示Calculator計數器計算該玩家的分數及數據。
類之間的關系:
類關系圖說明:
Player類:
屬性:用戶ID;總分數TotalScore;本次分數CurrentScore;當前玩家數:ComputerNumber;排名:Ranking
方法:登錄游戲LogGame,玩游戲PlayGame,退出游戲QuitGame
Computer類:
屬性:當前游戲人數:ComputerNumber
方法:數量更新:update
Controller類:
屬性:當前玩家CurrentPlayer;題目數量:LevelsNumber;當前玩家數:ComputerNumber
答對題目數:passNumber
方法:初始化Init,新玩家addPlay,退出玩家delPlay,玩家信息更新update
Calculator類:
屬性:當前玩家CurrentPlayer;玩家分數PlayScore;當前玩家數:ComputerNumber
排名:Ranking
方法:獲取分數GetScore,計算分數CalculatorScore,裁判judge,更新數據update
玩家登陸活動圖
游戲過程活動圖
游戲結束活動圖
游戲控制類狀態圖:
游戲排行榜狀態圖
玩家登錄時序圖
游戲過程時序圖
玩家退出時序圖
3.2功能需求
(1)游戲首頁
- 單機模式
- 聯機對戰主頁
- 對戰頁面
- 創建房間頁面
3.3外部接口需求
3.3.1用戶接口
無特殊需求。
3.3.2硬件接口
手機系統需要Android 7.0及以上
3.3.3軟件接口
無特殊需求。
3.3.4通信接口
無特殊需求。
3.4屬性
3.4.1可用性
- 界面簡潔美觀,點擊數字和下面的符號即可得到結果,操作簡單,無需手動輸入,沒有其他繁瑣的操作
- 用戶可與好友隨時隨地對戰
- 遇到瓶頸時系統可給出正確答案,對於答案不唯一的情況系統也可自行判斷
- 用戶獨自玩時可選擇單機模式獨自練習解題
3.4.2安全性
- 用戶的挑戰記錄將存於用戶的主頁中,便於用戶查看自己的挑戰記錄,不會丟失
3.4.3可維護性
- 使用Github進行源碼管理,便於維護與修復
4.驗證驗收表標准
4.1文檔驗收標准
文檔編寫符合國際文檔編寫規范
- 項目選題報告
- 軟件需求規格說明書
4.2軟件驗收標准
軟件一切功能正常,運行流暢、不卡頓、不閃退,適配於大部分Android手機。
4.3界面驗收標准
序號 |
界面名稱 |
界面描述 |
1 |
游戲首頁 |
標題欄:用戶名,愛心,簽到 側欄:充值,規則,反饋 中間:單機模式,聯機對戰,創建房間 |
2 |
單機模式頁面 |
上方四個數字 左側選擇符號 右側答題,提交和刪除 下方首頁和下一題 |
3 |
聯機對戰頁面 |
左側返回,用戶頭像,愛心,商店 中間新手場(愛心100-300,底分10) 中級場(愛心301-500,底分20) 高級場(愛心>500,底分30) |
4 |
對戰頁面 |
左上方返回 上方四個數字 四周分別為四位玩家的用戶名和頭像 中間顯示場次,答題框,選擇符號 左下方可以搶答,右下方是用戶自己的信息 |
5 |
創建房間頁面 |
上方返回 中間房間名和輸入房間號 下方創建和進入 |
4.4功能驗收標准
我們希望我們的小程序實現一下幾點:
1.對於游客身份,對游客的設置一些權限,游客不能創建房間且只能選擇“人機模式”。
2.用戶注冊時,需記錄用戶名以及密碼,並由系統隨機分配一個賬號給用戶,其中用戶名不能重復。系統將判斷用戶名是否已被使用。
3.創建房間時,系統限制進入房間的人數,最多為5人。
4.對於玩家的解題,系統通過四則運算判斷玩家的解題結果是否正確。
5.玩家每次答題結果系統需對其進行記錄並於玩家的個人主頁中顯示。
6.玩家的解題通過點擊模擬的卡牌,增加游戲的代入感。
7.解題時,輸入的運算符只能是+、-、*、/、(、)這六個,輸入的整數必須是程序隨機 產生的那四個數,而且每一個數只能用一次。當用戶正確輸入算式后,用“堆棧來求表達式的值”的原理,求出結果並判斷是否為 24,得出用戶是輸是贏的結果。輸出結果后,詢問用戶是否繼續,是則重新啟動程序,否則結束程序。
工作分配
陳燁權(隊長) | 戚景曉 | 盧凱欣 | 林志達 | 余力 | 李震明 | |
比例 | 15% | 22.5% | 22.5% | 15% | 15% | 10% |
選題報告——戚景曉
需求規格報告——余力,林志達
課堂展示——盧凱欣
評審表——李震明
錄制視頻——陳燁權