レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
新・くだらない質問にもマジレスするスレ3
-
重さとかセーブデータとか気にしないでとりあえず書いてみた。
テストはしてないし、うまく動いてもかなり無駄な処理が多いから遅い気がする
(あらかじめ各座標の状態を 占領陣営[X,Y] = 2 みたいな形で配列で管理しているとする)
味方兵站調査:
#Args(1)は基地の座標を"X Y"の形で
#基地から繋がっている味方ユニットのユニットIDをリストにして返す関数
CopyArray 占領陣営 調査用
Local xx yy 調査待ち座標 カウンタ 調査インデックス 結果
xx = LIndex(Args(1),1)
yy = LIndex(Args(1),2)
カウンタ = 1
調査インデックス = 1
Set 調査待ち座標[カウンタ] = "$(xx) $(yy)"
Incr カウンタ
Do
xx = LIndex(調査待ち座標[調査インデックス],1)
yy = LIndex(調査待ち座標[調査インデックス],2)
If Party(Info(マップ,xx,yy,ユニットID)) = "味方" Then
結果 = 結果 & " " & Info(マップ,xx,yy,ユニットID)
EndIf
If 調査用[xx,yy] = 1 Then
#上下左右の座標を調査待ちにする
調査待ち座標[カウンタ + 1] = "$(xx + 1) $(yy)"
調査待ち座標[カウンタ + 2] = "$(xx - 1) $(yy)"
調査待ち座標[カウンタ + 3] = "$(xx) $(yy + 1)"
調査待ち座標[カウンタ + 4] = "$(xx) $(yy - 1)"
Incr カウンタ 4
EndIf
Unset 調査用[xx,yy] //一度調べた座標はもう調べない
Unset 調査待ち座標[調査インデックス]
Incr 調査インデックス
Loop While (Count(調査待ち座標) > 0) //調査待ち座標がなくなったら終了
Unset 調査用
Return 結果
掲示板管理者へ連絡
無料レンタル掲示板