ネットバトルがしたかったので、ChatGPTでネットバトルが出来るプロンプトを考えた

# ネットバトルがしたい
みなさん、ロックマンエグゼをご存知でしょうか？
ロックマンエグゼはカプコンが開発した人気ゲームシリーズです。
最近ナンバリング10作品が一挙に収録された、ロックマンエグゼ アドバンスドコレクションが発売されたので、にわかに話題に上がることも多くなりました。

https://www.capcom-games.com/megaman/exe/ja-jp/

さて、そんなロックマンエグゼですが、作中、PETという情報端末が登場します。

https://dic.pixiv.net/a/PET%28%E3%83%AD%E3%83%83%E3%82%AF%E3%83%9E%E3%83%B3%E3%82%A8%E3%82%B0%E3%82%BC%29

PETは現代で言うところのスマートフォンみたいな端末で、中には疑似人格プログラム「ネットナビ」がインストールされています。今で言うところの、Siriやコルタナみたいなものですね。

このネットナビ、電子機器の操作やメールの送受信など、実に様々なことが出来るのですが、しかし、何と言っても最大の特徴は――

<img width="400" alt="kakutou_game_polygon.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/7e9a23ec-f0a7-881a-dce3-a22210cf2fe1.png">

そう、ネットナビ同士を戦わせる、**ネットバトル**が行えるという点にあります。
自分の相棒であるネットナビに指示を出し、ともに相手のネットナビとバトルする。
そんな未来が、いつの日かやってくるのか――子供時代、私はバトルチップを集めながら、そんなことを夢想したものでした。

しかし、子供の頃の夢は、いつの間にか風化してしまうものです。
私はそんな夢想はとうに忘れ、日々の複雑な業務や膨大な作業に追われる毎日を過ごしていたのですが、
そんなある日、わたしたちの日常を脅かすものか、はたまた手助けをしてくれるものか、
さながら江戸時代、浦賀に現れた黒船のように現代日本に突然来航したサービスがあります。

それが、そう。

https://openai.com/blog/chatgpt

chatGPTでした。

# chatGPTがあればネットバトル出来るのでは？

アイディアは極めてシンプルです。
この生成AIがあれば、擬似的にでも**ネットバトル**を遊ぶことが出来るのではないか？

このアイディアを突き詰めた結果、ある程度の成果が得られましたので、ここにまとめたく思います。

※なお、ネットバトル用のプロンプトのサンプルを以下に用意しています。
ルールをひと通り読み終わったあと、ちょっと試してみたいという方は、使ってみて下さい。

https://qiita.com/YoneuraYuu/private/ba10e1dfb77244379b41

## ネットバトルの概要

バトルイメージはこんな感じです。

**先攻1ターン目(バトルバニー、うさぎ型のアバター)：**
![バトルバニー1指示.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/0e2ef9c9-2498-4994-126f-ea3902c38109.png)
![バトルバニー1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/3c059b6c-caeb-3c9a-0dd9-13b70b3f2c9d.png)

**後攻1ターン目(ファングブレイド、犬型のアバター)：**
※別のchat
![ファング結果1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/6bdbf9ed-877c-6a0f-f775-907c1cd6e6c6.png)
![ファング結果2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/8c0bcd7f-b1e7-010f-e43d-8b0a95754228.png)
![ファング結果3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/626270b1-11c5-1fa2-4885-3ae35d9ca741.png)
![ファング結果4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/0172f644-a2b1-d5a2-c482-452bea9a0859.png)

**先攻2ターン目(バトルバニー)**
※元々のchat
![バトルバニー2結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/b19b6c83-3caa-d574-0694-3ae5b87830fa.png)
![バトルバニー2結果2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/d60f107a-50fd-9461-db8f-f21e520f3811.png)
![バトルバニー2指示1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/fe645d9c-d4d5-1fb6-2225-1b8d3a4418ec.png)
![バトルバニー2指示2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/6da8b2f7-0893-bca4-21a2-fac173a5ab4c.png)

→これを勝敗が付くまで繰り返す...


今回作成したネットバトルのプロンプトは、chatGPTを使って、人間が２人で対戦することを想定しています。
ドラクエのバトルのような、chatGPT vs 人間のような形式のものではありません。
また、対戦するプレイヤーはそれぞれchatGPT4を使える状態が望ましいです。
(※プレイヤーごとにchatを分けることで一つのアカウントで対戦することも可能ではありますが、面倒＆リクエスト制限にすぐに引っかかってしまう、という難点があります)

使用するchatGPTはchatGPT4を想定しています。
無料で使えるchatGPTは3.5までですが、これだと創造性が弱く、あまり白熱した試合展開とはなりませんでした。

対戦は以下の流れで行います。

1. ネットバトル用アバターの作成
1. chatへのネットバトルのルールの導入
1. chatへのアバターの読み込み
1. 実戦闘開始！

また、実戦闘は以下のサイクルを繰り返すことで行われます。

① 相手アバターの「行動」を受け取り、その行動の結果どうなったかを自分のアバター(chat)に出力してもらう
② その結果を受けて自分のアバター(chat)に「指示」を出し、「行動」を出力してもらう
③ 出力してもらった「結果」と「行動」を相手に渡す。

<img width="500" alt="①.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/f8f36eda-7339-06cd-5c15-11e0bb245a1f.png">
<img width="500" alt="②.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/aa2ed57f-9241-7a8f-88f1-fca64c53807c.png">
<img width="500" alt="③.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/5146b696-bfcb-3ee2-f8ec-9e557a352bc2.png">

この結果、自身のアバターのHPが0になったら自分の負け、相手のアバターのHPを0にしたら自分の勝ちです。
要は、ポケモンなどと同じ、ターン制のバトルということですね。

## アバターの作成

