Hextrategy 国の戦力値評価までできた


2018年 7月18日
 
 
 中立の国戦略アルゴリズムと国の戦力の評価までできた。

 この次はヒーロー勢力の国戦略だけど、これをやる前に「攻め込む」という要素を作らないと国が増えないのでとりあえず一段落で報告する。

 メインの要素完成までもうちょっとだ。


 
 中立国のアルゴリアム、と言っても中立は攻め込まないのでずっと 1国だけだし大した事無い。

*neutral ;中立勢力の人材とアイテムの発見と配置、戦略

	repeat 25,1 : m=cnt			; mapNo.
	 if map(m)=0 : continue		; 地形が無い
	 if mpl(m)>0 : continue		; 中立では無い

	 un_fd m					; 人材発見
	  if un>0 : nper_set m,un	; 順列セット

	 it_fd m					; アイテム発見
	  if in>0 : niper_set m,in	; 順列セット

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

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

	 repeat nub ; 列の順列をリセット
	  nrt1(cnt)=0 : nrt2(cnt)=0 : nrt3(cnt)=0
	 loop

	 nrt1c=0 : nrt2c=0 : nrt3c=0 ; 現在の列の順番をリセット

	 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


	 nrt1c=0 : nrt2c=0 : nrt3c=0 ; 現在の列の順番をリセット

	 repeat 3 : knc=m*10+cnt*3 ; 配備
	  repeat 3,1
	   if cnt=1 { ; 1列目
		un=nrt1(nrt1c) : if un>0 : mu(knc+1)=un : nrt1c+ : continue
		un=nrt2(nrt2c) : if un>0 : mu(knc+1)=un : nrt2c+ : continue
		un=nrt3(nrt3c) : if un>0 : mu(knc+1)=un : nrt3c+ : continue
	   }
	   if cnt=2 { ; 3列目
		un=nrt3(nrt3c) : if un>0 : mu(knc+3)=un : nrt3c+ : continue
		un=nrt2(nrt2c) : if un>0 : mu(knc+3)=un : nrt2c+ : continue
		un=nrt1(nrt1c) : if un>0 : mu(knc+3)=un : nrt1c+ : continue
	   }
	   if cnt=3 { ; 2列目
		un=nrt2(nrt2c) : if un>0 : mu(knc+2)=un : nrt2c+ : continue
		un=nrt1(nrt1c) : if un>0 : mu(knc+2)=un : nrt1c+ : continue
		un=nrt3(nrt3c) : if un>0 : mu(knc+2)=un : nrt3c+ : continue
	   }
	  loop
	  if nrt1(nrt1c)=0 and nrt2(nrt2c)=0 and nrt3(nrt3c) : break ; 全員使った
	 loop

	 mpck m ; 戦力値計測
	loop

	return

 人材とアイテムを発見して順列に放り込み、再配置をするだけ。

 最後の mpckが国の戦力評価で、次のようになってる。

#deffunc mpck int mpckm ; マップ戦力値計測

	m=mpckm ; 国No,
	mpckn=0 ; 戦力値

	mug=m*10 ; 配備データ先頭
	repeat 9,1 ; ユニット
	 un=mu(mug+cnt) ; ユニットNo.
	 if un=0 : continue ; ユニット無し
	 udg=un*udb ; ユニットデータ先頭
	  mpckn+=ud(udg+21)+ud(udg+22) ; 筋力、魔力

	 repeat sbkn ; 装備
	  in=ud(udg+40+cnt) ; アイテムNo.
	   if in<=0 : continue ; 装備してない
	  idg=in*idb ; アイテムデータ先頭
	   mpckn+=id(idg+11)+id(idg+12)+id(idg+9) ; 攻撃、防御、能力値
	 loop
	loop

	mp(m)=mpckn ; 戦力値

	return

 今の所、ユニットの筋力、魔力、装備しているアイテムの攻撃力、防御力、能力値を足してる。

 そうだ魔攻値と魔防値も足さなきゃ、後で直そう。
 
 
 

 テスト

 左上の白い数字が戦力、真ん中の赤い表示は国のNo.


 
 
 中立の 2国、戦力は 190


 
 

 中立の 13国、戦力は 447


 
 

 中立の 18国、戦力は 482、1ユニット増えてる


 
 
 再装備もしてる


 
 

 ヒーロー勢力の 7国、戦力 652

 完成の場合は、始めは中立と同じ 4ユニットの予定。
 
 
 
 次はヒーロー勢力国のアルゴリズムだ、それが最後の砦になるだろう。

 それが出来たら初めてテストプレイができる、後はタイトルや、OP、ED、オプションとか、そうそう音要素もつけなきゃだ。

 そしてテストプレイとバランス調整、バグ潰し、これが結構な作業量でゲーム製作の全作業量の 2割くらいは占めると思う。
 
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です