-2
我正在爲我的編程任務創建A *搜索方法。我的問題是,A *搜索方法應該找到最低成本的路徑,並始終找到目標狀態。但是,我的代碼並不能解決某些難題的問題。例如,對於拼圖:A *搜索未完成[8謎求解器]
*=====*
||103||
||426||
||758||
*=====*
達到要求的目標狀態,但對於更多的瓷磚格格不入一個謎。例如,對於難題:生產
*=====*
||104||
||326||
||758||
*=====*
以下錯誤:
Step: 3073
*=====*
||016||
||342||
||758||
*=====*
Exception in thread "main" java.lang.StackOverflowError
at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:680)
at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:579)
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:271)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207)
at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129)
at java.io.PrintStream.write(PrintStream.java:526)
at java.io.PrintStream.print(PrintStream.java:669)
at java.io.PrintStream.println(PrintStream.java:806)
我的代碼可以在這裏找到: http://pastebin.com/rwq3cTAq
請參閱http://stackoverflow.com/questions/4734108/what-is-the-maximum-depth-of-the-java-call-stack – irrelephant 2014-12-02 21:02:23
未提供Board類的代碼。 – 2014-12-02 21:06:46
請不要鏈接到外部資源,具體的代碼應該直接在這裏發佈。 – tnw 2014-12-02 21:16:56