/*********************************************************************/ /* */ /* マルチエージェントシミュレータ Version 1.0 */ /* */ /*********************************************************************/ //------------------ コンポーネントツリー --------------- WORLD { space マップ(10,10),SQUARE_2D(20, 25, !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 Double = (0.000000); dim 参加状況(10,10) AS Integer = (0); dim 参加率の記憶(10,10) AS Double = (0.000000); dim 参加者の識別(10,10) AS Boolean = (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 Boolean = (0); dim 気まぐれ(10,10) AS Double = (0.000000); dim 閾値の平均(10,10) AS Double = (0.000000); dim 閾値の標準偏差(10,10) AS Double = (0.000000); dim 初期参加状況(10,10) AS Double = (0.000000); dim 情報伝播の有無(10,10) AS Boolean = (67002112); dim 閾値の分布(10,10)[10] AS Integer = (10*0); dim 異性めあて(10,10) AS Boolean = (0); dim 男参加率(10,10) AS Double = (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 Double = (0.000000); dim 女の閾値の平均(10,10) AS Double = (0.000000); dim 現状維持率(10,10) AS Double = (0.000000); dim 女の閾値の分布(10,10)[10] AS Integer = (10*0); dim ダミー(10,10) AS Integer = (0); dim ネガティブな選好:男(10,10) AS Boolean = (0); dim ネガティブな選好:女(10,10) AS Boolean = (0); } //------------------ コンポーネントパレットツリー --------------- //------------------ エージェント変数初期値データ --------------- INITIAL_VALUE { WORLD.人数 = 1(400); WORLD.ローカル = 1(67159808); WORLD.気まぐれ = 1(0.010000); WORLD.閾値の平均 = 1(0.500000); WORLD.閾値の標準偏差 = 1(0.250000); WORLD.初期参加状況 = 1(1.000000); WORLD.情報伝播の有無 = 1(67305473); WORLD.閾値の分布 = 1(10*0); WORLD.男女比 = 1(0.500000); WORLD.女の閾値の平均 = 1(0.500000); WORLD.現状維持率 = 1(0.000000); WORLD.ダミー = 1(80); } //------------------ エージェント共通ルール --------------- #begin_rule common_agent_rule // RGB値指定 Function RGB(red As Integer, green As Integer, blue As Integer) As Integer { Return(red * (256^2) + green * 256 + blue) } // 0なし乱数 Function NotZeroRnd() As Double { Dim x As Double Do While(x == 0) x = Rnd() Loop Return(x) } #end_rule common_agent_rule //------------------ エージェントルール --------------- #begin_rule WORLD Agt_Init{ Dim i As Integer Dim j As Integer Dim k As Integer Dim m As Integer Dim obj As Object //生徒の配置 For i = 0 To World.人数 - 1 obj = _CreateAgent(World.マップ.ヒト) If Rnd() < World.男女比 Then obj.性別 = 0 Else obj.性別 = 1 End If If World.異性めあて == False Then obj.閾値 = _Norminv(NotZeroRnd(), World.閾値の平均, World.閾値の標準偏差) Do While obj.閾値 < 0 OR obj.閾値 > 1 obj.閾値 = _Norminv(NotZeroRnd(), World.閾値の平均, World.閾値の標準偏差) Loop Else If obj.性別 == 0 Then obj.閾値 = _Norminv(NotZeroRnd(), World.閾値の平均, World.閾値の標準偏差) Do While obj.閾値 < 0 OR obj.閾値 > 1 obj.閾値 = _Norminv(NotZeroRnd(), World.閾値の平均, World.閾値の標準偏差) Loop Else obj.閾値 = _Norminv(NotZeroRnd(), World.女の閾値の平均, World.閾値の標準偏差) Do While obj.閾値 < 0 OR obj.閾値 > 1 obj.閾値 = _Norminv(NotZeroRnd(), World.女の閾値の平均, World.閾値の標準偏差) Loop End If End If k = CInt(obj.閾値 / 0.1) If k == 10 Then k = 9 End If If World.異性めあて == True AND obj.性別 == 1 Then World.女の閾値の分布(k) = World.女の閾値の分布(k) + 1 Else World.閾値の分布(k) = World.閾値の分布(k) + 1 End If For j = 0 To 9 If World.閾値の分布(j) > World.ダミー Then World.ダミー = World.閾値の分布(j) End If Next j If World.異性めあて == True Then For j = 0 To 9 If World.女の閾値の分布(j) > World.ダミー Then World.ダミー = World.女の閾値の分布(j) End If Next j End If If Rnd() < World.初期参加状況 Then obj.参加状況 = 1 Else obj.参加状況 = 0 End If If obj.参加状況 == 0 Then obj.色 = Color_White Elseif World.異性めあて == True AND obj.性別 == 1 Then If obj.閾値 <= 0.25 Then m = 127 + 128 * (obj.閾値 / 0.25) obj.色 = RGB(m, 0, 0) Elseif obj.閾値 <= 0.75 Then m = 255 * ((obj.閾値 - 0.25) / 0.5) obj.色 = RGB(255, m, 0) Else m = 128 * ((obj.閾値 - 0.75) / 0.25) obj.色 = RGB(255, 255, m) End If Elseif obj.閾値 <= 0.25 Then m = 127 + 128 * (obj.閾値 / 0.25) obj.色 = RGB(0, 0, m) Elseif obj.閾値 <= 0.75 Then m = 255 * ((obj.閾値 - 0.25) / 0.5) obj.色 = RGB(0, m, 255) Else m = 128 * ((obj.閾値 - 0.75) / 0.25) obj.色 = RGB(m, 255, 255) End If obj.参加率の記憶 = World.初期参加状況 If obj.参加状況 == 1 Then World.参加数 = World.参加数 + 1 If obj.性別 == 0 Then World.男参加数 = World.男参加数 + 1 Else World.女参加数 = World.女参加数 + 1 End If End If Next i _RandomPutAgent(World.マップ.ヒト, False) } Agt_Step{ Dim col As Collection Dim obj As Object //重複の禁止 If World.ローカル == True AND World.異性めあて == True Then _ExitSimulationMsg("「ローカル」か「異性めあて」かいずれかにしてください!") End If //参加率の計算 col = _CollectAgent(World.マップ.ヒト) World.参加率 = World.参加数 / CDbl(World.人数) If World.参加数 == 0 Then World.男参加率 = World.女参加率 = 0 Else World.男参加率 = CDbl(World.男参加数) / World.参加数 World.女参加率 = 1 - World.男参加率 End If World.参加数 = 0 World.男参加数 = World.女参加数 = 0 //前回の参加状況 For Each obj In col obj.前回の参加状況 = obj.参加状況 Next obj } #end_rule WORLD //------------------ エージェントルール --------------- #begin_rule WORLD.マップ.ヒト Agt_Init{ } Agt_Step{ If World.ローカル == True Then ローカル() Elseif World.異性めあて == True Then 異性めあて() Else グローバル() End if } Sub グローバル() { Dim k As Integer My.参加者の識別 = True // 参加か欠席かの決定 If Rnd() < 1 - World.現状維持率 Then If My.参加状況 == 1 Then If (World.ネガティブな選好:男 == False AND My.閾値 > World.参加率) OR (World.ネガティブな選好:男 == True AND World.参加率 >= My.閾値) Then My.参加状況 = 0 My.参加率の記憶 = World.参加率 End if Else If World.情報伝播の有無 == False Then If (World.ネガティブな選好:男 == False AND My.閾値 <= My.参加率の記憶) OR (World.ネガティブな選好:男 == True AND My.参加率の記憶 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if Else If (World.ネガティブな選好:男 == False AND My.閾値 <= World.参加率) OR (World.ネガティブな選好:男 == True AND World.参加率 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if End if End if End if //気まぐれ If Rnd() < World.気まぐれ Then If My.参加状況 == 1 Then My.参加状況 = 0 If My.参加者の識別 == True Then My.参加率の記憶 = World.参加率 End if Else My.参加状況 = 1 End if End if //色変更 If My.参加状況 == 0 Then My.色 = Color_White Elseif My.閾値 <= 0.25 Then k = 127 + 128 * (My.閾値 / 0.25) My.色 = RGB(0, 0, k) Elseif My.閾値 <= 0.75 Then k = 255 * ((My.閾値 - 0.25) / 0.5) My.色 = RGB(0, k, 255) Else k = 128 * ((My.閾値 - 0.75) / 0.25) My.色 = RGB(k, 255, 255) End if //参加者数の計算 If My.参加状況 == 1 Then World.参加数 = World.参加数 + 1 If My.性別 == 0 Then World.男参加数 = World.男参加数 + 1 Else World.女参加数 = World.女参加数 + 1 End if End if } Sub ローカル() { Dim col As Collection Dim obj As Object Dim k As Integer Dim m As Integer Dim n As Integer Dim r As Double My.参加者の識別 = True //参加か欠席かの決定 If Rnd() < 1 - World.現状維持率 Then col = _CollectAround(My.X, My.Y, 1, World.マップ, World.マップ.ヒト) _RemoveCollection(col, My) n = _CountCollection(col) m = 0 For Each obj In col If obj.前回の参加状況 == 1 Then m = m + 1 End if Next obj If n == 0 Then r = 0 Else r = CDbl(m) / CDbl(n) End if If My.参加状況 == 1 Then If (World.ネガティブな選好:男 == False AND My.閾値 > r) OR (World.ネガティブな選好:男 == True AND r >= My.閾値) Then My.参加状況 = 0 My.参加率の記憶 = r End if Else If World.情報伝播の有無 == False Then If (World.ネガティブな選好:男 == False AND My.閾値 <= My.参加率の記憶) OR (World.ネガティブな選好:男 == True AND My.参加率の記憶 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if Else If (World.ネガティブな選好:男 == False AND My.閾値 <= r) OR (World.ネガティブな選好:男 == True AND r < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if End if End if End if //気まぐれ If Rnd() < World.気まぐれ Then If My.参加状況 == 1 Then My.参加状況 = 0 If My.参加者の識別 == True Then My.参加率の記憶 = r End if Else My.参加状況 = 1 End if End if //色変更 If My.参加状況 == 0 Then My.色 = Color_White Elseif My.閾値 <= 0.25 Then k = 127 + 128 * (My.閾値 / 0.25) My.色 = RGB(0, 0, k) Elseif My.閾値 <= 0.75 Then k = 255 * ((My.閾値 - 0.25) / 0.5) My.色 = RGB(0, k, 255) Else k = 128 * ((My.閾値 - 0.75) / 0.25) My.色 = RGB(k, 255, 255) End if //参加者数の計算 If My.参加状況 == 1 Then World.参加数 = World.参加数 + 1 If My.性別 == 0 Then World.男参加数 = World.男参加数 + 1 Else World.女参加数 = World.女参加数 + 1 End if End if } Sub 異性めあて() { Dim m As Integer My.参加者の識別 = True //参加か欠席かの決定 If Rnd() < 1 - World.現状維持率 Then If My.性別 == 0 Then //男の場合 If My.参加状況 == 1 Then If (World.ネガティブな選好:男 == False AND My.閾値 > World.女参加率) OR (World.ネガティブな選好:男 == True AND World.女参加率 >= My.閾値) Then My.参加状況 = 0 My.参加率の記憶 = World.女参加率 End if Else If World.情報伝播の有無 == False Then If (World.ネガティブな選好:男 == False AND My.閾値 <= My.参加率の記憶) OR (World.ネガティブな選好:男 == True AND My.参加率の記憶 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if Else If (World.ネガティブな選好:男 == False AND My.閾値 <= World.女参加率) OR (World.ネガティブな選好:男 == True AND World.女参加率 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if End if End if Else //女の場合 If My.参加状況 == 1 Then If (World.ネガティブな選好:女 == False AND My.閾値 > World.男参加率) OR (World.ネガティブな選好:女 == True AND World.男参加率 >= My.閾値) Then My.参加状況 = 0 My.参加率の記憶 = World.男参加率 End if Else If World.情報伝播の有無 == False Then If (World.ネガティブな選好:女 == False AND My.閾値 <= My.参加率の記憶) OR (World.ネガティブな選好:女 == True AND My.参加率の記憶 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if Else If (World.ネガティブな選好:女 == False AND My.閾値 <= World.男参加率) OR (World.ネガティブな選好:女 == True AND World.男参加率 < My.閾値) Then My.参加状況 = 1 My.参加者の識別 = False End if End if End if End if End if //気まぐれ If Rnd() < World.気まぐれ Then If My.参加状況 == 1 Then My.参加状況 = 0 If My.参加者の識別 == True Then If My.性別 == 0 Then My.参加率の記憶 = World.女参加率 Else My.参加率の記憶 = World.男参加率 End if End if Else My.参加状況 = 1 End if End if //色変更 If My.参加状況 == 0 Then My.色 = Color_White Elseif My.性別 == 1 Then If My.閾値 <= 0.25 Then m = 127 + 128 * (My.閾値 / 0.25) My.色 = RGB(m, 0, 0) Elseif My.閾値 <= 0.75 Then m = 255 * ((My.閾値 - 0.25) / 0.5) My.色 = RGB(255, m, 0) Else m = 128 * ((My.閾値 - 0.75) / 0.25) My.色 = RGB(255, 255, m) End If Elseif My.閾値 <= 0.25 Then m = 127 + 128 * (My.閾値 / 0.25) My.色 = RGB(0, 0, m) Elseif My.閾値 <= 0.75 Then m = 255 * ((My.閾値 - 0.25) / 0.5) My.色 = RGB(0, m, 255) Else m = 128 * ((My.閾値 - 0.75) / 0.25) My.色 = RGB(m, 255, 255) End If //参加者数の計算 If My.参加状況 == 1 Then World.参加数 = World.参加数 + 1 If My.性別 == 0 Then World.男参加数 = World.男参加数 + 1 Else World.女参加数 = World.女参加数 + 1 End if End if } #end_rule WORLD.マップ.ヒト //------------------ シミュレーション設定部 --------------- SINGLE_SIMULATION { STEP_MAX = 0; TIME_MAX = 0; END_CONDITION = ""; EXEC_WAIT = 0; EXEC_ORDER = RANDOM; RANDOM_SEED = 0; LOG_FILE = "",FIXED,OVERWRITE,0; } //------------------ ループ設定部 --------------- REPEAT_SIMULATION { VALUE_CHANGE = NONE; REPEAT_MAX = 1; VARIABLES = ""; START_VALUE = 0.000000; STEP_VALUE = 1.000000; END_VALUE = 1.000000; EXEC_TIMES_SAME = 1; RANDOM_RANGE = 0.000000, 1.000000; SAME_VALUE = YES; EXEC_TIMES_DIFFERENT = 1; } //------------------ 二次元マップ表示出力設定部 --------------- MAP_OUTPUT { MAP_SPACE_NAME = "WORLD.マップ"; MAP_NAME = "二次元表示マップ_1"; TITLE = ""; AXIS_LABEL = "", ""; DRAW_RANGE = 0, 0, 19, 24; RULED_LINE = NO; REMARKS = NO; SPACE_KIND = SQUARE_2D; BG_PICT = NO; BG_TYPE = 0; BG_VAR_NAME = ""; BG_FILE_NAME = ""; DISABLE = NO; POSITION_X = 680; POSITION_Y = 0; SIZE_X = 340; SIZE_Y = 683; OUTPUT { MAP_ELEMENT_NAME = "要素_1"; MAP_ELEMENT = AGENT_VARIABLE; OUTPUT_EXPRESSION = "WORLD.マップ.ヒト"; SPACE_DRAW_RANGE = 0.000000, 0.000000; SPACE_COLOR_MIN = 255,255,255; SPACE_COLOR_MAX = 0,0,255; AGENT_COLOR = "WORLD.マップ.ヒト.色"; MARKER_ID = 1; ICON_TYPE = 1142969153; ICON_VAR_NAME = "ouble = (0.000000); "; ICON_FILE_NAME = ""; MAP_COLOR = 0,0,0; NUM_DISPLAY = NO; NUM_VAR_NAME = ""; } } //------------------ 数値画面出力設定部 --------------- NUMERIC_OUTPUT { NUMERIC_NAME = "数値画面出力_1"; TITLE = ""; DISABLE = YES; POSITION_X = 510; POSITION_Y = 0; SIZE_X = 510; SIZE_Y = 341; OUTPUT { OUTPUT_ELEMENT_NAME = "ステップ数"; FIGURES = 0; FORMAT_ID = 1; OUTPUT_EXPRESSION = "_GetCountStep()"; } OUTPUT { OUTPUT_ELEMENT_NAME = "参加率"; FIGURES = 2; FORMAT_ID = 0; OUTPUT_EXPRESSION = "world.参加率"; } OUTPUT { OUTPUT_ELEMENT_NAME = "参加数"; FIGURES = 0; FORMAT_ID = 0; OUTPUT_EXPRESSION = "world.参加数"; } OUTPUT { OUTPUT_ELEMENT_NAME = "男参加数"; FIGURES = 0; FORMAT_ID = 673196576; OUTPUT_EXPRESSION = "World.男参加数"; } OUTPUT { OUTPUT_ELEMENT_NAME = "女参加数"; FIGURES = 0; FORMAT_ID = 673196576; OUTPUT_EXPRESSION = "World.女参加数"; } } //------------------ 時系列グラフ出力設定部 --------------- TIME_GRAPH { GRAPH_NAME = "時系列グラフ_1"; TITLE = ""; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 10000.000000, 400.000000, 10.000000, 20.000000; REMARKS = NO; DISABLE = NO; POSITION_X = 340; POSITION_Y = 0; SIZE_X = 340; SIZE_Y = 683; OUTPUT { GRAPH_ELEMENT_NAME = "要素_1"; LINE_COLOR = 160,0,0; LINE_WIDTH = 2; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.参加数"; } OUTPUT { GRAPH_ELEMENT_NAME = "要素_2"; LINE_COLOR = 255,0,0; LINE_WIDTH = 2; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.男参加数"; } OUTPUT { GRAPH_ELEMENT_NAME = "要素_3"; LINE_COLOR = 0,0,255; LINE_WIDTH = 2; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女参加数"; } } //------------------ 棒グラフ出力設定部 --------------- BAR_GRAPH { GRAPH_NAME = "棒グラフ_1"; TITLE = ""; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 1.000000, 100.000000, 0.000000, 10.000000; REMARKS = NO; DISABLE = YES; POSITION_X = 0; POSITION_Y = 0; SIZE_X = 340; SIZE_Y = 683; OUTPUT { GRAPH_ELEMENT_NAME = "0〜"; LINE_COLOR = 71,1,3; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(0)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.1〜"; LINE_COLOR = 115,2,14; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(1)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.2〜"; LINE_COLOR = 168,0,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(2)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.3〜"; LINE_COLOR = 217,0,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(3)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.4〜"; LINE_COLOR = 255,95,66; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(4)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.5〜"; LINE_COLOR = 253,130,77; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(5)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.6〜"; LINE_COLOR = 255,176,113; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(6)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.7〜"; LINE_COLOR = 254,221,67; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(7)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.8〜"; LINE_COLOR = 254,243,150; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(8)"; } OUTPUT { GRAPH_ELEMENT_NAME = "0.9〜1.0"; LINE_COLOR = 254,255,208; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(9)"; } } //------------------ 棒グラフ出力設定部 --------------- BAR_GRAPH { GRAPH_NAME = "棒グラフ_2"; TITLE = ""; AXIS_LABEL = "", ""; SCALE = 0.000000, 0.000000, 1.000000, 80.000000, 0.000000, 10.000000; REMARKS = NO; DISABLE = NO; POSITION_X = 0; POSITION_Y = 0; SIZE_X = 340; SIZE_Y = 683; OUTPUT { GRAPH_ELEMENT_NAME = "0〜"; LINE_COLOR = 128,0,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(0)"; } OUTPUT { GRAPH_ELEMENT_NAME = "1〜"; LINE_COLOR = 192,0,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(1)"; } OUTPUT { GRAPH_ELEMENT_NAME = "2〜"; LINE_COLOR = 255,0,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(2)"; } OUTPUT { GRAPH_ELEMENT_NAME = "3〜"; LINE_COLOR = 255,64,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(3)"; } OUTPUT { GRAPH_ELEMENT_NAME = "4〜"; LINE_COLOR = 255,128,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(4)"; } OUTPUT { GRAPH_ELEMENT_NAME = "5〜"; LINE_COLOR = 255,192,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(5)"; } OUTPUT { GRAPH_ELEMENT_NAME = "6〜"; LINE_COLOR = 255,255,0; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(6)"; } OUTPUT { GRAPH_ELEMENT_NAME = "7〜"; LINE_COLOR = 255,255,64; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(7)"; } OUTPUT { GRAPH_ELEMENT_NAME = "8〜"; LINE_COLOR = 255,255,128; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(8)"; } OUTPUT { GRAPH_ELEMENT_NAME = "9〜10"; LINE_COLOR = 255,255,192; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.閾値の分布(9)"; } OUTPUT { GRAPH_ELEMENT_NAME = " : "; LINE_COLOR = 127,127,127; LINE_WIDTH = 1; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.ダミー"; } OUTPUT { GRAPH_ELEMENT_NAME = "0〜"; LINE_COLOR = 0,0,128; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(0)"; } OUTPUT { GRAPH_ELEMENT_NAME = "1〜"; LINE_COLOR = 0,0,192; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(1)"; } OUTPUT { GRAPH_ELEMENT_NAME = "2〜"; LINE_COLOR = 0,0,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(2)"; } OUTPUT { GRAPH_ELEMENT_NAME = "3〜"; LINE_COLOR = 0,64,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(3)"; } OUTPUT { GRAPH_ELEMENT_NAME = "4〜"; LINE_COLOR = 0,128,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(4)"; } OUTPUT { GRAPH_ELEMENT_NAME = "5〜"; LINE_COLOR = 0,192,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(5)"; } OUTPUT { GRAPH_ELEMENT_NAME = "6〜"; LINE_COLOR = 0,255,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(6)"; } OUTPUT { GRAPH_ELEMENT_NAME = "7〜"; LINE_COLOR = 64,255,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(7)"; } OUTPUT { GRAPH_ELEMENT_NAME = "8〜"; LINE_COLOR = 128,255,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(8)"; } OUTPUT { GRAPH_ELEMENT_NAME = "9〜10"; LINE_COLOR = 192,255,255; LINE_WIDTH = 10; MARKER_ID = 0; OUTPUT_EXPRESSION = "World.女の閾値の分布(9)"; } } //------------------ コントロールパネルデータ設定部 --------------- CONTROL_PANEL { 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 = 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 = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 20; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 0.050000; } PANEL_ITEM { ITEM_NAME = "閾値の平均値"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.閾値の平均; CONTROL_ON = NO; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 20; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 0.050000; } PANEL_ITEM { ITEM_NAME = "閾値の標準偏差"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.閾値の標準偏差; CONTROL_ON = NO; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 20; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 0.050000; } PANEL_ITEM { ITEM_NAME = "男の比率"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.男女比; CONTROL_ON = NO; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 100; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 0.010000; } PANEL_ITEM { ITEM_NAME = "女の閾値の平均値"; ITEM_TYPE = SLIDER; VAR_NAME = WORLD.女の閾値の平均; CONTROL_ON = NO; CONTROL_ON_INT = 0; CONTROL_ON_DOUBLE = 1.000000; CONTROL_ON_STRING = ""; CONTROL_OFF = NO; CONTROL_OFF_INT = 0; CONTROL_OFF_DOUBLE = 0.000000; CONTROL_OFF_STRING = ""; SLIDER_RANGE_MAX = 20; SLIDER_VALUE_MIN = 0.000000; SLIDER_VALUE_STEP = 0.050000; } } //------------------ 説明用HTMLテキスト --------------- //------------------ 空間初期値データ設定部 --------------- SPACE_INITIAL { } //------------------ レポート出力情報設定部 --------------- REPORT_INFO { REPORT_NAME = ""; 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 = 0; POSITION_X = 22; POSITION_Y = 22; SIZE_X = 822; SIZE_Y = 457; } //------------------ 再生用ログデータ ---------------