将棋のコマの動きをデータにしてみた
将棋の盤は、9✕9=81個のマスで構成されています。将棋のコマは8種類あり、うち6種類は裏返して別の動きができるようになります。
今回はそんな将棋のコマの動きをTableauで可視化してみました。
では、将棋の動き方は可視化するには、どのようなデータを準備しなければならないのでしょうか。シンプルに考えると、14種類のコマごとに81マスのうち動ける範囲にフラグを立てれば良いので、14✕81=1134行のデータを作成すれば良さそうです。
しかし1134行のデータをイチから作成するのは手間がかかりそうです。なので今回はマスの縦と横でデータを分け、それを結合させることで簡易化してデータを作成しました。
<縦のデータ>
<横のデータ>
<Key列をKeyにしてテーブルを結合>

将棋のコマの動きを可視化してみた
マークを四角にし、列に縦、行に横を入れるとこんな感じになりました。

あとは五5を起点としたときに動ける範囲の色を変えればコマの動きを可視化することができます。
しかし、ここで問題が発生……!縦と横それぞれでフラグを立てれば良いと思っていたのですが、斜めを考慮できていませんでした。例えば、斜めの位置すべてに移動できる角で可動範囲を可視化すると以下のようになってしまいました。

データを準備するのは簡単になった一方で、こんな落とし穴があるとは……!なので今回は以下のような条件式をかくことで、対象外のコマを色塗り対象から外しました。

あとはダッシュボード上で、このシートと、コマを表示するシートを重ねて表示させることで以下のような表現ができました。コマを表示するシートは「浮動」にすることで上に重ねることができます。

まとめ
今回は将棋のコマの動き方をTableauで可視化してみました。データの作り方は難しいですね。
Tableau Public:https://public.tableau.com/views/DoyouknowJapaneseShogi/DoyouknowJapaneseShogi?:display_count=y&:origin=viz_share_link
「自分の得意な形に逃げない」ということを心がけている。
- 羽生善治 -
- 羽生善治 -
将棋の盤は、9✕9=81個のマスで構成されています。将棋のコマは8種類あり、うち6種類は裏返して別の動きができるようになります。
今回はそんな将棋のコマの動きをTableauで可視化してみました。
では、将棋の動き方は可視化するには、どのようなデータを準備しなければならないのでしょうか。シンプルに考えると、14種類のコマごとに81マスのうち動ける範囲にフラグを立てれば良いので、14✕81=1134行のデータを作成すれば良さそうです。
しかし1134行のデータをイチから作成するのは手間がかかりそうです。なので今回はマスの縦と横でデータを分け、それを結合させることで簡易化してデータを作成しました。
<縦のデータ>
| Key | 縦 | 駒 | 表浦 | 駒Key | フラグ |
| key歩兵 | 1 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 2 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 3 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 4 | 歩兵 | 表 | 歩 | 1 |
| key歩兵 | 5 | 歩兵 | 表 | 歩 | 1 |
| key歩兵 | 6 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 7 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 8 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 9 | 歩兵 | 表 | 歩 | 0 |
<横のデータ>
| Key | 横 | 駒 | 表浦 | 駒Key | フラグ |
| key歩兵 | 1 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 2 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 3 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 4 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 5 | 歩兵 | 表 | 歩 | 1 |
| key歩兵 | 6 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 7 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 8 | 歩兵 | 表 | 歩 | 0 |
| key歩兵 | 9 | 歩兵 | 表 | 歩 | 0 |
<Key列をKeyにしてテーブルを結合>

将棋のコマの動きを可視化してみた
マークを四角にし、列に縦、行に横を入れるとこんな感じになりました。

あとは五5を起点としたときに動ける範囲の色を変えればコマの動きを可視化することができます。
しかし、ここで問題が発生……!縦と横それぞれでフラグを立てれば良いと思っていたのですが、斜めを考慮できていませんでした。例えば、斜めの位置すべてに移動できる角で可動範囲を可視化すると以下のようになってしまいました。

データを準備するのは簡単になった一方で、こんな落とし穴があるとは……!なので今回は以下のような条件式をかくことで、対象外のコマを色塗り対象から外しました。
IF [駒]="桂馬" AND [縦]=5 AND [横]<>5 THEN false
ELSEIF [駒]="桂馬" AND [縦]<>5 AND [横]=5 THEN false
ELSEIF [駒]="銀将" AND [縦]=5 AND [横]<>5 THEN false
ELSEIF [駒]="銀将" AND [縦]=6 AND [横]=5 THEN false
ELSEIF ([駒]="金将" OR [駒]="成香" OR [駒]="成桂" OR [駒]="と金" OR [駒]="成銀")
AND [縦]=6 AND [横]<>5 THEN false
ELSEIF [駒]="角行" AND [縦]<>[横] THEN false
ELSEIF [駒]="飛車" AND [縦]<>5 and [横]<>5 THEN false
ELSEIF [駒]="龍馬" AND 3<[縦] AND [縦]<7 AND 3<[横] AND [横]<7 THEN true
ELSEIF [駒]="龍馬" AND [縦]<>[横] THEN false
ELSEIF [駒]="龍王" AND 3<[縦] AND [縦]<7 AND 3<[横] AND [横]<7 THEN true
ELSEIF [駒]="龍王" AND [縦]<>5 and [横]<>5 THEN false
ELSE
[フラグ]+[フラグ (縦)]>1
END

あとはダッシュボード上で、このシートと、コマを表示するシートを重ねて表示させることで以下のような表現ができました。コマを表示するシートは「浮動」にすることで上に重ねることができます。

まとめ
今回は将棋のコマの動き方をTableauで可視化してみました。データの作り方は難しいですね。
Tableau Public:https://public.tableau.com/views/DoyouknowJapaneseShogi/DoyouknowJapaneseShogi?:display_count=y&:origin=viz_share_link

コメント