/*********************************************************************/ /* */ /* マルチエージェントシミュレータ Version 1.0 */ /* */ /*********************************************************************/ //------------------ コンポーネントツリー --------------- WORLD { space 二次元空間(10,10),SQUARE_2D(19, 19, LOOP) { agent 国(10,10)[0] { dim X(10,10) AS Double = (0.000000); dim Y(100,10) AS Double = (0.000000); dim DIRECTION(190,10) AS Double = (0.000000); dim 利益(10,10) AS Integer = (0); dim 発展度(10,10) AS Integer = (0); dim 体力(10,10) AS Integer = (0); dim トラヒック(10,10) AS Integer = (0); dim 幸福度(10,10) AS Double = (0.000000); dim 交渉力(10,10) AS Double = (0.000000); dim 色(10,10) AS Integer = (0); dim 妥結ポイント(10,10) AS Double = (0.000000); dim POWER(10,10) AS Integer = (0); dim NUM(10,10) AS Integer = (0); dim 収益値(10,10) AS Integer = (0); } dim 環境成長度(10,10)[19][19] AS Integer = (361*0); dim 環境成長度カラー(10,10)[19][19] AS Double = (361 * 0.000000); } dim 国の数(10,10) AS Integer = (0); dim 妥結ポイント(10,10) AS Double = (0.000000); dim トラヒック(10,10) AS Integer = (0); dim 環境成長ステップ(10,10) AS Integer = (0); dim 環境要素(10,10) AS Boolean = (0); dim 取得できる環境(10,10) AS Integer = (0); dim コメント表示(10,10) AS Boolean = (51774209); } //------------------ コンポーネントパレットツリー --------------- //------------------ エージェント変数初期値データ --------------- INITIAL_VALUE { WORLD.国の数 = 1(10); WORLD.環境成長ステップ = 1(500); WORLD.環境要素 = 1(52893441); WORLD.コメント表示 = 1(52964353); WORLD.二次元空間.環境成長度 = 1(361*0); } //------------------ エージェント共通ルール --------------- #begin_rule common_agent_rule Function 端処理X(Xp as integer) as integer { //マップの端をループさせる処理 //変数定義 Dim EdgeX as integer //マップの幅を取得 EdgeX = _GetWidthSpace(World.二次元空間) //Xpが右端よりはみ出る場合は左側にループ If Xp >= EdgeX then Xp = Xp - EdgeX //Xpが左端よりはみ出る場合は右側にループ ElseIf Xp < 0 then Xp = Xp + EdgeX End If //値を返す Return(Xp) } Function 端処理Y(Yp as integer) as integer { //マップの端をループさせる処理 //変数定義 Dim EdgeY as integer //マップの高さを取得 EdgeY = _GetHeightSpace(World.二次元空間) //Ypが下端からはみ出る場合は上側にループ If Yp >= EdgeY then Yp = Yp - EdgeY //Ypが上端からはみ出る場合は下側にループ ElseIf Yp < 0 then Yp = Yp + EdgeY End If //値を返す Return(Yp) } Function 移動(StepV as Integer) as Boolean { // 012 :方向をランダムに選択して移動 // 7 3 // 654 //変数定義 Dim Drc as Integer Dim Stp as Integer Dim moX as Integer Dim moY as Integer Dim StpX as Integer Dim StpY as Integer //方向をランダムにセット Drc = Int(Rnd()*7) //XY方向にステップ数をランダムにセット StpX= Int(Rnd()*StepV)+1 StpY= Int(Rnd()*StepV)+1 //現在の自分の位置を仮変数に格納 moX = My.X moY = My.Y //方向に合わせてX方向の位置を仮変数に代入 If (Drc == 0) OR (Drc == 6) OR (Drc == 7) Then moX = moX - StpX End If If (Drc == 2) OR (Drc == 3) OR (Drc == 4) Then moX = moX + StpX End If //X位置の補正(ループ処理) moX = 端処理X(moX) //自分のX位置をセット My.X = moX //方向に合わせてY方向の位置を仮変数に代入 If (Drc == 0) OR (Drc == 1) OR (Drc == 2) Then moY = moY - StpY End If If (Drc == 4) OR (Drc == 5) OR (Drc == 6) Then moY = moY + StpY End If //Y位置の補正(ループ処理) moY = 端処理Y(moY) //自分のY位置をセット My.Y = moY //移動完了・値を返す Return(True) } Sub コメント出力(str As String) { If World.コメント表示 == True Then _DebugStr(str) End If } Function 範囲乱数(上限値 As Integer, 下限値 As Integer) As Integer { Dim 乱数 As Integer 乱数 = CInt(Rnd() * ( 上限値 - 下限値 + 1) + 下限値) Return ( 乱数 ) } #end_rule common_agent_rule //------------------ エージェントルール --------------- #begin_rule WORLD Agt_Init{ Dim i As Integer // 国の誕生 For i = 1 To World.国の数 _CreateAgent(World.二次元空間.国) Next i     World.二次元空間.国.num(0) = 0     World.二次元空間.国.num(1) = 1     World.二次元空間.国.num(2) = 2     World.二次元空間.国.num(3) = 3     World.二次元空間.国.num(4) = 4     World.二次元空間.国.num(5) = 5     World.二次元空間.国.num(6) = 6     World.二次元空間.国.num(7) = 7     World.二次元空間.国.num(8) = 8     World.二次元空間.国.num(9) = 9     //環境要素がTrueならば環境要素を設定 If World.環境要素 == True then 環境設定() End If     World.コメント表示 = True WORLD.二次元空間.国.妥結ポイント = 100 WORLD.妥結ポイント = 100 } Agt_Step{ Dim i As Integer // 変数 Dim j As Integer // 変数 World.取得できる環境 = 0 //環境要素がTrueならば環境を成長させる If World.環境要素 == True then 環境成長() End If //妥結ポイントが0になったらシミュレーションを終了する //if WORLD.妥結ポイント < 0 then // _ExitSimulation() //End if // 国の数 World.国の数 = _CountCollection(_CollectAgent(World.二次元空間.国)) //妥結ポイント World.妥結ポイント = World.二次元空間.国.妥結ポイント //コメント出力("1," & World.二次元空間.国.利益(0) & ",2," & World.二次元空間.国.利益(1) &        //       ",3," & World.二次元空間.国.利益(2) & ",4," & World.二次元空間.国.利益(3) &        //       ",5," & World.二次元空間.国.利益(4)) } Sub 環境設定(){ //変数定義 Dim i As Integer Dim j As Integer //マップ上のセルを順に呼び出し For i = 0 To (_GetWidthSpace(World.二次元空間) - 1) For j = 0 To (_GetHeightSpace(World.二次元空間) - 1) //マップに環境成長ステップまでの成長度をランダムに割り当てる World.二次元空間.環境成長度(i,j) = Int(Rnd() * World.環境成長ステップ) //成長度をカラーに割り当てる World.二次元空間.環境成長度カラー(i,j) = CDbl(World.二次元空間.環境成長度(i,j)) / CDbl(World.環境成長ステップ) * 99 Next j Next i } Sub 環境成長(){ //変数定義 Dim i As Integer Dim j As Integer Dim 成長度 As Integer //マップ上のセルを順に呼び出し For i = 0 To (_GetWidthSpace(World.二次元空間) - 1) For j = 0 To (_GetHeightSpace(World.二次元空間) - 1) //成長度を一つ上げる 成長度 = World.二次元空間.環境成長度(i,j) + 1 //限界点(成長ステップ)まで成長したら成長度は増えない If 成長度 > World.環境成長ステップ Then 成長度 = World.環境成長ステップ End If If 成長度 == World.環境成長ステップ then World.取得できる環境 = World.取得できる環境 + 1 End If //セルに変数値を代入 World.二次元空間.環境成長度(i,j) = 成長度 //成長度をカラーに割り当てる World.二次元空間.環境成長度カラー(i,j) = CDbl(World.二次元空間.環境成長度(i,j)) / CDbl(World.環境成長ステップ) * 99 Next j Next i } #end_rule WORLD //------------------ エージェントルール --------------- #begin_rule WORLD.二次元空間.国 Agt_Init{ // 特徴づけ My.トラヒック = Rnd() * 10 My.妥結ポイント = 100 My.X = Rnd() * _GetWidthSpace(World.二次元空間) My.Y = Rnd() * _GetHeightSpace(World.二次元空間)     My.power = 0     My.利益 = 0     My.交渉力 = 0      My.収益値 = Rnd() * 10 } Agt_Step{ //変数定義 Dim col as Collection Dim col_count as Integer Dim obj as Object Dim sa as Integer Dim payment as Integer Dim sim_step_count as Integer Dim keisan as Double Dim tmp_traffic as Double Dim vRange as Integer Dim count_collect as Integer Dim select as Integer Dim str as Integer vRange = Rnd() * 10 + My.power //移動(1) _MoveToRichValue(My.X,My.Y,vRange,World.二次元空間.環境成長度,False) If World.環境要素 == True then //環境が十分であれば利益を得る If World.二次元空間.環境成長度(My.X, My.Y) == World.環境成長ステップ Then // My.トラヒック = My.トラヒック + Int(World.二次元空間.環境成長度(My.X, My.Y)) My.トラヒック = My.トラヒック + My.収益値 //得た分の環境成長度を0に World.二次元空間.環境成長度(My.X, My.Y) = 0 End If Else My.トラヒック = My.トラヒック + (Rnd()*20) End If //col =_CollectAround(My.X, My.Y, 3, World.二次元空間, World.二次元空間.国) //count_collect =_ViewCountAgent(My.X, My.Y, 10, World.二次元空間.国) // _DebugStr(count_collect) //コレクションのインスタンス数を数える //count_collect = _CountCollection(_CollectAgent(World.二次元空間.国)) // _DebugStr(count_collect) //col = _InitCollection() col = _CollectAgent(World.二次元空間.国) //If count_collect > 0 Then //精算行為前準備 //コレクションの中の国と精算行為をする     select = 範囲乱数(9, 0) //受信トラヒックの量と発展度は関連性が深い・相手との相対的関係で受信超過は受取の立場 //受信超過を知る 日本からみた途上国>日本 途上国への支払いのケース if World.二次元空間.国.トラヒック(select) > My.トラヒック then         //(途上国の受信超過→自分が支払い)  sa = World.二次元空間.国.トラヒック(select) - My.トラヒック payment = Int(sa * ((My.妥結ポイント+World.二次元空間.国.妥結ポイント(select))/2) * 0.5) my.利益 = my.利益 - payment   World.二次元空間.国.利益(select) = World.二次元空間.国.利益(select) + payment         //支払いの立場になると先進国は国力を落とす  My.交渉力 = My.交渉力 - 0.01 My.power = My.power - 0.01 My.収益値 = My.収益値 - 3 If My.収益値 <= 0 Then My.収益値 = 1 End if          If My.POWER <= 0 Then My.POWER = 1 End if ElseIf World.二次元空間.国.トラヒック(select) < My.トラヒック then         //受信超過を知る 日本からみた米国<日本 先進国からの受取りのケース          //(先進国の受信超過→自分が受け取り)           sa = My.トラヒック - World.二次元空間.国.トラヒック(select) payment = Int(sa * ((My.妥結ポイント+World.二次元空間.国.妥結ポイント(select))/2) * 0.5) my.利益 = my.利益 + payment World.二次元空間.国.利益(select) = World.二次元空間.国.利益(select) - payment         //受け取りの立場になると先進国は国力をあげる  My.交渉力 = My.交渉力 + 0.01 My.power = My.power + 0.01 My.収益値 = My.収益値 + 3          If My.POWER >= 8 Then My.POWER = 8 End if End If //更に交渉する keisan = Rnd() * 10      If keisan > (5 + My.交渉力) Then //先進国の能力が落ちると(途上国が有利となり)空間のルールである計算料金が上がる   My.妥結ポイント = My.妥結ポイント + 0.1 World.二次元空間.国.妥結ポイント(select) = World.二次元空間.国.妥結ポイント(select) + 0.1 //能力があがると受け取りの立場にいるので(途上国の方が不利となり)空間のルールである計算料金が下がる Else My.妥結ポイント = My.妥結ポイント - 0.1 World.二次元空間.国.妥結ポイント(select) = World.二次元空間.国.妥結ポイント(select) - 0.1 End If // End If } Function 範囲乱数(上限値 As Integer, 下限値 As Integer) As Integer { Dim 乱数 As Integer 乱数 = CInt(Rnd() * ( 上限値 - 下限値 + 1) + 下限値) Return ( 乱数 ) } #end_rule WORLD.二次元空間.国 //------------------ シミュレーション設定部 --------------- SINGLE_SIMULATION { STEP_MAX = 300; TIME_MAX = 0; END_CONDITION = ""; EXEC_WAIT = 0; EXEC_ORDER = SPECIFY; RANDOM_SEED = 1000; LOG_FILE = "C:\ABS\vaioにあるもの\1214CASE1log.abs",SEREIAL_NO,OVERWRITE,0; REPLAY_LOG_FILE = "",SEREIAL_NO,OVERWRITE,0; } //------------------ ループ設定部 --------------- REPEAT_SIMULATION { VALUE_CHANGE = RANDOM; REPEAT_MAX = 1; VARIABLES = ""; START_VALUE = 0.000000; STEP_VALUE = 1.000000; END_VALUE = 1.000000; EXEC_TIMES_SAME = 1; RANDOM_RANGE = 0.000000, 9.000000; SAME_VALUE = YES; EXEC_TIMES_DIFFERENT = 1; } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.二次元空間"; MAP_NAME = "国マップ"; TITLE = "二次元空間"; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 18, 18; RULED_LINE = NO; REMARKS = YES; SPACE_KIND = SQUARE_2D; OUTPUT { MAP_ELEMENT_NAME = "環境成長度"; MAP_ELEMENT = SPACE_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.環境成長度カラー"; SPACE_DRAW_RANGE = 0.000000, 100.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,128,0; AGENT_COLOR = 0,255,0; MARKER_ID = 2; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } OUTPUT { MAP_ELEMENT_NAME = "国"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.二次元空間.国"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,255,0; AGENT_COLOR = 85,248,7; MARKER_ID = 1; MAP_COLOR = 0,0,0; NUM_DISPLAY = YES; NUM_VAR_NAME = "WORLD.二次元空間.国.num"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "国数"; TITLE = ""; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 0.000000, 0.000000, 50.000000, 0.000000; REMARKS = YES; OUTPUT { GRAPH_ELEMENT_NAME = "国の数"; LINE_COLOR = 0,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.国の数"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "利益"; TITLE = "利益"; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 0.000000, 5000.000000, 50.000000, 1000.000000; REMARKS = YES; OUTPUT { GRAPH_ELEMENT_NAME = "国利益"; LINE_COLOR = 0,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "WORLD.二次元空間.国.利益/10000"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "交渉妥結ポイント推移"; TITLE = "妥結ポイント推移"; AXIS_LABEL = "step", "妥結水準"; SCALE = 0.000000, 0.000000, 0.000000, 150.000000, 50.000000, 50.000000; REMARKS = YES; OUTPUT { GRAPH_ELEMENT_NAME = "妥結ポイント"; LINE_COLOR = 0,64,0; LINE_WIDTH = 2; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.妥結ポイント"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "エージェント別利益"; TITLE = "エージェント別利益"; AXIS_LABEL = "step", ""; SCALE = 0.000000, 0.000000, 0.000000, 100000.000000, 0.000000, 0.000000; REMARKS = YES; OUTPUT { GRAPH_ELEMENT_NAME = "エージェント2"; LINE_COLOR = 255,0,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(1) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント3"; LINE_COLOR = 0,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(2)"; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント4"; LINE_COLOR = 255,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(3) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント5"; LINE_COLOR = 255,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(4) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント6"; LINE_COLOR = 0,255,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(5) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント7"; LINE_COLOR = 127,127,127; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(6) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント8"; LINE_COLOR = 0,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(7) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント9"; LINE_COLOR = 175,80,156; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(8) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント10"; LINE_COLOR = 127,127,127; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(9) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント1"; LINE_COLOR = 0,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(0) "; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "エージェント別traffic"; TITLE = "エージェント別トラヒック"; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000; REMARKS = YES; OUTPUT { GRAPH_ELEMENT_NAME = "エージェント1"; LINE_COLOR = 0,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(0)"; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント2"; LINE_COLOR = 255,0,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(1) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント3"; LINE_COLOR = 0,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(2) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント4"; LINE_COLOR = 255,0,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(3) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント5"; LINE_COLOR = 255,255,0; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(4) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント6"; LINE_COLOR = 0,255,255; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(5) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント7"; LINE_COLOR = 127,127,127; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(6) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント8"; LINE_COLOR = 0,64,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(7) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント9"; LINE_COLOR = 127,127,127; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(8) "; } OUTPUT { GRAPH_ELEMENT_NAME = "エージェント10"; LINE_COLOR = 128,0,128; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(9) "; } } //------------------ ファイル出力設定部 --------------- FILE_OUTPUT { FILE_OUTPUT_NAME = "ファイル出力_1"; FILE_NAME = "C:\abs\new10\10エージェント\4区別をなくしたケース\OutFile2.out"; FIELD_DELIMITER = " "; OUTPUT_STEP = 1; OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント0"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(0)"; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント1"; FIGURES = 0; FORMAT_ID = 49; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(1) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント2"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(2) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント3"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(3) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント4"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(4) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント5"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(5) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント6"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(6) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント7"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(7) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント8"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(8) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "利益エージェント9"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.利益(9) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "妥結ポイント"; FIGURES = 1; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.妥結ポイント"; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント0"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(0)"; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント1"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(1) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント2"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(2) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント3"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(3) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント4"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(4) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント5"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(5) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント6"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(6) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント7"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(7) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント8"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(8) "; } OUTPUT { OUTPUT_ELEMENT_NAME = "tエージェント9"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "World.二次元空間.国.トラヒック(9) "; } } //------------------ コントロールパネルデータ設定部 --------------- CONTROL_PANEL { PANEL_ITEM { ITEM_NAME = "国の数"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.国の数; CONTROL_ON = NO; CONTROL_ON_INT = 1; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 300; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 1.000000; } PANEL_ITEM { ITEM_NAME = "環境要素"; ITEM_TYPE = TOGGLE; VAR_NAME = WORLD.環境要素; CONTROL_ON = YES; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 1; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 1.000000; } PANEL_ITEM { ITEM_NAME = "環境成長ステップ"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.環境成長ステップ; CONTROL_ON = NO; CONTROL_ON_INT = 1; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 1000; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 1.000000; } PANEL_ITEM { ITEM_NAME = "コメント表示"; ITEM_TYPE = BUTTON; VAR_NAME = WORLD.コメント表示; CONTROL_ON = YES; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 0.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 1; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 1.000000; } } //------------------ 説明用HTMLテキスト --------------- #begin_html #end_html //------------------ 空間初期値データ設定部 --------------- SPACE_INITIAL { SPACE_ITEM { COMPO_PATH_NAME = "WORLD.二次元空間.先進国の数"; MARKER_ID = 1; COMPO_KIND = COMPO_VAR; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,255; SPACE_DRAW_RANGE = 0.000000, 1.000000; SPACE_DISPLAY = 0; } SPACE_ITEM { COMPO_PATH_NAME = "WORLD.二次元空間.途上国の数"; MARKER_ID = 1; COMPO_KIND = COMPO_VAR; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,0,0; SPACE_DRAW_RANGE = 0.000000, 1.000000; SPACE_DISPLAY = 0; } SPACE_ITEM { COMPO_PATH_NAME = "WORLD.二次元空間.先進国"; MARKER_ID = 0; COMPO_KIND = COMPO_AGENT; SPACE_COLOR_MIN = 0,0,255; SPACE_COLOR_MAX = 0,0,0; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_DISPLAY = 0; } SPACE_ITEM { COMPO_PATH_NAME = "WORLD.二次元空間.途上国"; MARKER_ID = 0; COMPO_KIND = COMPO_AGENT; SPACE_COLOR_MIN = 255,0,0; SPACE_COLOR_MAX = 0,0,0; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_DISPLAY = 0; } SPACE_ITEM { COMPO_PATH_NAME = "WORLD.二次元空間.全体の利益"; MARKER_ID = 1; COMPO_KIND = COMPO_VAR; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 255,255,0; SPACE_DRAW_RANGE = 0.000000, 1.000000; SPACE_DISPLAY = 0; } } //------------------ レポート出力情報設定部 --------------- REPORT_INFO { REPORT_NAME = "C:\My Documents\abs\reportx.out"; FIELD_DELIMITER = " "; } //------------------ その他のデータ設定部 --------------- OTHERS_DATA { INDENT = 1; FONT_NAME = "MS ゴシック"; FONT_WIDTH = 0; FONT_HEIGHT = -13; FONT_WEIGHT = 200; FONT_ITALIC = 0; FONT_CHARSET = 128; WINDOW_HIDE_RUN = 1; } //------------------ 再生用ログデータ ---------------