インフラエンジニアがAmazon Q CLIでポケモンクイズ作ってみた

## はじめに
連日皆さんがAmazon企画の「Amazon Q CLI でゲームを作ろう Tシャツキャンペーン」に取り組んでいるブログを読み、面白そうだということでやってみました。
ブログを読んでいる時は「ふ～ん、やるじゃん」くらいの気持ちだったんですが、いざ自分で体験してみると「す、すげぇ、、」ってなりました、、
ってか普段アプリ側ってこんな膨大なこと日々やってんの、、すげぇ、、ともなりました（汗）

## キャンペーン

https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

## 環境
自分のパソコンで失敗していらないの色々入るの嫌だな～と思って、AWSのEC2でWindows Server2025を立ててやってます。
インストールの際は以下サイトを参考にさせていだたきました。
https://www.skyarch.net/blog/windows%E3%81%AEec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E4%B8%8A%E3%81%A7amazon-q-cli%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84%EF%BC%81/

ここにはAmazon Q CLIでやり取りするための起動方法が載っていませんでしたが、Ubuntuの起動後「q chat」で起動出来ました。
![スクリーンショット 2025-06-13 130241.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/0446d84d-8a6c-4dec-b9b9-12f31ab2ae15.png)


## やってみた
起動出来たところで以下文章で作成を頼んでみました。

```
現在までですべて出ているポケモンの画像を1枚ずつ表示して、名前を入力すると正解か不正解か判定するテストを作りたいです。
100問ランダムで最後に何点か評価したいです。
```

ポケモンクイズにしたのは、最近のポケモンの名前が全然覚えれないのでポケモンマスターとして危機感を覚えたからです、、（画像の商用利用は禁止なので気を付けて下さい。）

途中でpipがないとか何々が足りないとか言われたので、必要なもの全部入れて下さいと頼んで入れてもらいました。

出来上がったのでこれです。
![スクリーンショット 2025-06-11 174118.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/7dca84c6-b001-4833-9b11-22a41f1385a2.png)

ん～、、思ったんとちゃうなぁ、、

質問を変えてみました。
```
現在までですべて出ているポケモンの画像を1枚ずつ表示して、名前を入力すると正解か不正解か判定するテストを作りたいです。
100問ランダムで最後に何点か評価したいです。
アプリケーションで実行できるようにしてください。
日本語対応してください。
```

そうすると作ってはくれましたが、グラフィカルディスプレイが見つからないと言われ、どうやら仮想サーバじゃ実現できないみたいです。
代わりにWeb版で作ったらどう？と提案してみました。

![スクリーンショット 2025-06-11 182224.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/4c9f2f74-2c51-416a-9817-684f2aa8da63.png)

**出来ました！すごい！**

問題に進むとクイズがちゃんと出てきました。

![スクリーンショット 2025-06-11 182346.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/93bc6d8f-9e4f-423a-b496-66c582476d43.png)

間違えたらパっと出てきて次のクイズに行きます。（この問題は答えられませんでした（笑））

![スクリーンショット 2025-06-11 182614.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/b486cb4c-fbac-48a7-a595-6aeb4301ef0f.png)

最後までいくと評価してもらえます（100問は多すぎた）

![スクリーンショット 2025-06-11 184339.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/7dc0eb03-8706-4900-b7ed-46852319c68e.png)

いやーこの点数はまずいですね。きちんと覚え直さないとです。

## 改良
ということで触ってみると色々改善点が見つかるものです。
ここから修正を頼んでみようと思います。
・答えが分からなくても何か入力しないと次に進めないため、分からないボタンを追加
・間違えた問題を後から復習したい
・シリーズごとで問題を分けられる？
・ポケモン一覧のページを他で用意したい
・10問、30問、50問、100問で分けたい
・問題の途中でリタイアして、ホーム画面に戻れるようにしたい

全部の要望を叶えてもらった結果がこちらです。
![スクリーンショット 2025-06-13 115353.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/e5d53daa-1430-45aa-bfc0-3cddd9c96d56.png)

世代と問題数を選択するとその条件でクイズが始まります。
分からないボタンでスキップする事ができ、リタイアボタンでクイズをやめられるようになりました。

![スクリーンショット 2025-06-13 130448.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/7b2343eb-57a0-4b3b-831b-aa8b17d745ea.png)

数問スキップで間違えてみます。

![スクリーンショット 2025-06-13 130619.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/c6359a60-2af7-4946-8cef-79755b532f3d.png)

リタイアしてホームに戻ってみます。

![スクリーンショット 2025-06-13 130659.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/5c9c69c7-ce14-4e05-948f-70b434935c8e.png)

![スクリーンショット 2025-06-13 130732.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/9d43f0a7-fd01-49b5-95d2-e6f86c3f75f0.png)

間違えた問題だけもう一度挑戦できるようになってますね。
ポケモン図鑑を見るボタンで全てのポケモンが見れるようになっています。

![スクリーンショット 2025-06-13 130843.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3860847/7f86a675-399e-416f-a3b5-fbd05620632e.png)

## ハマった点
途中まではエラーを繰り返しながらもなんとか機能を追加していけましたが、クイズを世代別にするところでなかなかうまくいきませんでした。
エラーが出た際に、そのエラー文を貼って解決するようにお願いすると２，３回繰り返すうちにエラーが無くなって動くようになるのですが、世代数のところは5回ほど繰り返してもエラーの状況が変わらず、Webで動かしているのでF12で起動する開発者ツールでエラーを読み取ったりしてお願いしても全然解決せずに詰まってしまいました。。
コードが読めないのでAIが分からなければお手上げです。
そこで一度Amazon Q CLIから抜けて、改めて質問することにしました。

```
ポケモンクイズゲームを作りました。「pokemon_quiz_web.py」がファイルです。
アクセスすると「データを読み込んでいます...」と出ており、
ゲームを開始するボタンがグレーアウトされており押せません。
要件としては、
・問題数が分かれている
・問題を途中でやめることができ、ホームに戻れる
・問題終了後評価される
などがあります。ポケモンの世代別に問題を作りたいのですが上手くいきません。
正常に動作するように改善してもらいたいです。
```

一度閉じてから改めて質問し直したところ構文を修正してエラーを直してくれました。
何度質問しても詰まった場合は一度Amazon Q CLIから抜けて、再度入り直してエラーについて伝えてみてください。

## 感想
やりたいことを指示して作ってもらって、動作確認してエラーが出ればそのエラーを解決してと伝えるだけで、どんどんやりたいことを実現してくれます。
AIが動いてる間は5,6分待ったりするので、他事しながら合間合間に指示するだけで作りたいものを作ってくれるので、どこまでのクオリティが作れるか未知数ですが、少なくとも今回のクイズゲームは満足いくレベルまで仕上げられたので感動しています。普通に今後ポケモンの名前を覚える際に使っていきたい。

みんなもAmazon Qで色んなもの作ってみてください！！

**目指せ！ポケモンマスター！！**