![]() 分類: 開発情報 日付: 2022年11月25日公開 これはまだ先の話ですが、成金大作戦究極版でそのうち対応したいと思っている大きなことがあります。 それはネット記録で1位になった場合、その動かし方も一緒にアップロードして、1位の記録の動かし方を見たい人はダウンロードして見れるようにするという機能です。 究極版からは、敵はランダムな行動を取らない(青軍の動かし方が同じなら、AIの軍は同じ動きをする。強制終了しても一緒)ので、青軍だけの動きを棋譜(以下わかりやすいので棋譜とします)のようにまとめたら技術的には簡単にできます。大きなステージだと棋譜データもそれなりに大きくなるので、サーバーにはPOSTアップロードすることになります。 ここからは自分がこれを実装するに当たっての棋譜のフォーマットを決めている脳内を公開します。 ・1行動が何バイトになるかは可変。 ・最初に行動を表す。 上位4bit はユニットが対象なら 0 上位4bit は地形が対象なら 1 上位4bit はその他の行動(同盟解除、撤退要請など)が対象なら 2 上位4bit が 0 の場合の下位4bit の定義 0: その場に待機 1: 移動後なにもせず待機 4: 移動後右側攻撃 5: 移動後左側攻撃 : : 8: 搭載ユニット1体目が移動後何もせず待機 9: 搭載ユニット1体目が移動後右側攻撃 4 まで飛んでいるのは予備。 次の2バイトでX,Y位置。 上位4bit が 0 以外の場合はさらに次の2バイトで移動後X,Y位置 上位4bit が 1 の場合の下位4bit の定義 1: ユニット生産 2: レベルアップ 3: 都市化(陸軍) 4: 都市化(空軍) : : 次の2バイトでX,Y位置。 さらにユニット生産の場合は、次のバイトで作るユニット指定 例) 0x01,0x03,0x04,0x07,0x09 → 3,4 にいたユニットが 7,9 に移動 0x13,0x02,0x01 → 2,1 の地点を陸軍都市に 上記は暫定で、例えば座標に2バイトはもったいないので、もう少し圧縮したいですね(逆にデータサイズが問題にならないようならわかりやすさ優先で1座標に1バイト使うかも)。 あとチェックサムは必要かなと思います。 追記:0x00 になる場合は棋譜から削除が可能なのに気づきました。また移動せず攻撃も考慮しないと駄目。こういうのは実装を進めていくうちに自分の場合は気づいて適宜対応していきます。 アプリゲーム紹介 ブログで触れたゲーム 成金大作戦究極版 を公開中です。Google Play 及び App Store でダウンロード可能です。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ⇒ より最新のブログ ⇒ より以前のブログ
|
最新エントリー![]()
⇒ より以前のブログ コンテンツ分類 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() カレンダー ![]() 2025年04月 ⇒ ブログカレンダー |