public void PrintNodes() { var tree = new LogicTree(); var stringBuilder = new StringBuilder(); stringBuilder.Append("digraph G {" + Environment.NewLine); foreach (var treeNode in tree.Nodes.Values) { var declaration = string.Format("{0}" + "[shape=record,", treeNode.Name); var label = " label=" + "\""; var header = string.Format("{{" + "{0}|", treeNode.Name); var ownFactor = string.Format("{{" + "Factor:|" + "{0}" + "}}", treeNode.OwnFactor.Value); var result = string.Format("|" + "{{" + "Result:|" + "{0}" + "}}", treeNode.CompleteFactor.Value); var closingBrackets = "}\"" + "];"; stringBuilder.Append("\t" + declaration + label + header + ownFactor + result + closingBrackets + Environment.NewLine); } foreach (var treeNode in tree.Nodes.Values) { foreach (var child in tree.GetChildren(treeNode)) { var connection = treeNode.Name + " -> " + child.Name; stringBuilder.Append("\t" + connection + Environment.NewLine); } } stringBuilder.Append("}"); WriteText(stringBuilder.ToString()); }
public LogicNode ParseTest([PexAssumeUnderTest] LogicTree target, string parsestring) { LogicNode result = target.Parse(parsestring); return(result); // TODO: add assertions to method LogicTreeTest.ParseTest(LogicTree, String) }
public List <Node> CreateNodes() { _tree = new LogicTree(); var graphTree = new Tree <Node>(); var root = CreateNode(_tree.Root, 0); graphTree.AddNode(_tree.Root.Name, root); foreach (var kvp in _tree.Nodes) { var logicNode = kvp.Value; if (logicNode.Parent == null) { continue; } var parent = graphTree.GetNode(logicNode.Parent.Name); var newNode = CreateNode(logicNode, parent.Rect.position.x); graphTree.AddNode(logicNode.Name, newNode); _connectNodes(newNode, parent); } return(graphTree.Nodes); }
public void ComplexParsingTest() { LogicTree tree = new LogicTree(); string s = "((p^(qVr)))"; LogicNode root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); }
private bool ChopTree2(LogicJack jack, LogicTree logicTree, bool directly = true) { if (logicTree.BeingChopped(jack, directly)) { cellControl[logicTree.x, logicTree.y] = null; logicTree.Flush(this); return(true); } return(false); }
internal int EstimateEarnedPoints(LogicTree tree, List <LogicTree> domino) { int p = 0; if (domino.Count > 0) { p = domino.Count + 1; p *= p; } else { p = 1; } return(p); }
static void Main(string[] args) { // Adding a change.. const string MARKER = "-------------------"; LogicTree tree = new LogicTree(); Console.WriteLine(MARKER); LogicNode root = tree.Parse("!p^q"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("p^qVr"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("p^(qVr)"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("p^!(qVr)"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("(p^q)Vr"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("p^(qVr)^s"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("(p^(qVr))"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("((p^q)Vr)"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("(!(p^(qVr)))"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); Console.WriteLine(MARKER); root = tree.Parse("(p^(!(qVr)))"); Console.WriteLine("Node.ToString() == " + root.ToString() + "\r\n"); }
private ActionResult _InboundSetupWithQpcIdNum(string carrierId, string recordingId, string qpcIdNum, Interview interview) { ActionResult result = null; var recordIdentifier = RecordIdentifier.FindByQpcIdNum(qpcIdNum, int.Parse(carrierId)); #if NET472 if (recordIdentifier != null) { //Map carrier program for inbound calls for carriers having different programs with same parent carrier var carrierProgram = Customizable.GetCarrierProgram(carrierId.ToString()); if (carrierProgram != null) { recordIdentifier.CarrierId = carrierProgram.carrierId; } //Session["CarrierId"] = carrierProgram.carrierId; else { recordIdentifier.CarrierId = int.Parse(carrierId); } //Session["CarrierId"] = int.Parse(carrierId); var remote = this.HttpContext.Connection.RemoteIpAddress; var local = this.HttpContext.Connection.LocalIpAddress; interview.IPAddress = remote.ToString(); interview.RecordingId = recordingId; interview.BeginInterviewInbound(recordIdentifier); var objectNo = recordIdentifier.ObjectNumber; //with objNo updated in BeginInterviewInbound. Gets reset in star LogicTree.StartModule(interview.RecordIdentifier, _GREETING_INBOUND_MODULE); var tree = LogicTree.StartNewTree("GreetingInboundTree", interview.InterviewId, interview.RecordIdentifier); interview.RecordIdentifier.ObjectNumber = objectNo; result = RedirectToAction("View", _QUESTIONS, new { sectionTreeGuid = tree.sectionTreeGuid, pageNodeTypeCd = interview.Policy.IsCCDone ? "GreetingCCDone" : "ChooseInsured", objectNumber = interview.RecordIdentifier.ObjectNumber }); } #endif return(result); }
void S_PlayerInput(int _player, int x, int y, int _treeSelected) { if (blockInput | !_run) { return; } PLAY player = (PLAY)_player; if (player != playing) { return; } TreeType treeSelected = (TreeType)_treeSelected; if (treeSelected != TreeType.None) { // plant a tree if (playground.PlantTree(character, _player, treeSelected, x, y)) { Debug.Log("SERVER Player plant tree OK x,y=" + new Int2(x, y)); StartCoroutine(corPlantTree(_player, x, y, _treeSelected, character[_player].ac, (int)Growth.Small)); } else { Debug.Log("SERVER Player plant tree FAILED"); } } else { // move or chop var op = character[_player].Opponent; if (op.x == x & op.y == y) { // chop player if (playground.ChopPlayer(character[_player], character[(int)op.player])) { Debug.Log("SERVER Player chop player OK"); if (op.hp > 0) { StartCoroutine(corChopPlayer(_player, (int)op.player, character[_player].ac)); } else { StartCoroutine(corMatchEnd(_player)); } } else { Debug.Log("SERVER Player chop player FAILED"); } } else { LogicTree t = playground.TreeAt(x, y); if (t == null) { //move if (playground.PlayerMove(character[_player], x, y)) { Debug.Log("SERVER Player move OK"); StartCoroutine(corPlayerMove(_player, x, y)); } else { Debug.Log("SERVER Player move FAILED"); } } else { // chop tree List <LogicTree> domino; if (playground.ChopTree(character[_player], x, y, out domino)) { Debug.Log("SERVER Player chop tree OK "); StartCoroutine(corChopTree(_player, x, y, domino)); } else { Debug.Log("SERVER Player chop tree FAILED"); } } } } }
public static bool InRange(this LogicTree tree, LogicJack jack, int area) { return(Mathf.Abs(tree.x - jack.x) <= area& Mathf.Abs(tree.y - jack.y) <= area); }
public bool PlantTree(LogicJack[] jacks, int player, TreeType treeSelected, int x, int y) { if (!ValidIndex(x, y)) { Debug.LogError("wtf ? x,y= " + x + "," + y); return(false); } if (cellControl[x, y] != null) { Debug.LogError("there is already a tree at " + x + "," + y); return(false); } foreach (var j in jacks) { if (j.x == x & j.y == y) { return(false); } } if (treeSelected == TreeType.None) { return(false); } LogicJack logicJack = null; if (player >= 0) { logicJack = jacks[player]; if (!logicJack.ValidPlantRange(x, y)) { return(false); } int ac_remain = logicJack.ac - 1; // default plant cost int priorityLock = 0; if (onPlayerTryPlant != null) { onPlayerTryPlant(logicJack, ref ac_remain, ref priorityLock); } if (ac_remain < 0) { return(false); } logicJack.ac = ac_remain; } LogicTree tree = GetTree(treeSelected); tree.Init(this, x, y, logicJack); cellControl[x, y] = tree; if (onPlayerPlantDone != null & player >= 0) { onPlayerPlantDone(logicJack); } return(true); }
public void othertests() { LogicTree tree = new LogicTree(); string s = "p"; LogicNode root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!p"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(!p)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!(p)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!p^q"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^qVr"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(!qVr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!(qVr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^(qVr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^!(qVr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^q)Vr"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^(qVr)^s"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^(qVr))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!(p^(qVr))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "((p^q)Vr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(!(p^(qVr)))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^(!(qVr)))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); }
public void SimpleParsingTest() { LogicTree tree = new LogicTree(); string s = "p^q"; LogicNode root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^q"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^qVr"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!p^r"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "pV!r"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^(qVr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^q)Vr"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!(p^!q)Vr"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(!p^!q)V!(!r^!s)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "p^(qVr)^s"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^(qV!r))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "((p^q)Vr)"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "!((p^q))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^!q)V(!(r^s))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(p^(!(qVr)))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "((p^q))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); s = "(!(p^q))"; root = tree.Parse(s); Assert.AreEqual(s, root.ToString()); }