static void Main(string[] args) { Portal port1 = new Portal("NII"); MetaAgent agent1 = new MetaAgent("Dive1"); MetaAgent agent2 = new MetaAgent("Dive2"); MetaAgent agent3 = new MetaAgent("Dive3"); port1.addAgent(agent1); port1.addAgent(agent2); port1.addAgent(agent3); agent1.MessageReceived += new MetaAgent.MessageReceiveHandler(al_MessageReceived); agent2.MessageReceived += new MetaAgent.MessageReceiveHandler(a2_MessageReceived); agent3.MessageReceived += new MetaAgent.MessageReceiveHandler(a3_MessageReceived); while (true) { Console.WriteLine("Display on agent1 \n"); agent1.SendMessage("Dive2", Console.ReadLine()); Console.WriteLine("Display on agent2 \n"); agent2.SendMessage("Dive1", Console.ReadLine()); Console.WriteLine("Display on agent3 \n"); string mess = Console.ReadLine(); Console.WriteLine("Display on agent1 \n"); agent3.SendMessage("Dive1", mess); Console.WriteLine("Display on agent2 \n"); agent3.SendMessage("Dive2", mess); } }
public static NetLogoObject Forward(Number o, NetLogoObject n) { if (sys.GetCurrentFrame().isAsk) { MetaAgent m = (MetaAgent)sys.Get("Agent"); Integer x = new Integer(); x.val = (int)(o.val * Math.Sin(Utils.MathUtilities.DegToRad(((Number)m.properties.GetProperty("rotation")).val))); Integer y = new Integer(); y.val = (int)(o.val * Math.Cos(Utils.MathUtilities.DegToRad(((Number)m.properties.GetProperty("rotation")).val))); x.val = m.x + x.val; y.val = m.y + y.val; if ((x.val > 0) && (x.val < 49)) { m.properties.SetProperty("X", new Integer() { value = x.value }); m.x = (int)x.val; } if ((y.val > 0) && (y.val < 49)) { m.properties.SetProperty("Y", new Integer() { value = y.value }); m.y = (int)y.val; } } return(new NetLogoObject() { ptrID = "NULLPTR" }); }
public void ExecForPatch(int x, int y, TreeNode n) { if (sys.patches.GetLength(0) < x && sys.patches.GetLength(1) < y) { MetaAgent m = sys.patches[x, y]; } }
/// <summary> /// Get a varible from an identity /// </summary> /// <param name="s"></param> /// <returns></returns> public NetLogoObject Get(string s) { if (GetCurrentFrame().param.ContainsKey(s)) { return(GetCurrentFrame().param[s]); } else if (GetCurrentFrame().locals.ContainsKey(s)) { return(GetCurrentFrame().locals[s]); } else if (globals.ContainsKey(s)) { return(globals[s]); } if (GetCurrentFrame().isAsk) { MetaAgent m = (MetaAgent)GetCurrentFrame().param["Agent"]; if (m.properties.GetProperty(s) != null) { return((NetLogoObject)m.properties.GetProperty(s)); } else if (patches[m.x, m.y] != null) { return((NetLogoObject)patches[m.x, m.y].properties.GetProperty(s)); } } return(null); }
/// <summary> /// /// </summary> /// <param name="s"></param> /// <param name="val"></param> public void set(string s, NetLogoObject val) { if (GetCurrentFrame().isAsk) { MetaAgent m = (MetaAgent)GetCurrentFrame().param["Agent"]; if (GetCurrentFrame().locals.ContainsKey(s)) { GetCurrentFrame().locals[s] = val; } else if (patches[m.x, m.y] != null && patches[m.x, m.y].properties.properties.ContainsKey(s)) { if (patches[m.x, m.y].properties.properties.ContainsKey(s)) { patches[m.x, m.y].properties.SetProperty(s, val); } } else if (m.properties.properties.ContainsKey(s)) { m.properties.SetProperty(s, val); } } else { GetCurrentFrame().locals[s] = val; } }
/// <summary> /// Returns data for ask requests /// </summary> /// <param name="breed"></param> /// <returns></returns> public List <MetaAgent> GetBreed(string breed) { List <MetaAgent> data = new List <MetaAgent>(); if (breed == "patches") { foreach (Patch p in patches) { data.Add(p); } } else if (breed == "turtles") { data.AddRange(agents.Values); } else if (breed == "neighbours") { if (GetCurrentFrame().isAsk) { MetaAgent a = (MetaAgent)GetCurrentFrame().param["Agent"]; return(GetNeighbours(((Integer)a.properties.GetProperty("X")).val, ((Integer)a.properties.GetProperty("Y")).val)); } else { throw new RTException("neighbours request passed with no agent"); } } return(data); }
public static void SendRequest_AnnounceWinner(MetaAgent refereeA, MetaAgent playerA, Player currentPlayer) { string message = $"{Environment.NewLine}{Environment.NewLine} {currentPlayer.Name} Won! Congratulations! :)"; refereeA.SendMessage(playerA.Name, message); playerA.MessageReceived += new MetaAgent.MessageReceivedHandler(ReceivedMessageAgent); Thread.Sleep(1000); }
public static void SendRequest_Location(MetaAgent refereeA, MetaAgent playerA) { string message = "Choose the location: "; refereeA.SendMessage(playerA.Name, message); playerA.MessageReceived += new MetaAgent.MessageReceivedHandler(ReceivedMessageAgent); Thread.Sleep(1000); }
protected Agents() { PortalReferee = new Portal("referee"); PortalPlayer = new Portal("player"); PortalComputer = new Portal("computer"); AgentReferee = new MetaAgent(" [Referee] "); AgentPlayer = new MetaAgent("Player"); AgentComputer = new MetaAgent("Computer"); AddingConnecting(); }
public static NetLogoObject Rotate(Number o, NetLogoObject n) { if (sys.GetCurrentFrame().isAsk) { MetaAgent m = (MetaAgent)sys.Get("Agent"); m.properties.SetProperty("rotation", new Number { val = o.val % 360 }); } return(new NetLogoObject() { ptrID = "NULLPTR" }); }
public static NetLogoObject Setxy(Number x, Number y) { if (sys.GetCurrentFrame().isAsk) { MetaAgent m = (MetaAgent)sys.Get("Agent"); m.properties.SetProperty("X", new Integer() { value = x.value }); m.properties.SetProperty("Y", new Integer() { value = y.value }); m.x = (int)x.val; m.y = (int)y.val; } return(new NetLogoObject() { ptrID = "NULLPTR" }); }