看板 java 關於我們 聯絡資訊
先感謝大家的熱情分享 沒想到會有這麼多高手回應 我後來也有找出比較不會loop的版本 不過跟會追著PacMan跑的完美境界還有很大的距離 ^^" 我後來的作法是, 讓Ghost Random決定的要走方向 然後去檢查這個方向能不能走 不能走就重取Random. 不過這樣會有一個bug, 因為上下左右 才四各方向 random的值域太小 會出現ghost先往左邊走, 馬上走右邊 有倒退的感覺 覺得還是有點笨 所以在random值取完 我會先判斷 之前走的方向 跟這次走的方向是不是相反 (表示走回頭路) ex: random說要走右, 上一次走左 就要判斷上下還有左是否都不能走, 如果是 才確定走右 否則就要重取random 這樣就可以大大避免走前 又馬上往回走的窘境 也不會因為說不准走反方向而被困住.. 至少現在看起來 ghost像是自由的到處亂跑 :p 不過我又有一個很蠢的問題 這個單機版的PacMan裡面有三各class, class MyGameEngine implements GameEngineInterface class Ghost extends Thread public class Main 平常都用Netbean開發 但是現在反而不知道 如果要在Command Line執行 我先執行了: javac -classpath pacman.jar Main.java 會出現: Ghost.class MyGaneEngine.class Main.class 我試過打下面的command java Main.class 但卻出現這樣的error Msg: Exception in thread "main" java.lang.NoClassDefFoundError: Main/class 不知道是否有高手願意指點我這個笨蛋 感激不盡! ※ 引述《Lordaeron (Terry)》之銘言: : ※ 引述《Racci (Another Day...)》之銘言: : : As title, : : 先簡單介紹這個遊戲, 英文是叫做PacMan, 也就是大家俗稱的小精靈遊戲 : : 在迷宮裡, 有 : : 1. PacMan: 即User本身 : : 2. Jewel: 放在迷宮裡的寶物 : : 3. Ghost: 在迷宮裡四處移動的怪物, 如果PacMan碰到鬼, 就Game Over了.. : : 我已經做的差不多, 是StandAlone版.. : : 但是有一個很蠢的Bug.. : : Ghost移動時, 很容易跑一跑就陷入某各程度的loop, 不斷循環的跑某各區域 : : 先承認我現在做的路徑判斷很爛.. : : 大致就是 看現在的位置 上下左右 哪各可以走 就往哪邊走 : : 可能是因為上下左右判斷的順序一下 所以才會讓Ghost跑一跑就開始循環 : : 在網路上找過一些資料 : : 有些人是說, 必須要找出Ghost跟PacMan之間的最短路徑 : : 但是我一直不懂.. 所謂的最短路徑怎麼找出來 : : 舉例來說: : : ########## : : # # : : # p### # # : : # ## # # : : # ## # : : ##### # : : # g # ### : : # # ## # : : # # # # : : ########## : : 從Ghost怎麼直接找shortest path去抓PacMan? : : 在我的想法裡, 不是每走一步, 才知道接下來要走哪各位置嗎? : : 在上面的例子裡, PacMan在上方, 可是上面是牆, 只有左右可以走 : : Ghost怎麼知道要走左邊好 還是右邊比較好? : : 問題有點複雜, 謝謝大家看完 :) : 你該不會想古時候的電腦會使用ooxx search 來追吧? : 你有興趣可以拿台286 來跑看看, 保證你game 都不用玩了. : 更別說6502了. : 你有空去找個PACMAN來玩玩吧. : 看看它們的反應, 猜猜就好了. 千萬別想太多. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 75.7.19.19
willhunting:也許可考慮看看dynamic programming 10/14 07:42
TonyQ:java Main (不用.class ) 10/14 10:12
H45:給鬼一個方向,他就不會隨便回頭 10/14 14:07
teman:我覺得前面幾位大大有提到 不需要用到特別的最短路徑去算 10/14 19:17
teman:1.遊戲一下子就結束了 2.早期電腦運算不會想浪費太多效能 10/14 19:19
teman:我猜用以前玩的經驗 他只在交叉入口下不同機率就行了 10/14 19:21
teman:到後期人走過的路口的機率在隨機變高點 速度變快就容易死了 10/14 19:24
teman:不過還是要實際作過才知道... 10/14 19:26
Lordaeron:隨機和直線追合起來就好了. 隨機在遇到路口, 直線上有 10/15 00:37
Lordaeron:PacMan 就追, 路口遇到pacman 的方向追, 就這樣就好了 10/15 00:39
Racci:咦. 沒想到直線追合這個Idea, 感謝分享!! 10/15 12:22
Lordaeron:看來你是沒看推文的習慣 10/16 06:14
Jimmy0821:版眾好熱情XDDD 也提醒了不少,好久沒有寫遊戲了呀!XD 10/18 11:54