DATE: --/--/--(--)   CATEGORY: スポンサー広告
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
page top
DATE: 2017/09/19(火)   CATEGORY: 未分類
秘伝のタレからの脱却~探索用歩数マップ~Part2


前回の続きです。

① ゴール区画を任意の位置に複数で設定可能(4、9マスゴールにも対応可能)
について説明していこうと思います。

これを語るためには大前提として理解していてほしいことがあります。

歩数マップは複数個ゴールがあっても何も問題ない

ということです。


このことを理解してほしいので、以下に例を示します。
まず、簡単な例としてエクセルで簡単な歩数マップを作ってみます。

まずは,ゴールは(2,2)の1マスです。

1マス歩数マップ


THe普通。
この歩数マップをもとにマウスを走らせた場合、
マウスは中心に向かって走って行きますね。


では、この歩数マップをもとに等高線グラフを書いてみます。

1マス等高線


真ん中が低くなって外にいくにつれて高くなっているグラフになります。

この床面にボールを置いた場合、ボールは一番低い位置をめがけて転がっていきますね。


この例から、
歩数マップとマウスというのは
勾配のある床とボールの関係と同じであることがわかります。




では次にゴールを2個所に増やしてみます。
ゴール座標は(1,3)、(4,1)です。

2マスゴール


これからどうなっていくか考えてください。
歩数マップは目的地から隣接する区画に歩数を振っていきます。
つまり、こうなります。

2マスゴール歩数マップ


等高線グラフはこんな感じ。

2マス等高線

この等高線マップにボールを置いたらどうなるでしょう。
おそらくボールは、
(1,3)に近い方に置いた場合は(1,3)の穴に
(4,1)に近い方に置いた場合は(4,1)の穴に
転がっていくと思います。

ボールが上のように動くということは、マウスも同じ動きをすることがわかります。

ゴールが複数個ある場合、
マウスは複数個のゴールの中から一番近いゴールを目指して走ることが可能なわけです。


他の位置にゴールを移動したり,ゴールの数を増やしていっても同じです。


ここで考え方を変える必要がありますね。
ゴールは任意の1つではなく、
任意の位置に複数個置けるプログラムの内"たまたま"1個を指定しているのだと。

また、ゴールの位置個数はいくらでもよく、
ゴールの位置は離れていてもよいこと
が上の例からわかりました。


つまり、ゴール座標というのは#defineやconst変数ではなく
全区画の組み合わせを網羅できるように定義しておくべきだということです。


続く

スポンサーサイト

コメントの投稿

 管理者にだけ表示を許可する
Copyright © うむ夫の歩み. all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。