//====================================================================/
//                                                                    /
// KK-Multi Agent Simulator for Java                                  /
//                                                                    /
//====================================================================/

Version = 1.0;



//-------------------------------------------------------
// Component Tree
//-------------------------------------------------------
UNIVERSE {
    Space kuukan(0,0),Square_2D(50, 50, !Loop, North, 1){
        AgtType tama(0, 0)[0] {
            Dim X(0, 0) As Double = ();
            Dim Y(0, 0) As Double = ();
            Dim Layer(0, 0) As Integer = ();
            Dim Direction(0, 0) As Double = ();
        }
    }
}


//-------------------------------------------------------
// Agent Variable Initial Data
//-------------------------------------------------------
Initial_Value {
}


//-------------------------------------------------------
// Agent Rule
//-------------------------------------------------------
#begin_rule UNIVERSE
Univ_Init{

}

Univ_Step_Begin{

createagt(universe.kuukan.tama)

}

Univ_Step_End{

}

Univ_Finish{

}
#end_rule UNIVERSE




//-------------------------------------------------------
// Agent Rule
//-------------------------------------------------------
#begin_rule UNIVERSE.KUUKAN.TAMA
Agt_Init{

}

Agt_Step{
if CountAgtAhead(0.5) == 0 then
	forward(1)
else
	turn(90)
	if CountAgtAhead(0.5) == 0 then
	forward(1)
	end if
	turn(-90)
end if
}

Function CountAgtAhead(distance as Double) As Integer
	{
	dim set as agtset
	dim kazu as integer

	forward(distance)
	MakeAllAgtsetAroundOwn(set, distance, False)
	kazu = Countagtset(set)
	forward(-distance)

	Return(kazu)	
}
#end_rule UNIVERSE.KUUKAN.TAMA




//-------------------------------------------------------
// Simulation Definition Division
//-------------------------------------------------------
Single_Simulation {
    Step_Max = 0;
    Time_Max = 0;
    End_Condition = "";
    Exec_Wait = 0;
    Exec_Order = Random;
    Exec_Order_Random_First_Step_Only = Yes;
    Random_Seed = 0;
    Log_File = "", Fixed, Append, 0;
    Replay_Log_File = "", Fixed, Append, 0;
    Redraw_Timing = Step;
    Redraw_Interval = 1;
    Garbage_Interval = 10;
}


//-------------------------------------------------------
// Simulation Loop Definition Division
//-------------------------------------------------------
Repeat_Simulation {
    Value_Change = None;
    Repeat_Max = 1;
}


//-------------------------------------------------------
// 2 Dimension Map Display Definition Division
//-------------------------------------------------------
Map_Output {
    Map_Space_Name = "Universe.kuukan";
    Map_Name = "kuukan";
    Font_Name = "Dialog";
    Font_Char_Set = 81;
    Font_Size = 12.0;
    Font_Style = 0;
    Font_Color = 0, 0, 0;
    Font_Background_Color = 255, 255, 255;
    Title = "";
    Axis_Label = "", "";
    Draw_Range = 0, 0, 50, 50;
    Ruled_Line = No;
    Remarks = Yes;
    Legend_Pos = Top;
    Background_Color = 0, 0, 0;
    Background_Transparent = No;
    Target_Layer = 0;
    Coordinate_Display = No;
    Space_Kind = Square_2D;
    BG_Pict = No;
    BG_Type = 0;
    BG_Var_Name = "";
    BG_File_Name = "";
    Disable = No;
    Position_x = 100;
    Position_y = 100;
    Size_x = 500;
    Size_y = 300;
    Origin_Position = 2;
    Output {
        Map_Element_Name = "tama";
        Map_Element = Agent_Variable;
        Output_Expression = "Universe.kuukan.tama";
        Draw_Line = No;
        Collection_Name = "";
        Line_Type = 0;
        Line_Arrow = 0;
        Line_Width = 0;
        Line_Color = 0, 0, 0;
        Agent_Color = 255,0,0;
        Marker_Id = 1;
        Icon_Type = 0;
        Icon_Var_Name = "";
        Icon_Transparent = No;
        Icon_Enlarg_Reduce = No;
        Icon_File_Name = "";
        Num_Display = No;
        Num_Var_Name = "";
    }
}


//-------------------------------------------------------
// Control Panel Definition Division
//-------------------------------------------------------
Control_Panel {
    Display_Area = 0, 0, 100, 100;
}


//-------------------------------------------------------
// Space Initial Value Definition Divsion
//-------------------------------------------------------
Space_Initial {
}


//-------------------------------------------------------
// Other Miscellaneous Data Definition Division
//-------------------------------------------------------
Others_Data {
    Indent = 4;
    Rule_Colored = Yes;
    Font_Name = "Dialog";
    Font_Char_Set = 0;
    Font_Size = 12.0;
    Font_Style = 0;
    Font_Color = 0, 0, 0;
    Font_Background_Color = 0, 0, 0;
    Window_Hide_Run = 1;
    Debug_Position_x = 75;
    Debug_Position_y = 75;
    Debug_Size_x = 400;
    Debug_Size_y = 200;
    Console_Position_x = 2;
    Console_Position_y = 400;
    Console_Size_x = 600;
    Console_Size_y = 120;
}