C#飛行棋遊戲
C#小程式飛行棋,程式效果圖
1、設計分析
這個程式介面大致分為四部分:
① 最上面遊戲名字介面
②資訊提示區
③遊戲介面區
④遊戲操作提示區
2、分割槽設計實現
一、遊戲介面顯示區,由於只需要顯示出圖形即可,因此直接用Console.Writeline()輸出即可。
二、資訊提示區,此處用於顯示 遊戲對戰雙方的姓名等資訊,在遊戲開始時需要由使用者錄入對戰雙方的姓名資訊,因此可用Console.Readline()來讀取 使用者鍵入的值,<注:需要檢查驗證對戰雙方的姓名不可相同!>
三、遊戲介面區,此處用於顯示遊戲每一步的介面,可看出介面中有普通的方塊、關卡方塊以及遊戲對戰雙方。針對該操作介面需要多次繪製 ,因此可單獨寫成一個方法進行實現,對遊戲介面普通的方塊 出現的最多,因此可將地圖的繪製初始化為 陣列 ,並將其出初始化為普通方塊,此處可利用一個整形陣列來儲存座標的屬性,(例如:用0表示普通方塊,1表示幸運轉盤,2表示地雷,3表示暫停,4表示時空隧道,A、B分別表示對戰使用者)在繪製地圖時 再根據不同的數字繪製出相應的圖案,在使用者進行對戰重新繪製地圖時只需根據相應座標上的值 來繪製出地圖即可,遊戲介面繪製可分為 5部分 進行繪製,如下圖所示:
繪製第一部分和第五部分,可用常規的Console.Write()進行輸出,而第二部分則需繪製出前面的空格,第三部分由於是逆向繪製的,所以 在繪製時可採用迴圈從大座標到小座標遞減進行繪製。
四、遊戲操作提示區,此處用於提示使用者進行操作遊戲,只需輸出語句即可。
這個飛行棋小遊戲最難的部分便在於 繪製遊戲地圖,以及關卡操作上面。
繪製地圖:
1、 初始化地圖,在繪製時可先將地圖進行初始化,用陣列來儲存關卡的位置,然後利用迴圈給地圖中 關卡所在處賦予代表關卡的值。
關鍵程式碼如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Map[i] =0;
|
2、檢查座標的值,在將地圖進行初始化之後,便可開始進行繪製地圖的操作了,地圖繪製可使用 在程式設計時所講的分佈繪製,在繪製地圖時應檢驗該該座標點的值,在根據該點的值繪製相應的圖案,在檢查時根據值 返回相應的圖案 ,在利用迴圈繪製出即可,檢查座標的值程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
3、繪製地圖,在得到 返回的圖案後,便可進行地圖的繪製,這裡給出繪製第一行的程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
關卡操作:
1、分析設計
飛行棋的基本規則為二人輪流擲骰子,則此處為迴圈結構,然後根據投擲出的點數進行前進<注:在每一步前進之後均應該判斷是否走完了遊戲>,在遇到關卡時進行相應的操作,關卡有四種,每一種對應的操作不同,因此此處可運用switch-case 迴圈結構在每走一步操作後均進行判斷是否踩到關卡,在根據判斷的結果進行下一步操作,每一次操作完成後 ,重新繪製最新的地圖。
2、程式碼實現
一玩家擲骰子,二人輪流投擲,當有一人勝利時結束遊戲 。投擲骰子可用函式Random()產生隨機數實現,每前進一步後需要檢查遊戲是否勝利,方法如下 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
當遇到關卡時,根據關卡設定的性質進行操作,在遇到幸運轉盤時可供使用者進行選擇1:與對方交換 位置,2:轟炸對方,讓對方後退6格,此處需要讓使用者輸入1或者2,在讀取時需要對使用者鍵入的值進行檢驗,可用以下方法實現:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
當遇到關卡3暫停時,需要使用者在下一次該行動時暫停一次,此處可定義一個bool 型別的陣列來表示使用者是否應該在這一步暫停操作 ,下面給出使用者A投擲 的程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
|