Hextrategy ついに自動装備が一部できたよ!


2018年 6月12日
 
 
 いやああったあああああああああ!
 ついに突破したぞおおおおお!
 
 
 まだ中立の一部の装備だけだけど、3月の半ばからだからここまで 3ヶ月か~長かった。

 改めて3ヶ月か(ゴクリ)いままで何やってたんだろ・・・・・

 できた内容の割りに費やした月日の長さに呆然とする。
 
 
 ↓ これだけの自動装備に3ヶ月かかった(笑)


 
 
 いったい・・・何が・・・そんなに・・・・

 整理しながら説明する事にするけど、自分でも何やってるのかよく把握してない。

 さしあたって、前回は生成されたユニットとアイテムの順列を作る所までやった。
 
 
 次はコレ、装備して配置するプログラム。

 
 
 まず

nrs_copy ; 中立のユニット操作順列コピー
nis_copy ; 中立のアイテム操作順列コピー

 これはユニットとアイテムの順列を「操作用の順列にコピー」する。

 選択した No.を消去したりするので、一時データにコピーしてから使う。

 合わせてこうすると、どの国 No.でも同じソースで処理できるので便利。
 
 
 次は

un=nrs5(0) : if un>0 : mu(kn*10)=un : nrs_del un ; 領主配置

 領主は戦闘しないので基本装備はしない、するとしても後回し。

 nrs5 は総力の順列、nrs_del unは nrs1(筋力)、nrs2(魔力)、nrs5(総力)の一時順列からユニットNo. unを消去するソースルーチン。
 
 
repeat 10 ; 列の順列をリセット
 nrt1(cnt)=0 : nrt2(cnt)=0 : nrt3(cnt)=0
loop
nrt1c=0 : nrt2c=0 : nrt3c=0 ; 現在の列の順番をリセット

 この列と言うのは隊列の 1列目 2列目 3列目の事で、装備したユニット No.を装備した武器種類事にこの 1~ 3列目の順列に順番に放り込む。

 国の部隊配置の際に、この順列からユニット No.を拾って順番に配備する。

 その順列のリセット。
 
 
repeat 9,1 ; 装備
 if cnt\2=2 : nrs_eq 2 : if un=0 : nrs_eq 1 : if un=0 : break ; 2回目
 nrs_eq 1 : if un=0 : nrs_eq 2 : if un=0 : break ; 1と3回目
loop

 中立なので部隊最大配置でも 9人、装備する人材の順番を 筋力 → 魔力 → 筋力、の繰り返しでその順列から拾う事にしてる。

 これはなぜかと言うと、筋力も魔力も高いユニットをどう優先的に振り分けるか考えた結果。
 
 
 ここから装備のソースの nrs_eqに飛ぶ

 これは筋力と魔力の順列からユニットを選び出して装備の neqに飛ばし、戻ってきたら装備の種類に従って各列の順列にそのユニットNo.を振り分けるソース。
 
 
 そしてこれが肝の装備プログラムの neq

 
 
 まだ物理攻撃職しか作ってなくて、魔法やアイテムのプログラムは出来て無い。

 まず、たぶん全キャラ共通の、アイテム枠拡張の特殊装備からしている。

 キャラの装備種類データ cd(10,cn)の装備タイプを元に(前回の記事に出てる)各アルゴリズムで存在するものから武器を装備していく。

 装備した武器によって neqf(列フラグ)を設定して配置する列を指定する。
 
 
 実際の部隊配置プログラムは元のソースに戻って

 (そうだコレ、2列目の前に3列目を先に処理するんだった、そうすれば遠距離を優先的に後列に配備できるはず)

 これになる。

 1列目の優先順位は 1、2、3列の順、2列目の優先順位は 2、1、3の順、3列目は 3、2、1の順に参照する。

 これは放り込まれるユニットがどれかの順列に偏るし、その列の順列に無い場合の優先順位。

 もちろん全部無くなったら配置されない。
 
 
 
 テスト、中立の 20国


 
 
 1列目

 
 
 まだバグってる、両手持ちなのに・・・


 
 
 う~ん遠距離タイプを 3番目に置かなければいけないんだけど、まだ調整がいるなあ。


 
 
 
 とまあそんな感じで、まだアイテムや魔法の装備のアルゴリズムと、この後まだプレイヤー勢力の場合には複数国配置なので国の強さのデータとそれを元にどの自国領に何部隊配備するかを作らないといけないんだけど、とりあえずこれで突破したというか後は改良と調整をすれば良いだけだと思うので、一応「やっとできた~」とは言えると思う。

 今まででこのプログラムが一番難しかった、それはやっぱりやった事の無いプログラムだったから。

 机に座ってソースに向かう日々というより、ほとんど散歩して考える日々だった。

 参考までに。
 
 

コメントを残す

メールアドレスが公開されることはありません。