見出し画像

■将棋を作る(3) 持ち駒の表示、使用

進捗

 持ち駒を使う処理が概ねできました。持ち駒(歩)を盤上に置く際、打ち歩詰めのチェックは未実装です。詰みの判定ができたら、打ち歩詰めも自ずとできそう。
 デバッグする際、盤上や駒台から掴んだ駒をキャンセル(元の場所に戻す)するのが少し手間に感じたので、右クリックでキャンセルできるようにしました。

苦労した点

・持ち駒を掴む処理
 持ち駒は所持数の分だけ駒を重ねて表示するようにしました。持ち駒を1枚だけ表示し、その横に「×2」のように所持数を表示する方がプログラミング的に楽ですが、駒を重ねて表示した方が臨場感があるかと思って、そうしました。
 持ち駒を掴むには、駒台のどの駒を掴んだかを判別する必要があります。駒台に置かれた駒は飛車~歩まで2列に並べるように決めることで、どの駒を掴んだかを大体判別できるようにしました。ただ、駒が2枚以上重なるとその分クリックできる領域を変更しなければなりません。

持ち駒のクリック選択範囲の変化(1P側)

 持ち駒の表示をずらした分だけクリックできる範囲を変える処理をコーディングするのに結構時間が掛かりました…。上図は1Pですが、2Pは持ち駒の表示を上下左右反転させているため、座標の調整が更に苦戦しました。でもどうしても重ねて表示したかったので、仕方なし!

次にやる事

 詰みのチェック、それに関連して打ち歩詰めのチェック、王手のチェックを作っていきます。

この記事が気に入ったらサポートをしてみませんか?