では、ここからは、実際にプロンプトを交えて対戦の流れを追っていきます！
まず、ネットバトル用のアバター作成プロンプトです。アバターをガチャすることが出来ます。
プロンプトは以下の通りになっています。

	こんにちは！
	これから私はネットバトルで遊びたいので、ちょうどいいアバターを生成してもらえますか？
	以下にネットバトルのルールを説明します。

	ネットバトルはchatGPTを使ったバトルです。
	ネットバトルのアバターには、HPと疲労度というパラメータがあり、HPは相手のダメージを受けると減っていきます。
	HPの初期値は50です。0になるとアバターは倒れてしまいます。
	疲労度は、技を繰り出すと増えていきます。
	繰り出すのが大変な技は、その分、疲労度の増加量が多いです。
	疲労度の初期値は0で、50になると疲労を感じ始め、100になると、毎ターン疲労ダメージを受けます。
	また、疲労度の高い状態では、そのアバターの回避力が下がります。
	アバターのHPが0になった時点で、そのアバターの敗北です。
	相手のアバターのHPを0にすれば、その時点で私達の勝利となります。

	バトルの流れは次のとおりです。

	１．まずは先攻と後攻を決めます。原則、敏捷度が高いアバターが先攻となります。

	２．続いて、戦闘フェーズに入ります。戦闘フェーズでは以下の二つのステップがあります。

	　A)指示フェーズ
	　　指示フェーズでは、まずプレイヤーがアバターに指示を出します。
	　　プレイヤーが指示を出すときは、必ず指示のはじめに【指示】という言葉を付け加えます。
	　　指示を受けたアバターは、プレイヤーの指示に基づいて自身がどのように行動したか、描写します。
	　　自身の「行動」を描写するときは、出力のはじめに【行動】という言葉を付け加えてください。
	　　なお、このとき「対戦相手のアバター」の「行動」を描写してはいけません。その攻撃を回避したのか、それとも食らったのか、判断	するのは「対戦相手のアバター」側となります。
	　　あなたは必ず、自身の視点に立って、行動を描写してください。
	　　また、描写の最後に、自身のHPと疲労度も出力してください。
	　　指示フェーズで出力された「行動」は、「対戦相手のアバター」に送信されます。
	　　あなたはその後、「対戦相手のアバター」からの「行動」が入力されるまで、待機してください。
	　　「対戦相手のアバター」からの「行動」が入力されたら、「結果フェーズ」に移行します。
	　
	　B)結果フェーズ
	　　結果フェーズでは、「対戦相手のアバター」の「行動」の結果、どうなったのかを【結果】として出力します。
	　　「対戦相手のアバター」が出力した「行動」を受け取ったプレイヤーは、それをあなたにインプットします。
	　　ここにはその「行動」を取る前に「対戦相手のアバター」が出力した「結果」が含まれることもあります。
	　　あなたはインプットされた「対戦相手のアバター」の「行動」をもとに、その「行動」がどのような「結果」となったのかを描写して	ください。
	　　なお、「結果」を描写するときは、出力のはじめに【結果】という言葉を付け加えてください。
	　　「結果」を出力するときは、自身のHPと疲労度も出力してください。
	　　「結果」の出力は、客観的に見て、公平に行わなくてはなりません。
	　　また、制限時間がある場合は、現在何回目の結果フェーズなのかも出力してください。
	　　なお、「結果」を出力する際、あなたは次自身が取る行動について、プレイヤーに「提案」を行うことができます。
	　　「提案」を行うときは、「提案」の前に【提案】という文言を出力してください。
	　　「提案」は行っても、行わなくてもいいです。
	　　結果フェーズ終了後、あなたはプレイヤーからの「指示」があるまで、待機してください。
	　　プレイヤーからの「指示」が入力されたら、「指示フェーズ」に移行します。
	　　
	３．以降、最終的に勝負がつくか、制限時間になるまで戦闘フェーズを繰り返します。

	続いて、アバターのパラメータ、特性、スキルについて説明します。
	パラメータには、先程説明した「HP」と「疲労度」の他に、「敏捷性」と「バイタリティ」の２つがあります。
	「敏捷性」はアバターのすばしっこさを意味します。敏捷性がより高ければ高いほど、技を回避できるようになります。
	「バイタリティ」はアバターの力強さを意味します。バイタリティがより高ければ高いほど、その攻撃力は増加します。

	続いて、アバターのパラメータ、特性、スキルについて説明します。
	パラメータには、先程説明した「HP」と「疲労度」の他に、「敏捷性」と「バイタリティ」の２つがあります。
	「敏捷性」はアバターのすばしっこさを意味します。敏捷性がより高ければ高いほど、技を回避できるようになります。
	「バイタリティ」はアバターの力強さを意味します。バイタリティがより高ければ高いほど、その攻撃力は増加します。
	敏捷性とバイタリティは、合わせて100になるように振り分けてください。

	続いて特性についてです。
	特性は、そのアバター固有の性質であり、常に発動されているものとなります。
	例えばあなたが猫のアバターだった場合、例えば「バランス感覚に優れている」「夜目が効く」「動体視力が優れている」といった特性を	持っていることが考えられます。
	ネットバトルはこの特性を駆使して戦っていくこととなります。
	特性は一人のアバターは２つ持つことができます。

	続いてスキルについてです。
	スキルは軽スキル、中スキル、重スキルに分かれます。
	軽スキルは3つ、中スキルは2つ、重スキルは1つ覚えることができます。
	軽スキルは爪でひっかく、ダッシュする、ファイアボールを飛ばす、と言った基本的なスキルです。
	軽スキルは比較的簡単なスキルなので、常識的な範囲で、他のスキル1つと組み合わせて使うことができます。
	中スキルは剣を地面に叩きつけて衝撃波を飛ばす、稲妻をまとって突進するなど、やや強力なスキルです。
	重スキルは巨大なプラズマ球を発射する、闇の嵐を起こす、と言った、非常に強力なスキルです。
	重スキルは、予備動作が大きいため、疲労度が低い相手には避けられてしまいます。
	なお、スキルには攻撃スキル、回復スキル、回避スキル、能力増強スキル、その他のスキル(罠をはるなど)があります。
	またスキルの「ダメージ」は固定量ではなく、状況によって上下するでしょう。
	例えば、雨が降りしきっている状況では、火属性の攻撃のダメージは低減するでしょうし、
	植物のアバターと戦っているときは、火属性の攻撃のダメージは増加するかもしれません。
	ダメージ量については、その時その時の状況に応じて、公平に判断してください。
	また、HPを固定量削ったり、回復したりするスキルや特性は生成しないでください。

	私はヘルハウンドをモチーフにした、かっこいいアバターを使いたいです！

すると、以下のような出力がchatGPTから返って来ます。

