GameDesign 板


LINE

※ 引述《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
1F:推 IAMTCH:謝囉 我會仔細想想的^^ 07/28 13:34







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP