目次
概要
最初の作品で将棋を作ろうと思った理由はシンプルで、 「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...
- PythonのPATHが通っていない可能性 → 再インストール時に「Add Python to PATH」をON
py -m pip install pygameを試す
ModuleNotFoundError
例:No module named pygame
- 仮想環境/別Pythonに入れている可能性 → VS Code右下のPython選択を確認
- ターミナルで
python -m pip install pygame
公開方法
公開方法はいくつかあります。目的に合わせて選びます。
- コード公開:GitHubにリポジトリとしてアップ(READMEに実行手順を書く)
- 配布:PyInstallerでexe化して配布(Windows向け)
- サイトに載せる:制作ノートにスクショ/仕様/手順/学びをまとめる(←有用性が上がる)
私の場合は、HTMLページに制作ノートとしてまとめ、FFFTPで自サイトにアップして導線を作りました。
FAQ
Q. いきなり強い将棋AI(探索・評価関数)は作れますか?
可能ですが、初心者はまず「合法手」「手番」「終了判定」などの土台を作ってからが早いです。 土台ができると、探索(ミニマックス等)や評価関数の改造が一気に進みます。
Q. 無料版でもできますか?
できます。無料版は「やりとり回数」「生成の安定性」で時間が増えがちなので、 エラー文を丁寧に貼る・全文で出させる、でカバーできます。