ChatGPTでプログラム:リバーシゲームを創る
プログラム補助としても非常に優秀なChatGPT。今回は様々な条件判定があるゲームをということで「リバーシ(オセロ)ゲーム」をChatGPTと作成してみました。
何も考えずにコードを生成
一旦以下のプロンプトで生成してもらいました。
あなたは優秀なプログラマーです。HTMLとJSとCSSのリバーシを創ってください
結果は、描画も難しくコードは生成されているものの、反映してみると動かない状態に陥りました。一つずつ解決していきます。
動作しません。
↓
描画されません。
↓
セルに線を引いてください
↓
セルの背景をグリーンにしてください
↓
CPUとの対戦としてください。
修正を繰り返しようやくイメージに近づいてきました。ただ何かがおかしい。
遊んでみるとオセロの判定が全く上手く行っていなくて、変なところに置けるし、相手のコマがあろうがなかろうが、空白だろうが、挟まれていたらコマが置けてしまうという状況に。
コードも何度も書き直しているため、変数とかの名前が合ってきていない状況になってきたので、今までの改善も交えプロンプトを練り直して再チャレンジします。
改善したプロンプト
あなたは優秀なプログラマーです。
以下の条件を元にHTMLとJSとCSSのリバーシを創ってください
<条件>
・8x8のグリッドを作成
・マス目上に線を引いてください
・セルの背景をグリーンに
・盤面を上下左右中央に配置
・ボード上のそれぞれのセルをクリックすることでコマを設置
・CPUとの対戦
・相手のコマと隣接しているコマにしか置けない
・相手のコマと自分のコマが挟まれていない場所にしか置けない
・相手のコマと自分のコマが挟まれていても空白が存在したら置けない
かなり良いところまで行きましたが、いくつか反映されていないので再度反映されていないプロンプトを打ち込み調整し完成。
最終のアウトプット
リバーシ(オセロ)ゲーム
https://taziku.co.jp/game/osero/
実装ができていない部分もまだまだありますが、一旦ゲームとしての体はなしました。ここからBGMの追加やコマ数のカウントによる勝敗判定など具体的にプレイしていて足りない要素を足していくと、よりゲーム感がでてきますね。
自然言語によるプログラムもスキルが必要
あたりまえに考えている部分、人間だと勝手に処理して構築してしまう部分もしっかりと定義付けしてあげないと、全然プログラムできないとなってしまいます。
AIがわかりやすいように条件を完結に伝えるというのはプログラムとはまた違うスキルのような気がします。この分野は色々と掘り下げていけそうな気がしています。