Re: [問題] 想請教如何做出這樣的遊戲

看板GameDesign (遊戲設計)作者 (青艮)時間18年前 (2006/07/28 02:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串7/8 (看更多)
※ 引述《IAMTCH (新的挑戰)》之銘言: : 如題,因為本身想試著做遊戲,於是前陣子去詢問學校的老師, : 老師便給了我一個方向叫我試試看,但是我本身在這方面沒什麼 : 經驗,因此在這邊請教各位,謝謝。 : 遊戲內容: : 1.回合制尋寶遊戲:玩家和電腦各有同等數量的棋子n(n為遊戲開始時設定), : 每一回合中,雙方輪流用一個棋子移動一步。棋子位置由 : 遊戲開始後亂數放置於地圖之中。 以我那老舊的笨邏輯來想...... 先建立一個陣列,例如 { 0, 0, 0, 0, 0, 0, 各位觀眾!看~~6 x 6! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 噓 噓 噓 0, 0, 0, 0, 0, 0, 噓 噓 0, 0, 0, 0, 0, 0, 噓 噓 0, 0, 0, 0, 0, 0 } 我是這樣想的...... 0 代表的是零,沒有東西的位置。 然後再將寶物放進去,例如代表寶物的是 2, 然後就把上面陣列看是要幾個寶物隨機放進去,把原本的 0 變成 2 。 (至於要怎樣隨機...... 若12寶物 / (6*6) = 1/3 出現機率,看程式有啥隨機函式能用) 然後放棋子,怎麼放同上,只是要記得減機率的分母,至於要先放棋子再寶物隨您, 或甚至[棋子+寶物]放不放一個隨機,放哪種在一個隨機也都好 ╮( ̄﹏ ̄)╭ : 2.運作方式:在方格地圖中進行,地圖裡隱藏r個寶物(r為遊戲開始時設定), : 一個棋子只能拿一個寶物。因此遊戲的關鍵在於,當棋子 : 遇到同伴時(即在相臨方格接觸時)能夠交換資料,得知其 : 他寶物地點,然後讓身上沒寶物的棋子去爭取。 「...........」 現在才看到寫說隱藏r個寶物 @#$%^&* 喔,前面忘了說,棋子啊...... 看要怎樣定,我大概是玩家定 1,電腦定 -1 要移動時,是先選要動哪個,選定時以判定大於零...... 到這邊我後悔啦~~ 我希望玩家 定成 3 電腦定成 -3 ...... 不喜歡?咬我啊 ╮(╯▽╰)╭ 然後玩家選定時判定是否大於 2 (其實當初選判定是否等於 1 也是可以啦~~人真是善變的動物......|||) 是的話,就準備移動囉~~ 我大概會先準備讀入 4 個值備用,也就是選定棋子的上下左右座標的數值。 至於是哪個座標?也許您可以固定初始座標 ( x, y ),當往哪邊就加減 x 或 y 哪邊當原點就看個人囉,不過建議是四個角啦,這樣另一邊多遠也比較好算。6 x 6 嘛 然後移動時確認是可移動位置才給移動,例如加絕對值後小於 3 (有絕對值這功能吧?) (此時...... 想起有人說過乘除是蠻耗時間的東西...... (心虛)喔,再說啦) 此時!我又後悔啦 XDDDDD 我希望~~空地座標的值是 1 (囧rz) 然後~~移動過去是將目標座標的值 *= 移動的物件 例如 移動的玩家棋子為 3,目標空地值是 1,移過去後 1 *= 3,所以就變 3 囉; 但若 移動的玩家棋子為 3,目標寶物值是 2,移過去後 2 *= 3,所以是變 6 的。 這下您可以了解我方才所下的伏筆了吧 (謎之聲:真爛的方法) 囧rz 而電腦是 -3,所以都是負的...... 至於這邏輯好不好...... 亂想的,天知道 囧 而離開的原地,通通就都放空地 1 囉~~ 至於您說的交換資料?! 這方面就同前面回文,我是假設不存在的啦 (懶) 如是假設可轉東西...... ( a 把寶物轉到 b 上), 那就 b = a,a = 3 囉 (反正玩家就是 3 嘛) (←不過要寫電腦就要改囉) 不過我可能會把轉東西不列為[一步],為什麼?單純覺得這樣應該比較好寫吧... ||| 好像這部份就完了...... 嗯,換下部份。 : 3.勝利條件:一方先取得過半的寶物數量即獲勝。 : 不限製作語言,不過老師是提議我用Visual C++,但我本身比較熟flash(但也 : 不到做遊戲的水準),因此希望各位高手能夠建議我,這樣的遊戲該怎麼學習製 : 作比較好,謝謝。 勝利條件嘛~~就一個個座標判斷大於 5 (或等於 6) 的有幾個,有沒有過半囉 判斷就設在每次動作結束時呼叫的函式,用迴圈從頭掃到尾 裡面用 if 或啥類似的判斷說玩家有寶物的就哪個值++,電腦有寶物就另個值++ 當哪個值達一半則宣佈哪邊贏...... 就這樣,ptt的歷史又翻過了一頁。 函式名稱 () { float player = 0 ; // 這只是宣告兩個存數量的 float com = 0 ; if ( 寶物數%2 != 0 ) // 判斷奇偶數 { 寶物數++ ; } for ( int x = 0, x++, x <= 陣列的寬 ) { for ( int y =0, y++, y <= 陣列的高) { if ( 陣列名稱[x][y] == 6 ) // 這是計算擁有寶物的 { player++ ; } else if ( 陣列名稱[x][y] == -6 ) { com++ ; } if ( player >= 寶物數/2) // 這是判斷勝利 { 啥結束遊戲的函式 ; cout << "玩家獲勝" << endl ; } else if ( com >= 寶物數/2) { 啥結束遊戲的函式 ; cout << "電腦獲勝" << endl ; } } } } (檢查寶物奇偶數 跟 判斷勝利 可獨立出來再寫成個函式) 至於要不要分檔案寫或是用啥 x.判斷勝利 跟 y.判斷勝利...... 還是那句:再說吧...... ||| ps: 那些啥數值、邏輯的僅供參考...... 不喜歡千萬別勉強,好記好用較重要。 -- 之所以寫這些有的沒的, 純粹因為自己過去沒用功寫個自我彌補 囧 反正我現在的程度剛好跟新手差不多, 寫起來應該也剛好適合新手吧 Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.141.141

07/28 13:34, , 1F
謝囉 我會仔細想想的^^
07/28 13:34, 1F
文章代碼(AID): #14oG5UF6 (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #14oG5UF6 (GameDesign)