超力技 アルゴリズム
作業時間 約 90分
ブログ>> http://revilog.com/ 本家だとプログラム貼りにくいのでこちらへ
最初の地点を1として、上下左右に歩いたら2 そこからさらに上下左右に歩いたら3
ただし、すでに歩いたところや最短経路は計算するという風に
とにかく歩きまくる。
もうそれ以上歩けなくなるまで歩く。
歩き終わったら、袋小路等を削除する
↑なくても大丈夫だったw でも、これやると見栄えが良い!
ゴールからスタートに向かって最短距離を歩く
ここ重要↑
以上
Cではできないとか、リストとかいわれたので、配列だけで組んでみる。
一部C++記法があるのは勘弁
つか、リストいらなくね?
メモリももう少し最適化できるし・・・
結果
データはコピペで入れられるを。
入力が終わったらCTRL+D リターン
縦横の最大は #define READMAX 50 を変えてくれ
************************** *S* * * * * * * ************* * * * * ************ * * * * ************** *********** * * ** *********************** * * G * * * *********** * * * * ******* * * * * * **************************
************************** *S* *$$$$$ * *$* *$ * $************* * *$*$$$* $$************ * *$$$ * $$$$$ * **************$*********** * $$$$$$$$$$$$$ * **$*********************** * $$$$$*$$$$$$$$$$$$$$G * * * $$$ *********** * * * * ******* * * * * * **************************
************************** *S * * ************* * * ************ * * * * * * * * * * G * * * * * * * * **************************
************************** *S$$$$$$$$$$$$$$$$$$$$$ * * ************* $ * * ************ $ * * $ * * $ * * $ * * $ * * G * * * * * * * * **************************
途中計算式
こんなかんじ。
ログでダラダラでるから、コメントアウトしたりして、みるとおもしろいぉ?
Minimum route * * * * * * * * * * * * * * * * * * * * * * * * * * * S * * b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e * * 2 * * a b * f 10 * * * * * * * * * * * * * 1e 1f * * 3 * 7 8 9 * 10 11 12 * * * * * * * * * * * * 1f * * 4 5 6 7 * 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f * * * * * * * * * * * * * * * 18 * * * * * * * * * * * * 25 24 23 22 21 20 1f 1e 1d 1c 1b 1a 19 1a 1b 1c 1d 1e 1f 20 21 * * * 26 * * * * * * * * * * * * * * * * * * * * * * * * 28 27 28 29 2a 2b * 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c G 42 * * 29 28 * 2a 2b 2c 2d 2e 2f * * * * * * * * * * * * 41 * * 29 2a 2b * 2d 2e 2f 30 31 32 33 34 * * * * * * * * 40 * * 2a 2b 2c 2d * 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f * * * * * * * * * * * * * * * * * * * * * * * * * * *