はじめに
この記事は以下のキャンペーンを見て作成しました。
環境準備
実行環境
手元の端末がWindowsかつWSLも入れていないので、Amazon Linux 2023を用意します。(t2.microを利用)
ゲームを実行するためhttpdを上げておきます。
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
Amazon Q Developerの準備
こちらのzipファイルを使用したインストールで進めます。
zipファイルの入手
curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
zipファイルの解凍
[ec2-user@ip-172-30-1-235 ~]$ unzip q.zip
Archive: q.zip
creating: q/
inflating: q/install.sh
inflating: q/README
inflating: q/BUILD-INFO
creating: q/bin/
inflating: q/bin/q
inflating: q/bin/qterm
inflating: q/bin/qchat
ログイン方法を聞かれるので、Builder IDを選択。(持っていない方は作成しましょう!)
ブラウザを使用した確認が入ります。URLをクリックしてブラウザで開きます。
確認して続行を押すと、以下の許可確認が出るので、「アクセスを許可」をクリック。
リクエストが承認されれば、ブラウザを閉じてもOK。
shellの環境変数などを反映させておきます。
source ~/.bashrc
q doctorを実行してチェックしましょう。sshd_configに追加が必要なようです。
最下部に2行追加します。(sudo vi /etc/ssh/sshd_config のように管理者権限で編集)
sshdを再起動して反映しておきます。
sudo systemctl restart sshd
sshを一旦抜けて、再度ログインします。
q integrations install sshを実行
q integrations install ssh
sshd_configを読み取れるようにしておきます。(これをしないとq doctorでエラーになった・・・)
sudo chmod 644 /etc/ssh/sshd_config
q doctorで確認します。qtermが動作していないというエラー。
qtermはローカルフォルダに配置されているので、実行します。
.local/bin/qterm
改めてq doctorを実行。以下のように出力されれば問題ないようです。
q chatの起動確認
q chat で実行します。
q chat
Amazon Qへのプロンプト作成
何を依頼するか?
某横スクロールアクションにインスパイアされたゲームです・・・。
Javascriptで動くゲームを作成してください。やりたいものは以下の通りです。
# 概要
・横スクロールアクションゲーム。
・左から右に移動する。
・地面の穴に落ちると死亡。
・通常はミニサイズからスタート1×1マスのサイズ。
・パワーアップアイテムを取ると、横1×高さ2マスのサイズに大きくなる。
・ジャンプで2マスまで高くとべる。
・ダッシュで加速すると4マスまで飛べる。
・敵に正面からぶつかったとき、ミニサイズであったら志望。大きくなっていた場合はミニサイズになる。
・スクロールは数画面程度とし、最後まで到達するとゴールとする。
#敵の挙動
##くり
・ゆっくり真っ直ぐに歩いてくる。
・上から踏むと死ぬ。
##かめ
・ジャンプしながら近づいてくる。
・上から踏むと甲羅の状態になる。
・甲羅の状態を再度踏むと、自分の加速している方向へ真っ直ぐすべっていく。
・甲羅はすべっている状態で、段差にぶつかると逆方向へすべっていく。
・甲羅は穴があると落ちる。
q chatで作成依頼
't':trustにするとどんどん進めてくれるようなので、tを入力します。
Amazon Qの出力
実際に出来上がった物
黄色い箱はパワーアップアイテムです。
茶色い四角はくり、緑は亀の模様。(亀はスタート直後に穴に落下するので踏む挙動は確認できず・・・)
改造依頼
横のスクロールが少なかったので、5画面程にしてもらいました。
q chatを一度終了していたため、現状を把握してから改修内容を検討しているようです。(なぜか回答は英語・・・)
改修する部分は差分が表示されるようです。
出力時の情報はこちら。
山のような表現も追加されました。緑の平らな部分はかめを踏んだところ(甲羅)。自分のキャラはパワーアップアイテムを取った状態です。
この先進んでも敵はいっさい出てきませんでした・・・敵の出現条件などの定義が必要そうですね・・・。