Amazon Q CLI ガチ初心者エンジニアが触ってみた  難しい音ゲー 　〜PyGameで少し苦戦〜

# はじめに

初めまして、今年新卒でエンジニアになりました。村重です。大学では、情報系の学部ではなく、現在研修中でかなり苦しんでいる人です。
記事を書くのも初めてなので間違っていることが多いと思います。
間違っていましたら、コメントつけていただけると幸いです。

そんな私が、Amazon Q CLIを試してみたので、記事を書きました。
本心は、Tシャツほしいから頑張るです。


# 目次
・Amazon Q CLIとは？
・作ったもの
・導入方法（Amazon Q と　Pygame）
・PyGameちょっと苦戦
・感想


# Amazon Q CLIとは？

開発者と対話しながらフィードバックに基づいて変更を加えていくことが可能です。
ターミナルにプロンプトを打つだけでAmazon Qが考えてくれて、そのままファイル作成・コードを取り込んでくれます。
また、コードだけではなく、アイデアまで提案をしてくれるのでChatGPTみたいな感覚です。

https://aws.amazon.com/jp/blogs/news/introducing-the-enhanced-command-line-interface-in-amazon-q-developer/



# 作成したもの

イメージは、音ゲーです
難易度：かんたん
![AmazonQ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3787209/57c7074f-f45b-43b4-9936-bf3cac5421d4.gif)


難易度：むずかしい

![むずかしい.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3787209/fce35d61-4a62-4bbc-88f8-2ed5407bbbdb.gif)


## 操作の仕方
1.設定から、好きな難易度を選択します。

2.ゲーム開始ボタンを押すとゲームがスタートします。

3.上から青い長方形のものが降ってくるので、一番下の黄色い線のところでタイミングよくそのキーを押します。
そして赤いものも上から降ってきます。これは、槍です。攻撃されるので、左右のキーで黄色い盾を動かして槍から守ります。
タイミングよくキーを入力したらスコアが上がり、押せなくてもスコア下がらないので大丈夫です。
ただ槍に当たってしまうとスコアが下がります。




# 導入方法
自分の環境：　Mac、VScodeを使用しています。

基本的にこの記事を読みながら環境構築しました。ステップバイステップガイドですね！

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

---

### 1. AWS Builder ID とAmazon Q CLI をインストール。
この記事がすごくわかりやすかったです。

https://qiita.com/tks_1128/items/54c7305c88f583ac72c4

### 2. PyGame をインストールしていきます。PyGameをクリックして、

https://www.python.org/

を開きます。
上のDownloadというところを選択して、
この時点では、Download Python 3.13.4が最新でしたので、黄色いボタンを押してダウンロードを行います。　多少インストールするための操作があります。
![スクリーンショット 2025-06-08 14.08.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3787209/cc13995d-7674-42ff-af2a-a4ea00d71eb4.png)

### 3. PyGameの動作確認
Pythonのダウンロードが完了したら、
ターミナルを開き、
`python3 -m pip install -U pygame --user`
を実行して、インストールを行います。
そして、きちんと動くか確認します。
`python3 -m pygame.examples.aliens`
これで、十字キー操作で洗車が動かせて、スペースキーで大砲を打てるみたいなゲームが始まれば、無事に動いています。

### 4. 実際にプロンプトを打つ
VScodeのターミナルで、
`q`
と入力するとAmazon Qが使えます。
私は、以下のようなプロンプトを打ちました。
```
Wedページで動くゲームを作成したいです。音楽に乗せて上から四角いのもが降ってきます。
下には、標準の線みたいなものが存在しており、その線の部分でタイミングよくA,S,D,Fを入力して楽しむものです。イメージはCHUNITHM VERSEです。
 付け加える要素として、時々、上から四角いものと一緒に槍が飛んできます。
それをガードする盾が存在しています。その盾を十字キーで移動させて槍を防ぎます。
盾のガードの移動範囲は、上から降ってくるところの幅内ならどこでも動かすことができます！
```
※「Webページで動くゲームを作成したい」というような1文が意外と重要で、「音楽に乗せて上から…」と書き始めると、うまく作成されませんでした。

※この場合だと、PyGameは使用してくれませんでした。HTML、CSS、JavaScriptでコードを書いてくれました。

※スタートボタンを押しても動かなかったので、
```このコードではスタートができません。直してください```
```これでは、十字キーの操作ができませんでした。直してください　また、リスタートキーではなくストップボタンにしてください```
などというプロンプトを入力しました。

### 5. PyGameを使用してほしい
```Pygameを導入しました。これを用いて作成してください```
というプロンプトを入力します。
新しくrhythm_game.pyが作成されました。
このファイルを実行するために、
``` python3 rhythm_game.py```

### 6. さらに、改善していく
文字化けがひどかったので、その改善をプロンプトにして入力するしたり、難易度の設定を作成するようなプロンプトを入力してみたりしました！

# PyGameちょっと苦戦
``` python3 rhythm_game.py```
を実行した時にエラーを吐いていました。

エラー文をAmazon Qに投げてみました。
どうやら、pipがうまく入っていないようです。
Amazon Qからは、pipをもう一度入れ直すような指示でしたが、うまくいかず…
```pip3 install numpy```
を実行しました。
そしてもう一度
``` python3 rhythm_game.py```
実行するとうまく動きました！

※エラーコードを記載できたらよかったのですが、消してしまいました😢🙏

# 感想
Amazon Qすごすぎる！
エンジニアの存在が脅かされているなと思いました。
今後のAIの発展には注目していく必要があると思います。

初めて記事を書いてみて、とても難しかったです。
伝わるかなーと思いながら、不安でいっぱいです。
これからも、アウトプットしていきたいと思います！

## 参考
https://qiita.com/shizuma/items/8616bbe3ebe8ab0b6ca1

https://qiita.com/issy929/items/9562187de4f93999e8d4