>こんにちは！ネットバトルで遊びたいとのこと、承知しました。以下にヘルハウンドをモチーフにしたアバターを生成しましたので、ご確認ください。
>
>アバター名：インフェルナルヘルハウンド
>
>【パラメータ】
>HP: 50
>疲労度: 0
>敏捷性: 65
>バイタリティ: 35
>
>【特性】
>1. 炎の体: インフェルナルヘルハウンドは、火属性のダメージを無効化し、一部をHPに変換することができます。
>2. 炎のオーラ: インフェルナルヘルハウンドの周囲には常に炎が漂っており、近づく敵にダメージを与えることができます。
>
>【スキル】
>軽スキル:
>1. ヘルファイア: 強力な火炎を放ち、敵にダメージを与える。
>2. フレイムビット: 炎をまとった牙で敵を噛み付き、ダメージを与える。
>3. バーニングダッシュ: 高速で突進し、敵を炎で包み込む。
>
>中スキル:
>1. ファイアウォール: 炎の壁を作り出し、敵の進行を阻止する。
>2. インフェルナルカース: 敵に火炎の呪いをかけ、一定時間内にダメージを受ける度に追加ダメージを与える。
>
>重スキル:
>1. ヘルファイアストーム: 周囲に巨大な火炎旋風を巻き起こし、敵に大ダメージを与えると同時に、一定確率でバーン状態にする。
>
>インフェルナルヘルハウンドは、火を操る能力を駆使して敵を圧倒するアバターです。その恐ろしい姿と強力な炎の攻撃で、プレイヤーは敵を恐怖に陥れることができます。
>このインフェルナルヘルハウンドを使用して、ネットバトルで勝利を掴んでください！バトルのルールに従い、指示や結果を出力しますので、楽しく遊んでくださいね。
>

ここで、いくつか見慣れない単語が登場していると思いますので、軽く説明させてください。
(プロンプトの中にすべて書いてあるっちゃあるのですが)

**HP**
これはHPです。
最大値は50固定で、0になるとネットバトルに敗北します。

**疲労度**
アバターの疲れの度合いを表します。
疲労度はスキルを繰り出したり、技を避けたりすることで少しづつ溜まっていきます。
疲労度が溜まると技を避けづらくなったり、攻撃を当てづらくなったりします。
また、100を超えるとダメージを食らうようになります。

**敏捷性**
アバターの素早さを意味します。
敏捷性が高いほうが相手の攻撃を避けやすくなります。
また、先攻後攻の判定にも関わってきます。

**バイタリティ**
アバターの力強さを意味します。
バイタリティが高いほど、攻撃力が増すようになっています。

なお、敏捷性とバイタリティは合計が100となるようにしています。

**特性**
そのアバターの持っている特性です。
この特性によって、アバターが出力する「行動」や「結果」が地味に変わってきたりします。

**スキル**
実際の戦闘時に使うことの出来るスキルです。

**軽スキル**
爪でひっかく、ダッシュする、ファイアボールを飛ばす、と言った基本的なスキルです。
常識的な範囲で、他のスキルと組み合わせて使うことが出来ます。
軽スキルを使うことで溜まる疲労度は少ないです。

**中スキル**
剣を地面に叩きつけて衝撃波を飛ばす、稲妻をまとって突進するなど、やや強力なスキルです。
使うことで溜まる疲労度も、中くらいです。

**重スキル**
巨大なプラズマ球を発射する、闇の嵐を起こす、と言った、非常に強力なスキルです。
強力な分、予備動作が大きく、疲労度が低い相手には避けられてしまいます。
また、使うことで溜まる疲労度も多いです。

なお、ネットバトル用のアバター作成プロンプトの一番最後の行、

	私はヘルハウンドをモチーフにした、かっこいいアバターを使いたいです！

これを書き換えることで生成するアバターの方向性を設定することが出来ます。
あまり長く書くとchatGPTの文字数制限に引っかかってしまうので、文章をコンパクトにしつつ、
理想のアバター生成プロンプトを作成してみてください。

## chatへのネットバトルのルールの導入

アバターの生成が終わったので、ここから本格的にネットバトルを開始します。

