2023年4月21日金曜日

ChatGPT Plus (GPT-4) でテトリスを実装してみた。

ついに筆者も ChatGPT Plus を契約してみました。やはりこうったものは一度触ってみないとわかりませんね。

以下、本記事以後に試した新しいChatGPTに関する記事になります。

さて軽く「日本語で最初にノーベル賞を受賞したのは誰ですか」を質問してみました。

以下冒頭のみです。

===

GPT-3.5(無料版)

日本で最初にノーベル賞を受賞した人物は、物理学者の散兵社中尉(たたらふね ひろし)こと、渡辺敬一(わたなべ けいいち)氏です。彼は、1929年にノーベル物理学賞を受賞しました。

*??? だ、誰ですかね!?
*何度か同じ質問をすると正しい答えが返ってきました。

GPT-4

日本で最初にノーベル賞を受賞したのは、物理学者の湯川秀樹(ゆかわ ひでき)博士です。1949年にノーベル物理学賞を受賞しました。

Bing (GPT-4)

日本人で初めてノーベル賞を受賞した人物は湯川秀樹氏です。

===

さて肩慣らしは終わって、テトリスを作ってもらいましょう。
以下、実際にいろいろやった備忘録です。やってみてわかったことは、

  • 長いコードは途中できれるので、「続き」という質問をいれて継続回答してもらう
  • 実装がおかしい部分は、おかしいことを端的にしてみる
  • コードの一部変更提案は、プログラミングをある程度わかっていないと変更は難しいかもしれない。そのため「完全なコードをお願い」を質問する必要がありかも
といったところでしょうか。下記はそういうことを考えず、いきあたりばったりな感じはありますがそれはそれで備忘録としてはよいかなと思ったので残します。

とはいえ、毎回回答が異なる可能性もあるので、下記と同じことをしても同じ結果出ない可能性もあります。また最終的にエラーを完全に修正できるのか、セキュリティ対策が必要な場合には、そうしたコードが正しく入っているのか、安定して動くのかなどの保証がない点は注意しないといけませんね。

質問1:ウェブでうごくテトリスを作ってください


HTMLコード、CSSコード、JavaScriptコードのサンプルが示されました。
HTMLコードを index.html というファイル(拡張子 html か htm なら特に名前は何でもいい)に保存します。それから HTMLコード内にある CSSとJavaScriptを「ここに入れてね」というところに入れ込みます。

この時点では骨組みだけで、ゲームのロジックである Tetrominoクラスと Tetris クラスの追加が必要であると回答されました。

質問2:テトリス用の TetrominoクラスとTetrisクラスにはゲームのロジックを教えてください


長いコードは途中で途切れてしまうので、下記をいれても途切れる。
  • 途中できれたので完全なコードを教えてください。
  • テトリスにおける Tetrisクラスの完全なコードを教えてください
  • テトリスにおける Tetrisクラスの完全なコードが途中で途切れるので途切れないよう続きを教えてください
そのためネットで調べて
  • 続けてください
をいれるとコードの1,2行前ぐらいから続きをしてくれました。
*あとから「続き」だけを質問すると、本当に続きからコードを出してくれました。

出てきたコードについては、 class Tetromino と class Tetris の部分を差し替えます。

しかし動きません。

質問3:動かないので、検証おねがいします


これで HTMLコードに CSSや JavaScript すべてのコードが入った完全コードを提示してくれます。途中で途切れるので「続き」と質問して、出てきたコードを index.html に上書きします。

これで回転しないテトリス(左右には動く)が出来上がりました。

質問4:このテトリスの操作マニュアルを作成してください


一応、なにかのキーに回転が割り当てられていないかチェックします。
割り当てられていませんでした。

質問5:回転機能を実装してください


これで HTMLコードに CSSや JavaScript すべてのコードが入った完全コードを提示してくれます。途中で途切れるので「続き」と質問して、出てきたコードを index.html に上書きします。

これで回転してくれるのですが、1,2ブロックが回転すると消えてしまいます。

質問6:回転がおかしい


ここでの質問方法はかなり戸惑いました。下記のようにいろいろ質問しましたが直らず、シンプルな質問にすると直りました。
  • 回転すると一部きえてしまうので、検証してください
  • 回転すると上の画像が消えます。修正してください
  • 回転すると一番上のブロックがきえます。修正してください。
  • まだ直っていません

質問7:一時停止機能を実装してください


p で一時停止する機能を提案してくれました。


2023年4月21日 @kimipooh

0 件のコメント: