2012/05/04

Pawn move

まずはポーンから動きを実装していく。まずはというものの実際にはポーンがもっとも複雑な動きをする駒で実装も複雑。

1. 1つ前に進む。ただし、1つ前に敵味方関係なく他の駒があるときは進めない。ポーン以外の他の駒は敵の駒を取りつつ進めるがポーンだけは敵の駒を取るときの動きが異なる。

...
...
.P.
...
.P.
...

AddPawnMovesはあとで解説。

2. 最初の位置(白だと2列目、黒だと7列目)からだと2つ一度に進める。これはゲームの序盤で同じポーンを2手連続で前に進めることがよくあるので、ゲームの進行を早めるために導入された。したがって1つ前の駒を飛び越えれるわけではなく、1つ前と2つ前が共に開いていることが条件。

....P...
........
PPPP.PPP
RNBQKBNR

3. 斜め前に敵の駒があるときは、それを取って進むことができる。このときポーンの前に他の駒があっても構わない。

...
.pq
.P.
...
.pP
...

4. ポーンは最初の位置からだと2つ進めるけど、そのときに斜め前に敵のポーンがいたら2つ進む前に敵は取ることができるよねというわけで、その取り方をアンパッサンという。これはポーンが2つ前進した直後の手でしか有効ではないので最後の手を見て判断。

..p..
.....
PPPPP
QKBNR
.Pp..
.....
P.PPP
QKBNR
.....
.p...
P.PPP
QKBNR

Pawnは前にしか進めないので、盤の端に到達すると、そのままだと動けなくなってしまう。端まで到達したポーンは必ずポーンとキング以外の他の種類の駒つまり、ナイト、ルーク、ビショップ、クイーンにpromoteしないといけない。「必ず」というのはステールメイトが関わっていて、ポーンが動ける限りステールメイトにならないところが、端のポーンがpromoteしないとステールメイトになりやすくなってしまう。また、クイーン以外にpromoteするというのも、ごくごく稀にクイーンにpromteするとステールメイトという盤面がある程度。普通はpromoteはクイーンにと思ってもいい。

0 件のコメント:

コメントを投稿