Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public LogicNode ParseTest([PexAssumeUnderTest] LogicTree target, string parsestring)
        {
            LogicNode result = target.Parse(parsestring);

            return(result);
            // TODO: add assertions to method LogicTreeTest.ParseTest(LogicTree, String)
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public void ComplexParsingTest()
        {
            LogicTree tree = new LogicTree();

            string    s    = "((p^(qVr)))";
            LogicNode root = tree.Parse(s);

            Assert.AreEqual(s, root.ToString());
        }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
        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");
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
    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");
                    }
                }
            }
        }
    }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
    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);
    }
Ejemplo n.º 12
0
        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());
        }
Ejemplo n.º 13
0
        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());
        }