# 大富翁 Document ## 完整版Demo影片 https://youtu.be/YnqnBqD97M4 ## 檔案樹 ``` . ├── CMakeLists.txt ├── Dice │ ├── Dice.cpp │ └── Dice.h ├── Handler │ ├── EventHandler │ │ ├── eventHandler.cpp │ │ ├── eventHandler.h │ │ └── eventHandlerGetterSetter.cpp │ └── MapHandler │ ├── mapHandler.cpp │ └── mapHandler.h ├── Hospital │ ├── Hospital.cpp │ └── Hospital.h ├── ItemCard │ ├── Base │ │ ├── ItemCard.cpp │ │ └── ItemCard.h │ ├── RoadblockCard │ │ └── RoadblockCard.h │ └── RocketCard │ └── RocketCard.h ├── Land │ ├── Land.cpp │ └── Land.h ├── Map │ ├── map.cpp │ └── map.h ├── MiniGames │ ├── DragonGate │ │ ├── DragonGate.cpp │ │ └── DragonGate.h │ └── HorseRacing │ ├── HorseRacing.cpp │ └── HorseRacing.h ├── MovePoint │ ├── MovePoint.cpp │ └── MovePoint.h ├── Player │ ├── Player.cpp │ └── Player.h ├── Resources │ ├── images │ │ ├── Chang.png │ │ ├── Chiang.png │ │ ├── Horses │ │ │ ├── horse1.png │ │ │ ├── horse2.png │ │ │ ├── horse3.png │ │ │ └── horse4.png │ │ ├── Tuan.png │ │ ├── Wu.png │ │ ├── building.png │ │ ├── card.png │ │ ├── cheat.png │ │ ├── cheat_1.png │ │ ├── grass_real.jpg │ │ ├── house.png │ │ ├── money.png │ │ ├── roadBlock.png │ │ └── shop │ │ ├── background.png │ │ ├── index0.png │ │ ├── index1.png │ │ ├── index2.png │ │ ├── index3.png │ │ └── index4.png │ ├── json │ │ ├── card.json │ │ ├── command.json │ │ ├── config.json │ │ ├── country.json │ │ └── event.json │ └── resourse.qrc ├── Shop │ ├── shop.cpp │ └── shop.h ├── StateDisplay │ ├── StateDisplay.cpp │ └── StateDisplay.h ├── UI │ ├── Bankruptcy_popUp.qml │ ├── BuyLand_popUp.qml │ ├── CardOpenBtn.qml │ ├── CardPopup.qml │ ├── CheatCommandLine.qml │ ├── CheatCommandOpenBtn.qml │ ├── Dice.qml │ ├── DragonGate.qml │ ├── EndPopUp.qml │ ├── HorseRacing.qml │ ├── Hospital_popup.qml │ ├── Main.qml │ ├── Message_popUp.qml │ ├── RefreshPopup.qml │ ├── ShopPopup.qml │ ├── StateContainer.qml │ ├── Turntable.qml │ ├── UpgradeOrSell_popUp.qml │ └── baseWidget │ ├── CostumBtn_Rec.qml │ └── Standard_Text.qml ├── UseCardSetting │ ├── UseCardSetting.cpp │ └── UseCardSetting.h ├── include │ └── nlohmann │ └── json.hpp ├── README.md └── main.cpp ``` ## 醫院 (Hospital)  `Hospital.h` `Hospital.cpp` 處理醫院入住 / 提早出院 等相關操作 `/UI/Hospital_popup.qml` 顯示醫院剩餘天數的Popup,可以選擇付錢提早出院,或者擲骰子免費提早出院 (點數 >= 8) ## 道具卡 (ItemCard)   ### 介紹 1. 路障卡 - 在指定地塊放置路障,阻擋玩家前進 2. 火箭卡 - 將指定玩家送入醫院N天(轉盤決定) 3. 隨機事件卡 - 觸發隨機事件 4. 控骰卡 - 控制骰子點數,指定前進格數 5. 拆除卡 - 拆出其他玩家之指定不動產 ### 檔案結構 `Base/ItemCard.cpp` `Base/ItemCard.h` 道具卡Class的基底Class `RoadblockCard/RoadblockCard.h` 路障卡的Class及使用 `RocketCard/RocketCard.h` 火箭卡的Class及使用 其餘的Code寫在`EventHandler.h` 及 `EventHandler.cpp`內 ## 小遊戲   ### 射龍門 (DragonGate) #### 遊戲規則 --- 系統抽出兩張牌(數字 1~13,不計花色),此時會有兩種情況 兩張數字不同 玩家猜下一張抽出的牌在兩張牌的開區間範圍內,還是不在開區間範圍內 如果抽出的牌被玩家猜對則贏得賭金,反之損失賭注 但如果抽出的牌數字與前面抽出的兩張牌相同(稱為撞柱),則損失兩倍賭注 情境一 : 兩張數字不同 抽到 3、9 範圍內 : 4、5、6、7、8 不在範圍內 : A(1)、2、10、J(11)、Q(12)、K(13) 撞柱 : 3、9 兩張數字相同 玩家猜下一張抽出的牌點數比這兩張的點數大還是小 如果抽出的牌被玩家猜對則贏得賭金,反之損失賭注 但如果抽出的牌數字與前面抽出的兩張牌相同(稱為撞柱),則損失三倍賭注 情境二 : 兩張數字相同 抽到 6、6 小於 : A(1)、2、3、4、5 大於 : 7、8、9、10、J(11)、Q(12)、K(13) 撞柱 : 6 #### 檔案結構 --- `DragonGate/DragonGate.h` `DragonGate/DragonGate.cpp` 處理遊戲基本邏輯,包含遊戲進入點、卡片猜測、輸贏判斷等 `/UI/DragonGate.qml` 射龍門遊戲UI ### 賭馬 (HorseRacing) #### 遊戲規則 --- 玩家設定賭注,並猜測贏家馬 #### 檔案結構 --- `HorseRacing/HorseRacing.h` `HorseRacing/HorseRacing.cpp` 處理遊戲基本邏輯,包含遊戲進入點、贏家猜測、輸贏判斷等 `/UI/DragonGate.qml` 賭馬遊戲UI ## 主畫面     ### main.qml #### 生成畫面與管理玩家移動動畫,以及包含多個彈出視窗與負責切換畫面的元件 ## 地圖處理   ### mapHandler.h、 mapHandler.cpp #### 初始化、同步eventHandler內的資料至主畫面 ## 移動動畫  ### MovePoint.h、MovePoint.cpp #### 根據骰子點數處理玩家的移動動畫 ## 卡片互動視窗 ### CardOpenBtn.qml、CardPopup.qml #### 開啟玩家使用卡片的視窗、顯示玩家擁有的各種卡片數量,並在可使用時可讓玩家開啟下拉式選單。 ## 卡片視窗初始化 ### UseCardSetting.h、UseCardSetting.cpp #### 初始化卡片視窗與設定細部卡片使用方式 ## 作弊指令視窗    ### CheatCommandOpenBtn.qml、CheatCommandLine.qml #### 開啟作弊指令彈窗、作弊指令輸入處 ## 骰子  ### Dice.qml #### 按下後開始動畫並持續一段時間,結束後顯示當前骰到的點數 ### Dice.cpp、Dice.h #### 進行亂數處理並將畫面回傳至Dice.qml中 ## 各類訊息視窗 ### EndPopUp.qml #### 結束視窗,可以選擇開始新遊戲或是結束遊戲 ### Message_popUp.qml #### 訊息視窗,顯示其他訊息 </br> ### StateContainer.qml #### 位於主畫面右上角,主要顯示當前回合玩家的訊息 </br> ### UpgradeOrSell_popUp.qml #### 玩家經過自己的地塊時會彈出,並可選擇升級或是賣出 ## 自製元件 ### CostumBtn_Rec.qml #### 自製的按鈕 </br> ### Standard_Text.qml #### 標準化的文字模板 ## 遊戲結束條件  #### 1. 其中一位玩家超過一百萬 #### 2. 只剩一位玩家存活(未破產或自殺) ## 彩蛋 `/refresh`有乖乖:) ## 評分總結 ### 68(基本)+40(進階)+10(自由)+15(其他)=133(理想分數)     ## 想不到吧Document也有彩蛋:) ``` .................................................................................................... .................................................................................................... .................................................................................................... .................................................................................................... ...............-====--::::::::::::::::::::.::.:............................:::----=................. ...............-++++================--=========---==-=-----====================+***................. ...............:====-------------------------------------:::::-----------------==++................. ................=+==---------==+++==--:::::::-------:::::::::::::--------------=++-................. .................-+=====---=***++++++=-=**=+++++**++==------=======-------======+:.................. ..................:==--===-*=--=*=-==*#%##++%#*%+@#**##**+==--==+*#%%@@%*+===--=:................... ..................:==---=+*#+-+=*+-++*::#+++*+=*--+=:................:=*%@%#=-=+.................... ..................:+=--=*%%*######*##=...................................-+=++++:................... ..................:+=+==+*-..=#####+.......................................-+*%*:................... ..................-+##=--...................................:=++=...........:*%@-................... ..................-*@%+-.............................:+**+=-++*+=-...........+%@+................... ..................-#@%+:..............................-*++==-++==-...........=%@*................... ..................-#@%=...............................::-=....::::...........=%@+................... ..................:*@%=..............................::::....................+%%:................... ..................:+%%+:..................::::..............................:*%*:................... ..................:++#+=.....:::::.........................................:=**+:................... ..................:+=++==..................................................-+*++.................... ..................:+=====..................................................:+**+.................... ...................+=+++:.......................................:::.........=**+.................... ...................+=+++:...............................::::...............:+*++.................... ...................+==+*:.......................::::.......................-+==+.................... ...................+===*+...............::::........................:.:...-==-=+:................... ...................=+=-+%=......::...........................:--+--::....==---=+.................... ...................==---=#*..........................:-+:.=::.........:=+-:--=++.................... ...................==-----+#+:.................-:---:--:::......:::-+*+-:::::=+*:................... ...................==--------+++=-:...............:*#%###%%%**+*++*=-::::::::-+*:................... ...................==-------------==*=...........*%##########%%#****--:::::::-=+:................... ...................===--=---------=*:..-########%%##***#########%#**=::::::::-=+:................... ...................+=------------=+:...:*%%%#==%%%###############*==--:::::::-=+.................... ..................:++=--------===--==+-..=%%%%%%##%#**#%%%########+--::::::::-=*.................... ..................:+===========-------=+#%%%%%%=:-*-=:.:==#%%%#####---:::::::=+*.................... ..................:+==========----====++=+%%%%%+:-:--..+:.=%%%%%###%=--=*-::-=++.................... ..................:+=============-:...=*+-+%%%%%::*+:::=-:+-:-#%%%%%###**+::-=++.................... ..................:+========++::+==:::.=*-:-#%**::++*-*#:.::-+%%%%%%%%##*=::-==+.................... ..................-+=======*=..:--:::...=+:....+#::----::-#%%%%%%%%%%%%=:::--==+.................... ..................-+======+*....:====...:*--:..=*=--::--+%%%%**%%%%#+------:-==+.................... ..................-+======+*-+=-++**+-===+---=+*=:---:-**++...-+========--::-==+.................... ..................-+=======*+--::-::-.-+=-------+++*+=+*==+-....------==---:-===.................... ..................-+=========+-......==---------*++*++++*=--=-::==----===--:--==.................... ..................:===========--===-------------=********+------------====----=-.................... ..................:+==========--------------====-=+*+-+**++=======----=====---=:.................... ..................:+==========-----------===++++++**+====**++++++++==========-=:.................... ..................:+======================+******+*+-========+++++==============:................... .................:++====================-==-=--=-=-:::-=-======================++=.................. ................-+++=================------=---------------=====--=============+++=................. ................+++++=================---=======================---===========++**=................. ................+**++==========================-==-===========================++**=................. ...........................................................................:.:::--:................. .................................................................................................... .................................................................................................... ....................................................................................................```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up