AI(人工知能/ディープラーニング)

Claud3.5sonnet無料版にもプレビュー画面が表示されるようになり、プレビュー画面でテトリスができます

この記事は約4分で読めます。

Claud3.5sonnet無料版にもプレビュー画面が表示Claud3.5sonnet(クロード3.5ソネット)無料版に、なんとこれまで有料版限定だったプレビュー画面が表示されるようになりました。文章生成やプログラムコードに関してはChatGPTより高性能という評判が高いClaud3.5sonnetです。
Claud無料版は利用回数の制限がありますが、有料版と変わらないくらいのことができるようになりました。ためしにテトリスのゲームを作ってみました。なかなかすごいです。

Claud無料版にもプレビュー画面が表示

Claud3.5sonnetの利用法

Claud(クロード)は無料でも利用可能です。

Claude
Talk with Claude, an AI assistant from Anthropic

にてアカウントを作成し認証をすませば、すぐに利用できます。

表示されるメニューの文字が英語ですが、質問や回答は日本語なので大丈夫です。

新しいチャット型AIサービスのClaude(クロード)が日本語対応になったので使ってみました
Claude(クロード)という生成AIサービスが日本語対応したことでAI業界ではちょっとした話題になっています。Claudeは、Anthropic(アンスロピック)というITベンチャー企業が提供していますが、この企業はOpenAI出身の研究者が中心となって2021年に設立されたといういきさつもあります。すでにGoogleがに投資しており、最近になってAmazonも多額の投資を発表したことで、Cla...

上記にClaudeの解説記事がありますので興味ある方はそちらもご覧になってみてください。

テトリスというミニゲームを作ってみました

「テトリスのようなゲームをスマホ画面に収まるようなミニゲームとして作ってください」というプロンプトを入力しました。

Claud3.5sonnet無料版にもプレビュー画面が表示

するとこんな感じでサクサクとプログラムを書いてくれてます。右側になるプレビュー画面を表示すると、生成したプログラムが動きます。

Claud3.5sonnet無料版にもプレビュー画面が表示

すごいですね。

修正も簡単です

「ブロックが自動で下に落ちるようにしてください」という追加のプロンプトを入れるとちゃんと修正されます。

どもども遠田
どもども遠田

ブロックが自動で下に落ちるようにしてください

AIの回答
AIの回答

もちろんです。ブロックが自動で下に落ちるように改良しましょう。これは重要な機能で、テトリス型のゲームには欠かせません。既存のコードを修正して、この機能を実装します。

テトリス風ミニゲーム(自動落下機能付き)
Click to open component

主な変更点は以下の通りです:

  1. speed ステートを追加し、初期値を INITIAL_SPEED (1000ミリ秒) に設定しました。
  2. useEffect フックを追加して、currentPiece が存在し、ゲームオーバーでない場合に、setInterval を使用してブロックを自動的に落下させるようにしました。
javascript
useEffect(() => {
if (!gameOver && currentPiece) {
const intervalId = setInterval(moveDown, speed);
return () => clearInterval(intervalId);
}
}, [gameOver, currentPiece, speed, moveDown]);
  1. clearLines 関数を修正し、ラインをクリアするたびに速度を上げるようにしました。
javascript
setSpeed(prevSpeed => Math.max(100, prevSpeed - linesCleared * 50));
  1. moveDown 関数を useCallback でラップし、依存関係を適切に設定しました。これにより、新しい useEffect フックで正しく機能します。

これらの変更により、ブロックは自動的に落下し、プレイヤーがラインをクリアするたびにゲームの速度が上がります。これでゲームはよりチャレンジングで楽しいものになりました。

プレイヤーは左右の矢印キーでブロックを移動し、上矢印キーで回転させることができます。下矢印キーを押すと、ブロックをより速く落下させることができます。

このゲームをさらに改良したい場合は、次のような機能を追加できます:

  1. 次のピースのプレビュー表示
  2. ホールド機能(現在のピースを保持し、後で使用する)
  3. レベルシステムの実装
  4. ゲームの一時停止機能
  5. 背景音楽とサウンドエフェクト

これらの機能について詳しく知りたい場合は、お気軽にお尋ねください。

ちょっとしたプログラムが素人でもできてしまう生成AIすごいですね。