CDW ゲームレベルとデタラメな挙動


2021年 10月 16日
 
 
 戦略アルゴリズムにデタラメな挙動を作って、先の強いアルゴリズムを 100%としたゲームレベルを設ける。


 
 
 ソースは次の通り、前回の *strategyの前半に r=rnd(5)でデタラメな挙動をするようにしてる。

*strategy

	al_cal ; 国の行動順


; 攻勢
	stf=0 : stc=0
	while stf=0
	 if mainf!5 : _break

	 ldn1=nad(stc) : stc+

	 if ldn1=0 : _break
	 if nacd(ldn1)=0 : _continue ; 攻める国が無い


; ゲームレベル

	 r=rnd(5)
	 if glv<=r { ; デタラメな時の挙動

	  if ldcd(ldn1)<=1 : _continue ; 戦力が1

	  repeat ldb : ldpc(cnt)=0 : loop ; 攻める国候補、一時格納

	  ldc=0
	  ldlg1=ldn1*ldlb
	  repeat ldlb : ldn2=ldl(ldlg1+cnt)
	   if ldn2=0 : break
	   if lpd(ldn2)=pn1 : continue ; 自国
	   if dbpl>0 and lpd(ldn2)!dbpl and dbpl!pn1 : continue ; 第一戦力以外は除外

	   ldpc(ldc)=ldn2 : ldc+
	  loop

	  repeat ldc
	   ldr=rnd(ldc) : ldn2=ldpc(ldr)
	   if ldcd(ldn1)>=ldcd(ldn2) { ; 戦闘
btlf=0
	    kln1=ldn1 : kln2=ldn2
	     gosub *battle
	    break
	   }
	   repeat ldc ; 詰める
	    if ldpc(ldr+cnt)=0 : break
	    ldpc(ldr+cnt)=ldpc(ldr+cnt+1)
	   loop
	   ldc- : if ldc=0 : break
	  loop

	  _continue
	 }

 
 
 ゲームレベルは適当な所で設定する。

*main

	dbgf=0 ; デバッグモード

	fif=1 ; データフォルダの位置(0=Android、1=PC)
	 if fif=0 : fi=""
	 if fif=1 : fi="../data_file/"
	 if fif=2 : fi="../assets/"

glv=3

 
 
 glv=3という事は r=rnd(5)で決めているので 60%的確に挙動するという事、5なら 100%的確に、0なら 100%デタラメに挙動する。
 
 

 上記の戦闘

 btlf=2 なので的確な挙動で 2マス先が自領の挙動。
 
 
 次は占領した 1国から btlf=0 なのでデタラメに 13国に攻め込む。


 
 
 勝ったようです


 
 
 取った 13国から 12国へ btlf=2、2マス先が自領


 
 
 取った 12国から btlf=0なのでデタラメに 17国に攻め込む


 
 
 デタラメの場合はダイス数が同数でも攻め込むようにしてあるので負けたようです


 
 
 紫の 5国から 19国へ、btlf=1なので、隣接国が 1国の場合


 
 
 9国から 6国へ、btlf=3なので後背地を求めて攻め込んでる


 
 
 と、そんな感じで glv=3 なので 60% btlf=1~4で的確に攻め込み、40%は btlf=0 でデタラメに攻め込む。

 glv=0 の場合 100%デタラメに攻め込む、glv=5の場合は 100%的確に攻め込む。

 以上のようになってます。

コメントを残す

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