はじめに
ChatGPT無料版を使っていると、時々途中でChatGPTが止まってしまう。。。なんて経験はありますでしょうか?まあ無料版だし仕方ないか、と諦めるのはまだ早いですよ。
今回は試しに、ChatGPTにスネークゲームをhtml/js言語で書いてもらいます!
長い回答は往々にして止まる
[Mark(ユーザー)]
html/jsを使ってスネークゲームのソースコードを作って
[ChatGPTの回答]
以下はHTML、CSS、JavaScriptを使ったスネークゲームの基本的なソースコードです。このコードは、キャンバスを作成し、スネークの移動、食べ物のランダム配置、そしてスコアの追跡を行います。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Snake Game</title> <style> canvas { border: solid 1px black; } </style> (中略) // ゲームループの開始 function gameLoop() { // 新しいスネークの位置を計算 var head = {x: snake[0].x + dx, y: snake[0].y + dy}; snake.unshift(head);
あら、止まってしまいましたね。このままではスネークゲームを試してみることができません。
再度回答を尋ねてみても、やはり、途中で止まってしまいます。
途中から再開させる
実は、回答が止まった時点で以下のように指示すると、途中から続けて回答してくれます。
[Mark(ユーザー)]
最後まで続けて
[ChatGPTの回答]
// 食べ物を食べたかどうかの判定 if(head.x === food.x && head.y === food.y) { score++; snakeLength++; // 新しい食べ物の位置をランダムに決定 food.x = Math.floor(Math.random() * canvas.width / gridSize) * gridSize; food.y = Math.floor(Math.random() * canvas.height / gridSize) * gridSize; } else { snake.pop(); } (中略) // ゲームループの開始 gameLoop(); </script>
</body>
</html>
```
このコードは、<canvas>要素を使用してスネークゲームを描画し、JavaScriptを使用してゲームロジックを実装しています。スネークは、配列を使用してその位置を追跡し、移動方向はキー入力によって変更されます。食べ物はランダムに生成され、スコアとスネークの長さが増加します。ゲームオーバーは、スネークが画面外に移動した場合、または自分自身に衝突した場合に発生します。
最後少し崩れましたが、なんとか回答しきることができたみたいです。いざ、実際に動かしてみましょう!
実際にできたhtml/js文は。。。
おお、ちゃんと動いていますね。ChatGPTはちゃんとコードを壊れることなく書き切れたようです。
まとめ
というわけで今回は、ChatGPTが途中で止まる場合に、回答を続けさせる方法を試してみました。
ぜひ回答が止まっても、最後まで続けるようにChatGPTに伝えてみてください!