今月から、迷路ブログの方では『<JS>桂馬飛び迷路』という迷路を公開しています。
その迷路では、桂馬飛びのマスを算出して移動できるかを判定する処理を組み込んでいます。
桂馬飛びの移動先は以下の図のように8通りですので、
それぞれのマスが桂馬飛びで移動できるかを算出する式として、
調べたいマスの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
絶対値を使うことで計算式をかなり簡略化でき、プログラミングも簡単になりました。
そういえば、桂馬飛びといえば、過去に八方桂で遊んだのが楽しかったです。