将棋AI作成ノート(Python)

このページでは、初心者が「動くもの」を作ることをゴールに、 環境構築 → 実行 → AI対戦 → 改造 → 公開の順でまとめます。

  • 所要時間目安:30〜90分
  • 対象:Python初心者(コピペでOK)
  • 最終成果:ローカルで遊べる将棋+簡易AI(改造の入口)
目次

概要

最初の作品で将棋を作ろうと思った理由はシンプルで、 「AIを使えば誰でも作れる」と伝えたかったからです。 将棋はルールが複雑で、全部を自力実装するのは大変に見えますが、 AIに任せる範囲を切り分けると一気に前に進みます。

※ChatGPTは無料版でも可能です。Plusは「生成速度」「試行回数」「長文コードの安定性」が上がるので、 早く完成させたい人は検討する、くらいの位置付けがおすすめです。

環境構築

ステップ1:Pythonを入れる

Pythonをインストールします。Windowsの場合は「Add Python to PATH」にチェックを入れてください。

ステップ2:VS Codeを入れる

VS Codeをインストールし、拡張機能で「Python(Microsoft製)」を入れます。

ステップ3:動作確認

VS Codeのターミナルを開き、次を実行します。

python --version
# もしくは
py --version

バージョンが表示されればOKです。ここまでで詰まったら、 エラー文をそのままChatGPTに貼って聞くのが最短です。

動かす(最短)

まずは「動くもの」を作ります。ここでは例として、PythonでGUIを作りやすい Pygame を使う構成にします(将棋の強いAIではなく、改造の入口を作る目的)。

フォルダ構成(例)

shogi_ai/
  main.py

必要ライブラリ

pip install pygame

実行

python main.py

※あなたのプロジェクトがTkinter等なら、ここは差し替えてOKです。 重要なのは「必要なライブラリ」「実行コマンド」「構成」が明記されていることです(有用性アップ)。

AIの利用方法(質問テンプレ付き)

私の方針は「実装はAIに任せ、バグ修正もAIに寄せる」スタイルです。 ただし、質問の仕方で精度が変わるので、テンプレを用意します。

テンプレ:最初の依頼

あなたはプロのゲーム開発者です。
Pythonで将棋(9×9)を作りたいです。
要件:
- 盤面表示、駒の移動(基本ルールから)
- 先手/後手の手番管理
- クリックで選択→移動
- エラーが出たら原因と修正コードを「全文」で提示
まずは最小構成で動くものをください。

テンプレ:見た目修正(文字被り/向き)

現状の問題:
- 文字が重なって読みにくい
- 先手/後手で駒の向きを変えたい
要望:
- フォントサイズ、座標、描画順を調整して重なりを解消
- 後手は180度回転 or 表示ルールを統一
修正したコードを全文でください。

テンプレ:AI対戦を入れる

AI対戦を入れたいです。
まずは簡易AIでOKです(例:合法手の中からランダム、または駒得優先)。
要件:
- 人間が先手、AIが後手
- AIの思考時間は0.1〜0.5秒程度
- 合法手がない/詰み等の終了条件も表示
実装コードを全文でください。

重要:部分コードだけ出された時に詰まるなら、「全文で」 を必ず入れると安定します。 バグ修正は「エラー文」「該当ファイル全文」「再現手順」をセットで貼ると一撃で直りやすいです。

よくあるエラー

pipが動かない(Windows)

例:'pip' is not recognized...

ModuleNotFoundError

例:No module named pygame

公開方法

公開方法はいくつかあります。目的に合わせて選びます。

私の場合は、HTMLページに制作ノートとしてまとめ、FFFTPで自サイトにアップして導線を作りました。

FAQ

Q. いきなり強い将棋AI(探索・評価関数)は作れますか?

可能ですが、初心者はまず「合法手」「手番」「終了判定」などの土台を作ってからが早いです。 土台ができると、探索(ミニマックス等)や評価関数の改造が一気に進みます。

Q. 無料版でもできますか?

できます。無料版は「やりとり回数」「生成の安定性」で時間が増えがちなので、 エラー文を丁寧に貼る・全文で出させる、でカバーできます。