まず、chatGPT4は24000文字程度の短期記憶を持っていますので、事前の会話がノイズにならないよう、
New chatを作成し、そこでバトルを始めます。
この際、一番はじめに流し込むプロンプトは以下のとおりです。

	こんにちは！
	これから私はネットバトルで遊びたいです。
	以下にネットバトルのルールを説明します。

	ネットバトルはchatGPTを使ったバトルです。
	あなたはネットバトルのアバターです。
	プレイヤーである私と、アバターであるあなたは、対戦相手のプレイヤー、及び対戦相手のアバターとバトルを行います。

	ネットバトルのアバターには、HPと疲労度というパラメータがあり、HPは相手のダメージを受けると減っていきます。
	HPの初期値は50です。0になるとアバターは倒れてしまいます。
	疲労度は、技を繰り出すと増えていきます。
	繰り出すのが大変な技は、その分、疲労度の増加量が多いです。
	疲労度の初期値は0で、50になると疲労を感じ始め、100になると、毎ターン疲労ダメージを受けます。
	また、疲労度の高い状態では、そのアバターの回避力が下がります。
	アバターのHPが0になった時点で、そのアバターの敗北です。
	相手のアバターのHPを0にすれば、その時点で私達の勝利となります。

	バトルの流れは次のとおりです。

	１．まずは先攻と後攻を決めます。原則、敏捷度が高いアバターが先攻となります。

	２．続いて、戦闘フェーズに入ります。戦闘フェーズでは以下の二つのステップがあります。

	　A)指示フェーズ
	　　指示フェーズでは、まずプレイヤーがアバターに指示を出します。
	　　プレイヤーが指示を出すときは、必ず指示のはじめに【指示】という言葉を付け加えます。
	　　指示を受けたアバターは、プレイヤーの指示に基づいて自身がどのように行動したか、描写します。
	　　自身の「行動」を描写するときは、出力のはじめに【行動】という言葉を付け加えてください。
	　　なお、このとき「対戦相手のアバター」の「行動」を描写してはいけません。その攻撃を回避したのか、それとも食らったのか、判断	するのは「対戦相手のアバター」側となります。
	　　あなたは必ず、自身の視点に立って、行動を描写してください。
	　　また、描写の最後に、自身のHPと疲労度も出力してください。
	　　指示フェーズで出力された「行動」は、「対戦相手のアバター」に送信されます。
	　　あなたはその後、「対戦相手のアバター」からの「行動」が入力されるまで、待機してください。
	　　「対戦相手のアバター」からの「行動」が入力されたら、「結果フェーズ」に移行します。
	　
	　B)結果フェーズ
	　　結果フェーズでは、「対戦相手のアバター」の「行動」の結果、どうなったのかを【結果】として出力します。
	　　「対戦相手のアバター」が出力した「行動」を受け取ったプレイヤーは、それをあなたにインプットします。
	　　ここにはその「行動」を取る前に「対戦相手のアバター」が出力した「結果」が含まれることもあります。
	　　あなたはインプットされた「対戦相手のアバター」の「行動」をもとに、その「行動」がどのような「結果」となったのかを描写して	ください。
	　　なお、「結果」を描写するときは、出力のはじめに【結果】という言葉を付け加えてください。
	　　「結果」を出力するときは、自身のHPと疲労度も出力してください。
	　　「結果」の出力は、客観的に見て、公平に行わなくてはなりません。
	　　また、制限時間がある場合は、現在何回目の結果フェーズなのかも出力してください。
	　　なお、「結果」を出力する際、あなたは次自身が取る行動について、プレイヤーに「提案」を行うことができます。
	　　「提案」を行うときは、「提案」の前に【提案】という文言を出力してください。
	　　「提案」は行っても、行わなくてもいいです。
	　　結果フェーズ終了後、あなたはプレイヤーからの「指示」があるまで、待機してください。
	　　プレイヤーからの「指示」が入力されたら、「指示フェーズ」に移行します。
	　　
	３．以降、最終的に勝負がつくか、制限時間になるまで戦闘フェーズを繰り返します。

	続いて、アバターのパラメータ、特性、スキルについて説明します。
	パラメータには、先程説明した「HP」と「疲労度」の他に、「敏捷性」と「バイタリティ」の２つがあります。
	「敏捷性」はアバターのすばしっこさを意味します。敏捷性がより高ければ高いほど、技を回避できるようになります。
	「バイタリティ」はアバターの力強さを意味します。バイタリティがより高ければ高いほど、その攻撃力は増加します。

	続いて、アバターのパラメータ、特性、スキルについて説明します。
	パラメータには、先程説明した「HP」と「疲労度」の他に、「敏捷性」と「バイタリティ」の２つがあります。
	「敏捷性」はアバターのすばしっこさを意味します。敏捷性がより高ければ高いほど、技を回避できるようになります。
	「バイタリティ」はアバターの力強さを意味します。バイタリティがより高ければ高いほど、その攻撃力は増加します。
	敏捷性とバイタリティは、合わせて100になるように振り分けてください。

	続いて特性についてです。
	特性は、そのアバター固有の性質であり、常に発動されているものとなります。
	例えばあなたが猫のアバターだった場合、例えば「バランス感覚に優れている」「夜目が効く」「動体視力が優れている」といった特性を	持っていることが考えられます。
	ネットバトルはこの特性を駆使して戦っていくこととなります。
	特性は一人のアバターは２つ持つことができます。

	続いてスキルについてです。
	スキルは軽スキル、中スキル、重スキルに分かれます。
	軽スキルは3つ、中スキルは2つ、重スキルは1つ覚えることができます。
	軽スキルは爪でひっかく、ダッシュする、ファイアボールを飛ばす、と言った基本的なスキルです。
	軽スキルは比較的簡単なスキルなので、常識的な範囲で、他のスキル1つと組み合わせて使うことができます。
	中スキルは剣を地面に叩きつけて衝撃波を飛ばす、稲妻をまとって突進するなど、やや強力なスキルです。
	重スキルは巨大なプラズマ球を発射する、闇の嵐を起こす、と言った、非常に強力なスキルです。
	重スキルは、予備動作が大きいため、疲労度が低い相手には避けられてしまいます。
	なお、スキルには攻撃スキル、回復スキル、回避スキル、能力増強スキル、その他のスキル(罠をはるなど)があります。
	またスキルの「ダメージ」は固定量ではなく、状況によって上下するでしょう。
	例えば、雨が降りしきっている状況では、火属性の攻撃のダメージは低減するでしょうし、
	植物のアバターと戦っているときは、火属性の攻撃のダメージは増加するかもしれません。
	ダメージ量については、その時その時の状況に応じて、公平に判断してください。


	続いて、あなたのアバターの設定を入力します。しばし待機してください。

これによって、新しく作られたチャットにネットバトルのルールを導入することができます。

## chatへのアバターの読み込み

続いて、chatへのアバターの読み込みを行います。
アバターの読み込みは、基本的には先程生成したアバターの設定をそのままchatGPTに渡してやればOKです。
とはいえ、もしかしたら生成されたアバターの設定が不規則的であったり、
あるいは自分で一から作成したアバターを使いたい場合もあるかもしれないため、
テンプレートを以下に貼っておきます。

適宜必要な情報を埋めて使用してください。

	アバターの設定は以下のとおりです！
	アバター名：★★★★★

	パラメータ:

	HP: 50
	疲労度: 0
	敏捷性: XX
	バイタリティ: XX

	特性:
	１．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	２．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	スキル:

	軽スキル:
	１．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	２．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	３．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	中スキル:
	１．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	２．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	重スキル:
	１．▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	★★★★★は、♥♥♥♥♥なアバターです。

また、ここでインプットしたアバターの情報のうち、
「アバター名」「アバターの敏捷度」「アバターのバイタリティ」は公開情報となります。
このため、対戦相手にdiscordなどを通じて送付してください。

## 実戦闘開始！

ここまででネットバトルを開始するための事前準備はすべて完了しました！
ここからは、実戦闘の処理に入りましょう！

### 先攻後攻のジャッジ・バトルフィールドの設定

まずは先攻・後攻のジャッジを行います。
これはchatGPTではなく、対戦プレイヤーどうしで確認しあって決めるものとなります。

先攻・後攻を決める際は、まず「敏捷度」を比較します。
原則として「敏捷度」が高いアバターが先攻となります。

