アーシの毎日インプット

毎日1つ以上学習する。学習した内容を公開する。を目標に自分のスキルアップを目指します。

桂馬飛びのマスを算出する

スポンサードリンク

今月から、迷路ブログの方では『<JS>桂馬飛び迷路』という迷路を公開しています。

【ルール説明】<JS>桂馬飛び迷路 - アーシの考える迷路

 

その迷路では、桂馬飛びのマスを算出して移動できるかを判定する処理を組み込んでいます。

 

桂馬飛びの移動先は以下の図のように8通りですので、

f:id:arshii:20190817060246p:plain

それぞれのマスが桂馬飛びで移動できるかを算出する式として、

調べたいマスのx+2=現在地のx かつ 調べたいマスのy+1が現在値のy
調べたいマスのx+2=現在地のx かつ 調べたいマスのy-1が現在値のy
調べたいマスのx+1=現在地のx かつ 調べたいマスのy+2が現在値のy
調べたいマスのx+1=現在地のx かつ 調べたいマスのy-2が現在値のy
調べたいマスのx-1=現在地のx かつ 調べたいマスのy+2が現在値のy
調べたいマスのx-1=現在地のx かつ 調べたいマスのy-2が現在値のy
調べたいマスのx-2=現在地のx かつ 調べたいマスのy+1が現在値のy
調べたいマスのx-2=現在地のx かつ 調べたいマスのy-1が現在値のy

の8種類が必要になりますが、それらを処理に組み込むのが面倒だったので、

数式を工夫したら次の2種類の式で表現することができました。

|調べたいマスのx-現在地のx|=1 かつ |調べたいマスのy-現在地のy|=2
|調べたいマスのx-現在地のx|=2 かつ |調べたいマスのy-現在地のy|=1

 

絶対値を使うことで計算式をかなり簡略化でき、プログラミングも簡単になりました。

 

 

 

 

 

そういえば、桂馬飛びといえば、過去に八方桂で遊んだのが楽しかったです。

arsinput.hatenablog.jp

arsinput.hatenablog.jp

【アーシの原点】

【頭を鍛える迷路集】


スポンサードリンク