Pythonプログラミングで

チェスを作る

プログラミングの入門まで終わった方々に向けて、ターミナル・コマンドプロンプト上で作動するチェスのプログラミングを制作・解説します。使用言語は Python で、

  • フロー制御
  • 関数
  • リスト
  • 文字列操作
  • クラスとオブジェクト
  • 正規表現 (Stage 5~)
  • ファイルの読み書き (Stage 7~)

が前提知識になります。

またチェスのルールはもちろん、棋譜の書き方も覚えておいてください。

~~~~~~~~~~~~~~~

進んでいく中で

UNAVAILABLE

何だこの言葉?訳わかんねぇ

と感じたら、マウスをその言葉の上に当ててみてください。色が薄くなったら解説ページへジャンプできます。

UNAVAILABLE

スマホ・タブレットなど、小さい画面でご覧の方は色が薄くなっているリンクからジャンプできます。

UNAVAILABLE

MENU

Stage 1 プログラムの機能を考える

1-1 盤面の機能を考える

1-2 駒の機能を考える

1-3 運営の機能を考える

Stage 2 プログラムの土台を作る

2-1 ロガーを設定する

2-2 定数を設定する

2-3 インデックスが適正か判定する機能を設定する

2-4 文字を変換する機能を設定する

Stage 3 盤面のクラスの基本機能を作る

3-1 コンストラクタを作る

3-2 盤面を表示する

Stage 4 駒の動きを判定する

4-1 全ての駒で不可能な動きを除外する

4-2 ポーンの動きを判定する

4-3 ルーク・ナイト・ビショップ・クイーンの動きを判定する

4-4 キングの動きを判定する

4-5 駒を飛び越える動きを除外する

Stage 5 駒を動かす

5-1 動かせない場合を除外する

5-2 キャスリングの例外処理をする

5-3 アンパッサンの例外処理をする

5-4 プロモーションの例外処理をする

5-5 駒を動かす

5-6 パラメーター処理をする

Stage 6 勝敗を判定する

6-1 キングの位置を特定する

6-2 チェックの数を数える

6-3 チェックメイト・ステイルメイトを判定する

Stage 7 入力の棋譜を駒の動きに変換する

7-1 不要な文字を消去する

7-2 正規表現でふるいにかける

7-3 動かす駒を判定する

7-4 移動元のマスのヒントを整理する

7-5 移動先とプロモーションを特定する

7-6 移動元の候補を列挙する

7-7 移動元の候補を絞り込む

7-8 キャスリングの棋譜を処理する

7-9 勝敗の棋譜を処理する

Stage 8 ゲームを進行する

8-1 ゲームの初期設定をする

8-2 ゲームセットを判定する

8-3 駒の動きを入力する

8-4 ヘルプを処理する

8-5 リザインを処理する

8-6 盤上で駒を動かす

8-7 ゲームセットを処理する

Stage 9 ゲーム進行を記録する

9-1 記録ファイルの初期設定をする

9-2 棋譜から余計な文字を削除する

9-3 記録ファイルに棋譜を書き込む

9-4 ゲームで記録機能を運用する

Stage 10 記録からゲームを進める

10-1 記録ファイルを読み込む

10-2 棋譜の内容を解読する

10-3 1手戻る機能を実装する

10-4 棋譜からゲームを再現する機能を実装する

Stage 11 全体の機能を統括する

11-1 各種設定を変更させる

11-2 スタート画面を作る

Code

config.py

fundam.py

IO.py

board.py

playmode.py

readmode.py

main.py

print.py