ラベル ChatGPT の投稿を表示しています。 すべての投稿を表示
ラベル ChatGPT の投稿を表示しています。 すべての投稿を表示

2025年4月29日火曜日

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

前回試してから10ヶ月以上たったので、そろそろ現状がどうなっているかテストしたくてやってみました。ChatGPT 4.5では ChatGPT 内でテトリスを動作させることができるなど、進化していました!

過去の実装


ChatGPT 4.5(research preview)


スコアなどもでるように少し指示を多めにしてみました。
出てきたコードの部分をクリックすることで、



なんと下記のように右側にコードが展開されて、「Preview」ボタン押すと!



Webサーバーシステム上におかずに、その場でゲームが楽しめました。すごいですね!


ChatGPT-4o


前回と異なり、1つの HTMLファイルで動くコードを提示してくれました。



ただし、壁が見えない


壁を作ってくれと指示




変更箇所しか提示されなかったので、全体を1つのコードで出力するように指示



完成


おお、いい感じの見た目になりました。回転や列が揃ったら消えるというのは実装されてましたね!



2025年4月29日 @kimipooh

2024年6月4日火曜日

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

以前、ChatGPT Plus (GPT-4) でテトリスを実装してみたのですが(2023年4月21日)、最近でてきた GPT-4o は返答も速く、かなりの精度がありそうに思います。ならば、いまこそ再度テトリスのコードを少ない工程で出してくれるはず!ということでやってみました。

過去の実装

生成AIは毎回同じ答えになるわけじゃないので、下記の方法で皆ができるかどうかわかりません。

わずか1文だけ

今回はこれだけで動くレベルのものが実装されました。前回の苦労はなんだったのでしょうか。下記のように、左右移動、下矢印で落ちる速度アップ、QとWで回転。そしてスコアまで出してくれますね!

どのような操作や表示されたコードをどうすればいいのかは、最低限ファイルの作成方法とデータのコピー&ペーストは知っておく必要があります。


と続けて打つと、操作方法のヘルプに加えて、


表示されたコードをどのようなファイルに保存すべきかが出てきます。素晴らしい。



もちろん、テトリスの色が赤色しかないとか、細かいところの実装は必要でしょうが、一発でテトリスが遊べるレベルになるのはすごいですね!

2024年6月4日 @kimipooh

2023年10月13日金曜日

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

ChatGPT Plus で画像をようやく本日から扱えるようになりました。

前回、2023年4月の時点では下記のようにかなりいろいろと指示しなければなりませんでした。またこの記事以後に試したもののリンクも追加しておきます。

あれから、ChatGPTも進化しているはずです。どうでしょうか。

STEP 1. ウェブでうごくテトリスを作ってください



この時点では形は1つだけで、下に落ちる、↓キーで落ちる速度が早くなる。さらに1度おちたら消えて終わり。までしか実装されませんでした。


また上記のように注意事項がでてきたので、次の命令を与えます。

STEP 2. 完全なゲームを作成するために、回転、様々なテトリミノの形、行のクリア、得点システムなどの機能を追加してください。


ここで指示されるのは、JavaScriptに対してコードを追加せよとなります。
もしかしたら、今時点で何をしたら良いかわからないかもしれません。
今回は script.js というファイルにコードをいれているので、そちらに追加するということになります。

ただし追加しても動きませんでした。

そこで次の命令を与えます。

STEP 3. 動かないので、検証おねがいします



今度は全く動かなくなりました。困りますよね。

STEP 4. 動かないので、検証おねがいします。また完全なコードを示してください。



ここでも動きません。
Chromeの開発者モードでチェックしてみると、script.js の末尾あたりにある playerReset(); について、その関数が実装されていませんね。

そこで次の命令を与えてみます。

STEP 5. 動きません。playerReset関数もないので、正しい完全な script.js を実装してください



おお、少しまともなものが出てきました。しかし。画面途中から積み上がりますね。また回転などはできません。

以前の質問4でした操作マニュアルを聞いてみます。

STEP 6. このテトリスの操作マニュアルを作成してください



ふむ。回転機能は実装されていないのですね。では実装してもらいましょう。

STEP 7. 回転機能を実装してください


ここでは完全なコードではなく、一部修正が必要です。このあたりは少しプログラミングのことを知っていないと難しいかもしれません。

script.js に対して操作をします。

function playerRotate(dir) と function rotate(matrix, dir) は update関数より上に追加。

document.addEventListener に if文を追加(提示されているものを少し修正して else if として追加する。

うまく実装できたら、上矢印キーで回転させることができました。


まぁこのように、テトリスを実装させるためには、全くコードを知らないとまだ難しい感じはしますね。可能なら JavaScript のプログラミングについて知っていること。そうでなくても Chromeなどで JavaScriptの実行状況をチェックできることぐらいはできないといけなさそうです。

参考:ChromeのデベロッパーツールでJSをデバッグする方法(2022年版) - ICS MEDIA


2023年10月13日 @kimipooh

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