Amazon Q CLIを使ったら一切コードを書かずにゲームを作れた！

<!--
title: Amazon Q CLIを使ったら一切コードを書かずにゲームを作れた！
tags:　AWS,Amazon Q CLI,初心者
-->

## はじめに
Amazon Q CLIを使用してゲームを作成するとTシャツがもらえるキャンペーンが開催中（2025年6月20日まで）とのこと。  
自分自身はゲーム開発の経験が全くない初心者ですが、挑戦してみることにしました。

・キャンペーン情報

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

## 環境
- Windows 11
- WSL2
- Ubuntu（24.04.2 LTS）
- Amazon Q CLI（q 1.10.2）

こちらのブログを参考に環境を準備しました。

https://www.itis.nssol.nipponsteel.com/blog/aws-qdeveloper-01.html#:~:text=Amazon%20Q%20Developer-,%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%B8%E3%81%AE%E5%B0%8E%E5%85%A5%E6%96%B9%E6%B3%95,-%E4%BB%8A%E5%9B%9E%E3%81%AFWindows

## 作りたいゲーム
今回は「コネクトフォー」と呼ばれる重力付き4目並べをオマージュしたゲームを作成します。  

・コネクトフォー

https://ja.wikipedia.org/wiki/%E5%9B%9B%E7%9B%AE%E4%B8%A6%E3%81%B9#:~:text=%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82-,%E9%87%8D%E5%8A%9B%E4%BB%98%E3%81%8D%E5%9B%9B%E7%9B%AE%E4%B8%A6%E3%81%B9,-%5B%E7%B7%A8%E9%9B%86%5D

## ゲーム作成
まずはこちらの記事を参考に、最初の指示を作成しました。  

https://qiita.com/sh_fk2/items/58fb1b3c91407c5fdeb0#amazon-q-cli%E3%81%B8%E3%81%AE%E6%8C%87%E7%A4%BA%E3%81%AE%E4%BB%95%E6%96%B9

- 最初の指示
```
pygameを利用してゲームを作成します。  
amazonq_gameフォルダ配下で作業を行なってください。  
コネクトフォー（Connect Four）という2人対戦ゲームを作りたいです。  
縦6行×横7列の盤面を使い、プレイヤーが交互にコマを上から落とします。  
自分の色のコマを縦・横・斜めのいずれかに4つ並べると勝利となります。
盤面が満杯になっても勝敗が決まらない場合は引き分けとなります。  
プレイヤー1は赤、プレイヤー2は黄のコマを使います。  
マウス操作で列を選び、そこにコマが落ちるようにしてください。  
すでに満杯の列には置けないようにしてください。  
勝敗が決まったら結果を画面に表示し、リスタートボタンでゲームを最初からやり直せるようにしてください。
```

できあがったゲームがこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/548045b6-cd4a-4dc7-ac9f-1ea1aaf3e810.png)

なんか文字化けしてる、、？
でもプレイは正常にできている模様です↓

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/39550007-ceb2-4195-9263-75ed44dd4294.png)

- 文字化けを修正
```
amazonq_gameフォルダ配下のconnect_four.pyの文字化けを修正してほしいです。
ゲーム内の文字は全て英語で表示されるようにしてください。
```

修正後のゲームがこちら

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/700cd8be-953b-4b47-b453-8e10c215e4ca.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/8dad4f5e-b351-4dba-b077-05fa396f3edf.png)

ちゃんと修正できてる！！

- UIを微修正
```
amazonq_gameフォルダ配下のconnect_four.pyのUIを修正してほしいです。
現状、カーソルがどの列にあるかがわかりづらいので、カーソルがある列を強調表示してください。
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/d33cbf2e-2504-43c0-8694-6094905a6426.png)

いい感じ！！  
最後に、1つルールを追加して、少し独自性を出してみます。  
プレイヤーは自分のターン中に、1回だけ盤面全体を90度回転できるようにします。

- ルールを追加

```
amazonq_gameフォルダ配下のconnect_four.pyにルールを追加してほしいです。

【ルール追加】
- プレイヤーは自分のターン中に、1回だけ盤面全体を90度回転することができます。
  - 回転方向は「時計回り」または「反時計回り」のどちらか1つを選べます。
  - 回転を行うかどうかは任意で、回転しない選択も可能です。
  - 回転後、マスに空きがある場合は、コマは下方向に落下（重力が働く）するようにしてください。
- コマを置いた時点でそのプレイヤーのターンは終了します。
- 回転用に、画面上に「時計回りボタン」「反時計回りボタン」を追加してください。
  - 時計回りのボタンは「R」、反時計回りのボタンは「L」と表示してください。
```
結果がこちら

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/66304cd8-318b-4699-ba13-9ef6649ccb31.png)

このときRボタン（時計周りに90度回転）を押すと、、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3941898/ed6f9e01-22ed-498a-8ffe-81d012384ac9.png)

このように盤面が回転するようになりました！！素晴らしい！！

## まとめ
環境構築に約15分、ゲーム作成に約15分、合計わずか30分ほどで完成しました。  
ほとんど前提知識がない状態でも、ここまでスムーズに作れるのは本当に驚きです。  
ゲーム制作に限らず、生成AIのおかげでできることがどんどん広がっていると感じます。
生成AIの力を借りながら、今後もいろいろなことに挑戦していきたいです。