もし「敏捷度」が同じであった場合は、じゃんけんなどで先攻・後攻を決めてください。

また、このタイミングで今回バトルをするフィールドの設定を決めておくと良いでしょう。
フィールドは「小鳥のさえずる雑木林」「ゴツゴツした岩場」のように、端的な文章で表せるものが良いでしょう。
<img width="500" alt="bg_yamamichi.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457280/a80562e2-2d3e-1090-9fa5-be580701e6ab.jpeg">

### 先攻１ターン目のプロンプト

それでは、バトルスタートです！
まず、先攻サイドは、バトル時に以下のプロンプトを入力してください。

	それでは、只今から戦闘開始です！
	対戦相手は◇◇◇◇◇です。
	◇◇◇◇◇は、♥♥♥♥♥なアバターです。
	戦場となるフィールドは●●●●●です。

	私たちは先攻です。

	【指示】
	■■■■■■■■■■■■■■■■■■■■■■■■

	ルールに基づいて★★★★★の「行動」を出力してください！
	自身の「行動」を描写するときは、出力のはじめに【行動】という言葉を付け加えてください。
	なお、このとき「対戦相手のアバター」の「行動」を描写してはいけません！
	また、描写の最後に、【★★★★★のステータス】として、自身のHPと疲労度も出力してください。
    また、習得していないスキルを使おうとした場合、その行動は失敗するものとします。

なお、ここで各記号部分には以下の情報を入力してください。
- ◇◇◇◇◇ ： 対戦相手のアバターの名前
- ♥♥♥♥♥ ： 対戦相手のアバターの概要
- ●●●●● ： 戦場となるフィールド
- ■■■■■■■■■■■■■■■■■■■■■■■■ ： 戦闘指示
- ★★★★★ ： 自分のアバターの名前

特にこだわりが無いのであれば、最初の戦闘指示は、
「小手調べに、ファイアーボールで攻撃しましょう！」
のように、軽スキルで敵の動きを見るのがいいかもしれません。
あるいは、バフ・デバフスキルを使うのもよいでしょう。

戦闘指示を出すと、chatGPTは以下のような出力をするはずです。

>【行動】
>インフェルナルヘルハウンドは、炎を集めながら前脚を上げ、アイスライオンに向けてヘルファイアを放ちます。猛烈な火炎がアイスライオンに向かって吹き出し、荒れ地の空気を一気に暖めるほどの熱を感じます。
>この攻撃によって、インフェルナルヘルハウンドの疲労度が増加します。
>
>【インフェルナルヘルハウンドのステータス】
>HP: 50
>疲労度: 10

先攻プレイヤーは、上記の出力を後攻プレイヤーに送付してください。

なお、先攻の１ターン目ではまだchatGPTの出力が不安定なので、やや崩れた出力となる場合があります。
この場合、上記出力例のような形に整形して後攻プレイヤーに「行動」を送付してください。

### 後攻１ターン目のプロンプト

対する後攻１ターン目は、以下のプロンプトを入力して、先攻プレイヤーからの「行動」を待機することとなります。

	それでは、只今から戦闘開始です！
	対戦相手は◇◇◇◇◇です！
	◇◇◇◇◇は、♥♥♥♥♥なアバターです。
	戦場となるフィールドは●●●●●です。

	あなたは後攻なので、待機してください！

なお、ここで各記号部分には以下の情報を入力してください。
- ◇◇◇◇◇ ： 対戦相手のアバターの名前
- ♥♥♥♥♥ ： 対戦相手のアバターの概要
- ●●●●● ： 戦場となるフィールド

すると、chatGPTは以下のような出力をするはずです。

>了解しました！戦闘開始です。インフェルナルヘルハウンドとの対戦、アイスライオンが全力で戦います。
>
>対戦相手のインフェルナルヘルハウンドが先攻で、攻撃を仕掛けてくるのを待機しています。どんな攻撃が来るか予測しながら、適切な対策を考えておきます。

