超力技 アルゴリズム

作業時間 約 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     *

 *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *