プログラム
自動将棋
この自動将棋は、ランダムにコンピュータが手を選び、自動的に対戦を進めます。
説明
このプログラムは、自動的に将棋の対戦を行うゲームです。ランダムにコンピュータが手を選び、その都度、自動的に対戦を進めます。
画面上には、8x8マスの将棋盤と、各マスに配置された駒が表示されます。ユーザーはクリックすることで自分の手を選択します。現在選択中のマスには、背景色が"pink"に設定されます。選んだマスを再度クリックすると、駒の移動が試みられます。移動不可能な場合は、何も起こりません。移動可能な場合は、該当する駒がその場所へ移動し、コンピュータの手番に移ります。
将棋のルールに応じた駒の移動を実装しました。具体的には、以下のようなルールに従います。
・歩:前進のみ。二歩はできない。成るときは、敵陣に到達したとき。
・飛車:水平または垂直のいずれかの方向に、空いているマスまで進む。途中に駒がある場合は、その駒を飛び越えることはできない。
・角:斜めのいずれかの方向に、空いているマスまで進む。途中に駒がある場合は、その駒を飛び越えることはできない。
・金:歩と同じ。ただし、成ることはできない。また、王手を受けることはできる。
・銀:斜め方向に1マス進むことができる。ただし、敵陣に入ることはできない。成ると馬になる。
・桂馬:「日」の字型に動く。進める方向に2つ進み、横に1つ進む。途中に駒がある場合は、飛び越えます。敵陣に入ることができない。成ることはできる。
・香車:飛車と同じ。ただし、進める方向に、敵駒がないときしか進めない。敵陣に入ることはできない。また、成ることはできる。
・王:一歩ずつ動く。素早すぎず、堂々と進み、縦横斜めに自由に動ける。王手をかけることはできない。
・玉:王と同じ。ただし、陣地が2マスしかないため、動ける範囲が王より狭くなっている。
また、駒が成るときのルールにも対応しています。具体的には、以下のようなルールに従います。
・歩→と金:成ると、右上に"と"と書かれた駒になる。金と同じ動き方ができる。
・歩→と香:敵陣に到達したときのみ、成ることができる。成ると、右上に"と"と書かれた駒になる。香車と同じ動き方ができる。
・歩→と桂馬:敵陣に到達したときのみ、成ることができる。成ると、右上に"と"と書かれた駒になる。桂馬と同じ動き方ができる。
・銀→成銀:成ると、右上に"成"と書かれた駒になる。斜め方向に前後に動ける。また、馬と同じように、斜めのいずれかの方向に2マス進むこともできる。
・香車→成香:敵陣に到達したときのみ、成ることができる。成ると、右上に"成"と書かれた駒になる。飛車と同じ動き方ができる。
・桂馬→成桂馬:敵陣に到達したときのみ、成ることができる。成ると、右上に"成"と書かれた駒になる。馬と同じ動き方ができる。
・飛車→竜王:成ると、右上に"竜"と書かれた駒になる。飛車と角の動き方ができる。この駒は、王手をかけることができる。
・角→竜馬:成ると、右上に"竜"と書かれた駒になる。角と香車の動き方ができる。この駒は、王手をかけることができる。
コンピュータの手番の直前に、駒の移動を選びます。現在の局面で、コンピュータが移動可能な駒がある場合、ランダムにその中から1つを選んで、移動します。移動可能な駒がない場合は、パスとします。パスの場合でも、盤面は更新されます。