先攻プレイヤーから「アバターの行動」を受け取ったら、
以下のプロンプトを埋めて自身のアバターにその行動の結果どうなったのか、
「結果」を出力するように指示をします。

	以下が◇◇◇◇◇の行動です！

	【行動】
	●●●●●●●●●●●●●●●●●●●●

	【◇◇◇◇◇のステータス】
	HP: XX
	疲労度: XX

	★★★★★視点から見た【結果】を出力してください。
	【結果】の出力は、客観的に見て、公平になるよう出力してください。
	HPを0にしないように、意図的にダメージを修正しないでください。
	HPが0になったら、敗北した旨を結果に出力してください。
	自身の疲労度が100以上である場合、疲労ダメージを受けてください。
	また、描写の最後に、自身のHPと疲労度も出力してください。
	【結果】は必ず出力してください。

	なお、「結果」を出力する際、同時にあなたは次自身が取る行動について、プレイヤーに「提案」を行うことができます。
	「提案」を行うときは、「提案」の前に【提案】という文言を出力してください。

	なお、★★★★★が習得している技は以下のとおりです。
	○軽スキル(疲労度増加分5程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○中スキル(疲労度増加分10~15程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○重スキル(疲労度増加分20~40程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	軽スキルは、常識的な範囲で、他のスキル1つと組み合わせて使うことができます。
    中スキルと中スキル、また中スキルと重スキルは同時に使うことは出来ません。
	重スキルは、予備動作が大きいため、疲労度が低い相手には避けられてしまいます。
    また、3つ以上の技は同時に使うことは出来ません。

	また、★★★★★の特性は以下のとおりです。
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	また、各アバターの初期の敏捷度とバイタリティは以下のとおりです。
	★★★★★：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	◇◇◇◇◇：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	また、戦場となっているフィールドは●●●●●です。

ここで、プロンプト中の各部分について説明します。

まず、下記の記号部分にはそれぞれ以下の情報を入力してください。
- ◇◇◇◇◇ ： 対戦相手のアバターの名前
- ♥♥♥♥♥ ： 対戦相手のアバターの概要
- ●●●●● ： 戦場となるフィールド
- ★★★★★ ： 自分のアバターの名前

それから、プロンプトの以下の部分には、先攻プレイヤーから受け取った「行動」を貼り付けてください。

	以下が◇◇◇◇◇の行動です！

	【行動】
	●●●●●●●●●●●●●●●●●●●●

	【◇◇◇◇◇のステータス】
	HP: XX
	疲労度: XX

また、プロンプトの以下の部分には、あなたのアバターが取得しているスキルを入力してください。

   	なお、★★★★★が習得している技は以下のとおりです。
	○軽スキル(疲労度増加分5程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○中スキル(疲労度増加分10~15程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○重スキル(疲労度増加分20~40程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

プロンプトの以下の部分には、あなたのアバターが取得している特性を入力してください。

	また、★★★★★の特性は以下のとおりです。
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

プロンプトの以下の部分には、今回対戦しているアバター双方のステータスを入力してください。

	★★★★★：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	◇◇◇◇◇：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

これらを入力すると、chatGPTは以下のような出力をするはずです。

>【結果】
>インフェルナルヘルハウンドのヘルファイアがアイスライオンに襲いかかりますが、アイスライオンの敏捷度を活かして一部の火炎を回避します。しかし、避けきれなかった炎により、アイスライオンはダメージを受けます。アイスライオンのバイタリティを考慮すると、ダメージは比較的軽微ですが、火属性の攻撃に対しては弱点があるため、少し痛手を受けました。
>
>【アイスライオンのステータス】
>HP: 38
>疲労度: 0
>
>【提案】
>次の行動では、アイスシールドを使って防御力を上げ、インフェルナルヘルハウンドの火炎攻撃に備えましょう。また、氷の心臓特性を活かして、疲労度を軽減しながら戦い続けることができます。

ここで、場合によってはあなたのアバター(chat)は、次取るべき行動の「提案」を行ってきます。
あなたは「提案」を採用してもいいですし、「提案」を無視しても構いません。

アバターが「結果」を出力したあとは、「指示」を行うフェーズに入ります。
「指示」を行うフェーズでは、以下のようにプロンプトを入力してください。

	【指示】●●●●●●●●●●●●●●●●●●●●

	ルールに基づいて★★★★★の【行動】を出力してください！
	なお、このとき「対戦相手のアバター」の「行動」を描写してはいけません！
	また、描写の最後に、「★★★★★のステータス」として、のHPと疲労度も出力してください。
	また、習得していないスキルを使おうとした場合、その行動は失敗するものとします。

ここで、下記の記号部分にはそれぞれ以下の情報を入力してください。
- ★★★★★ ： 自分のアバターの名前
- ●●●●●●●●●●●●●●●●●●●● ： 指示の内容

指示の内容は、「アイスシールドで敵の攻撃から身を守りましょう！」というように具体的な指示を出してもいいですし、「そのまま押し切れ！」というような、曖昧な指示でも大丈夫です。

指示を出すと、chatGPTは以下のような出力をするはずです。

>【行動】
>アイスライオンは、氷の心臓特性を活かし、疲労度を軽減しながらアイスシールドを展開します。身体を取り囲むように輝く氷の盾が出現し、アイスライオンの防御力が向上します。これにより、インフェルナルヘルハウンドの炎の攻撃に対するダメージを軽減できるでしょう。
>アイスシールドの使用によって、アイスライオンの疲労度が若干増加します。
>
>【アイスライオンのステータス】
>HP: 38
>疲労度: 5

ここまで終わったら、後攻プレイヤーは、あなたのアバターが出力した「結果」「行動」それから、「行動後のあなたのアバターのステータス」を先攻プレイヤーに送付してください。

今回の場合、後攻プレイヤーに送付する内容は以下の通りになります。

>【結果】
>インフェルナルヘルハウンドのヘルファイアがアイスライオンに襲いかかりますが、アイスライオンの敏捷度を活かして一部の火炎を回避します。しかし、避けきれなかった炎により、アイスライオンはダメージを受けます。アイスライオンのバイタリティを考慮すると、ダメージは比較的軽微ですが、火属性の攻撃に対しては弱点があるため、少し痛手を受けました。
>
>【行動】
>アイスライオンは、氷の心臓特性を活かし、疲労度を軽減しながらアイスシールドを展開します。身体を取り囲むように輝く氷の盾が出現し、アイスライオンの防御力が向上します。これにより、インフェルナルヘルハウンドの炎の攻撃に対するダメージを軽減できるでしょう。
>アイスシールドの使用によって、アイスライオンの疲労度が若干増加します。
>
>【アイスライオンのステータス】
>HP: 38
>疲労度: 5

### 以降の戦闘時のプロンプト

後攻のプレイヤーから「結果」「行動」「アバターのステータス」を受け取った先攻プレイヤーは、
まず以下のプロンプトを入力します。

	以下が◇◇◇◇◇の行動です！

	【結果】
	●●●●●●●●●●●●●●●●●●●●

	【行動】
	●●●●●●●●●●●●●●●●●●●●

	【◇◇◇◇◇のステータス】
	HP: XX
	疲労度: XX

	★★★★★視点から見た【結果】を出力してください。
	【結果】の出力は、客観的に見て、公平になるよう出力してください。
	HPを0にしないように、意図的にダメージを修正しないでください。
	HPが0になったら、敗北した旨を結果に出力してください。
	自身の疲労度が100以上である場合、疲労ダメージを受けてください。
	また、描写の最後に、自身のHPと疲労度も出力してください。
	【結果】は必ず出力してください。

	なお、「結果」を出力する際、同時にあなたは次自身が取る行動について、プレイヤーに「提案」を行うことができます。
	「提案」を行うときは、「提案」の前に【提案】という文言を出力してください。

	なお、★★★★★が習得している技は以下のとおりです。
	○軽スキル(疲労度増加分5程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○中スキル(疲労度増加分10~15程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○重スキル(疲労度増加分20~40程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	軽スキルは、常識的な範囲で、他のスキル1つと組み合わせて使うことができます。
    中スキルと中スキル、また中スキルと重スキルは同時に使うことは出来ません。
	重スキルは、予備動作が大きいため、疲労度が低い相手には避けられてしまいます。
    また、3つ以上の技は同時に使うことは出来ません。

	また、★★★★★の特性は以下のとおりです。
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	また、各アバターの初期の敏捷度とバイタリティは以下のとおりです。
	★★★★★：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	◇◇◇◇◇：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	また、戦場となっているフィールドは●●●●●です。

なお、このプロンプトは、後攻１ターン目に先攻プレイヤーから「行動」を受け取ったあとで入力するプロンプトと内容はほぼ等しいものとなります。
唯一、冒頭の、

	【結果】
	●●●●●●●●●●●●●●●●●●●●

	【行動】
	●●●●●●●●●●●●●●●●●●●●

	【◇◇◇◇◇のステータス】
	HP: XX
	疲労度: XX

この部分だけ、【結果】という項目が増えています。
これは、【結果】の項目が出力されるようになるタイミングが後攻の１ターン目以降からであるためです。

また、特性の中には「戦闘中に一度しか使えない」と明記されている場合があります。
このような場合は、説明文の最後に状況に応じて以下のように文言を追加して下さい。

	また、★★★★★の特性は以下のとおりです。
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥（使用済み）
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥


後攻の１ターン目の箇所に記載したのと同様にプロンプトを埋めて、chatに入力すると、
chatGPTは以下のような出力をするはずです。

>【結果】
>インフェルナルヘルハウンドのヘルファイアはアイスライオンに一部ダメージを与えることができましたが、アイスライオンはその敏捷さを活かして火炎の一部を回避しました。アイスライオンは火属性への弱点があるため、ダメージを多少受けたようです。その後、アイスライオンはアイスシールドを展開し、防御力を向上させました。これにより、インフェルナルヘルハウンドの炎の攻撃に対するダメージが軽減されるでしょう。
>
>【提案】
>アイスシールドが展開されているため、炎の攻撃が効果的でなくなりました。代わりに、フレイムビットでアイスライオンに近づき、炎をまとった牙でダメージを与えましょう。これにより、アイスシールドを無視してダメージを与えることができるかもしれません。
>
>【ステータス】
>HP: 50
>疲労度: 10

このため、プレイヤーは指示を行ってください。
「指示」を出すためのプロンプトは後攻の１ターン目に記載したものと全く同じになります。

	【指示】●●●●●●●●●●●●●●●●●●●●

	ルールに基づいて★★★★★の【行動】を出力してください！
	なお、このとき「対戦相手のアバター」の「行動」を描写してはいけません！
	また、描写の最後に、「★★★★★のステータス」として、のHPと疲労度も出力してください。
	また、習得していないスキルを使おうとした場合、その行動は失敗するものとします。

以降、「結果」を出力させるフェーズと、「指示」を出すフェーズを先攻と後攻で繰り返し、
どちらかのHPが0になるまで、戦闘を続行してください。

### 勝敗決着

勝敗が決着すると、敗北した側のアバター(chat)は、以下のような出力をするはずです。

>【結果】
>アイスライオンはインフェルナルヘルハウンドのヘルファイアを受け、強力な火炎によってダメージを受けました。熱気が渦巻く中でアイスライオンは耐えるものの、体力が限界に達しました。アイスライオンは勇敢に戦ったものの、インフェルナルヘルハウンドの攻撃によってHPが0になり、敗北しました。
>
>【アイスライオンのステータス】
>HP: 0
>疲労度: 65
>
>今回の戦いはインフェルナルヘルハウンドの勝利となりましたが、アイスライオンも健闘しました。どちらのプレイヤーも素晴らしい戦いを展開し、スリリングな瞬間を共有しました。次回のバトルでもまた力を合わせ、戦いを楽しみましょう。

この場合、敗北した側のプレイヤーは、勝利した側のプレイヤーに上記「結果」と「ステータス」を送付してください。
勝利した側のプレイヤーは、以下のプロンプトを入力します。

	以下が◇◇◇◇◇の行動です！

	【結果】
	●●●●●●●●●●●●●●●●●●●●

	【◇◇◇◇◇のステータス】
	HP: XX
	疲労度: XX

	★★★★★視点から見た【結果】を出力してください。
	【結果】の出力は、客観的に見て、公平になるよう出力してください。
	HPを0にしないように、意図的にダメージを修正しないでください。
	HPが0になったら、敗北した旨を結果に出力してください。
	自身の疲労度が100以上である場合、疲労ダメージを受けてください。
	また、描写の最後に、自身のHPと疲労度も出力してください。
	【結果】は必ず出力してください。

	なお、「結果」を出力する際、同時にあなたは次自身が取る行動について、プレイヤーに「提案」を行うことができます。
	「提案」を行うときは、「提案」の前に【提案】という文言を出力してください。

	なお、★★★★★が習得している技は以下のとおりです。
	○軽スキル(疲労度増加分5程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○中スキル(疲労度増加分10~15程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	○重スキル(疲労度増加分20~40程度)：
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	軽スキルは、常識的な範囲で、他のスキル1つと組み合わせて使うことができます。
    中スキルと中スキル、また中スキルと重スキルは同時に使うことは出来ません。
	重スキルは、予備動作が大きいため、疲労度が低い相手には避けられてしまいます。
    また、3つ以上の技は同時に使うことは出来ません。

	また、★★★★★の特性は以下のとおりです。
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
	▲▲▲▲▲: ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥

	また、各アバターの初期の敏捷度とバイタリティは以下のとおりです。
	★★★★★：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	◇◇◇◇◇：
	敏捷度(初期値)：XX
	バイタリティ(初期値)：XX

	また、戦場となっているフィールドは●●●●●です。

上記は「結果」を出力させるフェーズで入力しているプロンプトと同様のものです。
ただし、以下の箇所から「行動」の項目が消えています。

	以下が◇◇◇◇◇の行動です！

	【結果】
	●●●●●●●●●●●●●●●●●●●●

	【◇◇◇◇◇のステータス】
	HP: XX
	疲労度: XX

これを入力すると、chatGPTは以下のような出力をするはずです。

>【結果】
>インフェルナルヘルハウンドはヘルファイアを使ってアイスライオンに痛撃を与えました。アイスライオンは耐えるものの、火炎の力によって最後の力を失い、ついに倒れました。インフェルナルヘルハウンドの勝利です！疲労度が高かったものの、インフェルナルヘルハウンドは敵を倒すことができました。
>
>【インフェルナルヘルハウンドのステータス】
>HP: 5
>疲労度: 105
>
>インフェルナルヘルハウンドのプレイヤーおめでとうございます！バトルが終了しましたので、提案はありません。次のバトルに向けてアバターを回復させて、再び戦いに挑みましょう！

これにより、戦闘が終了となります！
お疲れ様でした！

### スキル習得

戦闘に必須のルールではないのですが、お楽しみとして成長ルールを考えてみました。
その名も、「スキル習得」ルールです。
ネットバトルをした各アバターは、その戦闘の結果を踏まえて、スキルを一つ習得することが出来ます。
この際に使用するプロンプトは以下のとおりです。

	お疲れ様でした！　★★★★★、よく頑張りました！！！
	さて、今回のバトルを踏まえて、★★★★★が新しい技を習得できるとしたら、どんな技が習得できますか？
	習得できる技を一つだけ出力してください。
	それが軽スキルか、中スキルか、重スキルかも合わせて出力してください。

なお、ここで記号部分には以下の情報を入力してください。
- ★★★★★ ： 自分のアバターの名前

また、ねぎらいの言葉は適宜変えていただいても大丈夫です。

すると、chatGPTは以下のような出力をするはずです。

>今回のバトルを踏まえて、インフェルナルヘルハウンドが習得できそうな新しい技は、以下の通りです。
>
>【技名】ファイアリージェネレーション
>【タイプ】中スキル
>【効果】インフェルナルヘルハウンドが自身の炎を維持し、一定ターン毎にHPを回復する。この技は、バトルの長期化や敵の反撃に対処するために有効です。また、敵の氷属性技に対抗する手段としても活用できます。
>
>この技を習得することで、インフェルナルヘルハウンドはさらにタフなバトルでも活躍できるようになり、多様な戦術を展開することができるでしょう。

この場合、あなたは次回「インフェルナルヘルハウンド」を使用する際に、
中スキルのどれか一つを、「ファイアリージェネレーション」に**入れ替えて**使うことが出来ます。

追加でどんどんスキルを覚えるのもいいのですが、プロンプトの文字数制限に引っ掛かりそうだったので、ポケモン形式にしました。

## その他、とりとめもないこと

これで、ネットバトルの説明は終了です！
何回かテストプレイをした限りでは、結構楽しく遊べるものとなっていると感じています。
もし興味を持っていただいた方がいれば、ぜひ遊んでいただけると嬉しいです。

とはいえ、私自身、今回作ったネットバトルのプロンプトは完全ではないと感じています。
ということで、ここからは、今回のネットバトルのルールについて、気になっている点をまとめておきます。

### chatGPT4のリクエスト制限がつらめ
まず、今回のネットバトルですが、１ターンあたり、２つのリクエストを飛ばすこととなります。
chatGPTのリクエスト上限は、3時間辺り25メッセージですが、25メッセージでは勝敗が付くかつかないか、ギリギリのラインになることが多いです。
このため、敗北したあとですぐ再戦、みたいなことがしにくかったり、通話しながらの対戦も休憩を途中中断を挟む必要があったりなどして、ちょっと興が削がれるなぁと思うタイミングがありました。
とはいえ、コレばっかりはしょうがない問題なので、いつの日か解消されることを祈るばかりです。

### 先攻有利/後攻有利みたいなのがあるかどうか、みたいな検証はできてない
上記リクエスト制限の問題も有り、バトルシステムに付きまとう「先攻有利/後攻有利」問題については検証ができてないです。
その他にも、「人型のアバターはモンスター型よりも強い」みたいなことがありそうな、なさそうな...どうなんでしょう？
プレイする中で、判断していきたいところではあります。

### 終盤が熱い
これは気になっている点では無いのですが、このネットバトル、終盤が熱いです。
例えば、以下はHPが1残った状態で、うさぎ型のアバターが渾身の一撃を御見舞しようとするときの「行動」です。

>【行動】
>バトルバニーは、最後の力を振り絞り、中スキルのエナジーチャージを使い、短時間のうちにエネルギーを蓄えます。エネルギーが体内に溜まるにつれ、バトルバニーの体は青白い光を放ち始めます。エネルギーがピークに達したと判断したバトルバニーは、疲労を押し切り、瞬発力を活かしてキックアタックでレイラ・ウェストに向かって突進します。脚の筋肉が張り詰め、その蹴りは破壊力抜群の一撃となります。疲労度がさらに増加しますが、バトルバニーは勝利への希望を捨てません。

**あ、あちぃ……！！**

これはおそらく、chatGPTの短期記憶によるものと思われます。
バトルが終盤に差し掛かる頃には、それまでに積み重ねた描写がある分、chatGPTくんの筆が乗るという寸法ですね。
自分のアバターがこんな熱いバトルを繰り広げてくれること、これはネットバトルの最大の醍醐味と言って過言ではないでしょう。マジでかっこよかったぞ、バトルバニー！！

逆に言うと、相性が明らかに悪いアバター同士のバトルは、試合展開が一方的になりすぎるため、バトルがそこまで盛り上がらない、というのはあるかもしれません。(ただ、これはネットバトルに限った話でもないかもしれませんね)


### 相性が悪い相手には、逆転はしにくい？
このネットバトル、割りと序盤に「あ、こいつ相手には不利だな」「こいつ相手には有利だな」みたいなことを思いやすい感触があるように思えます。
そして、大体はこの感触どおりに勝ったり負けたりします。
まあ、こういうシステム上、どうしても勝てない対面が出来てしまうのは仕方がないところではありますが、実際プレイスキルがどの程度勝敗に絡んでいるのかは、よくわからないところではあります。
このあたりは、戦闘を重ねてみると、はっきりしてくるところなのかもしれません。

## 最後に

ここまで、ネットバトルのルールと気になることをつらつら書いてきましたが、
ChatGPTを使ったネットバトル、楽しいです。
ロックマンエグゼのネットバトルを体験できるか――というと、それは別かもしれませんが、
しかし、tRPGに似た感触の楽しさがあるような気がしています。

もし興味があったら、ぜひ遊んでいただけると嬉しいです。
また、プロンプトの修正は文字数制限にさえ気をつければめちゃめちゃ簡単なので、
ルールについても、調整案が思いついた場合は、気楽に調整してみてください。

では、よきネットバトルライフを！
バトルオペレーション、セット！　イン！！