Exemple #1
0
    public SingleNode SpawnNewUpgradeNode()
    {
        var randyMcgee = new System.Random();
        int randomx    = randyMcgee.Next(0, 16);
        int randomz    = randyMcgee.Next(0, 16);

        int   randomPanelInt = randyMcgee.Next(0, 4);
        Panel randomPanel    = Panel.front;

        //Setting random next dead side
        switch (randomPanelInt)
        {
        case 0:
            randomPanel = Panel.front;
            break;

        case 1:
            randomPanel = Panel.left;
            break;

        case 2:
            randomPanel = Panel.right;
            break;

        case 3:
            randomPanel = Panel.back;
            break;
        }

        SingleNode randomNode = new SingleNode(randomPanel, randomx, randomz);

        //check against current snake nodes
        for (int snakeNodeIndex = 0; snakeNodeIndex < Snake.snakeNodes.Length; snakeNodeIndex++)
        {
            if (randomNode.IsEqual(Snake.snakeNodes[snakeNodeIndex]))
            {
                return(SpawnNewUpgradeNode());
            }
        }
        //check against current dead nodes
        for (int deadNodeIndex = 0; deadNodeIndex < deadNodes.Length; deadNodeIndex++)
        {
            if (randomNode.IsEqual(deadNodes[deadNodeIndex]))
            {
                return(SpawnNewUpgradeNode());
            }
        }
        ColorUpgrade(randomNode);
        return(randomNode);
    }
Exemple #2
0
    public SingleNode GetRandomDeadNode()
    {
        var randyMcgee = new System.Random();
        int randomx    = randyMcgee.Next(0, 16);
        int randomz    = randyMcgee.Next(0, 16);

        int   randomPanelInt = randyMcgee.Next(0, 4);
        Panel randomPanel    = Panel.front;

        //Setting random next dead side
        switch (randomPanelInt)
        {
        case 0:
            randomPanel = Panel.front;
            break;

        case 1:
            randomPanel = Panel.left;
            break;

        case 2:
            randomPanel = Panel.right;
            break;

        case 3:
            randomPanel = Panel.back;
            break;
        }

        SingleNode randomNode = new SingleNode(randomPanel, randomx, randomz);

        //check against current upgrade node
        if (randomNode.IsEqual(Snake.upgradeNode))
        {
            return(GetRandomDeadNode());
        }
        //check around snakeNode head
        if (randomNode.IsEqual(new SingleNode(Snake.snakeNodes[0].panel, Snake.snakeNodes[0].x + 1, Snake.snakeNodes[0].z)) ||
            randomNode.IsEqual(new SingleNode(Snake.snakeNodes[0].panel, Snake.snakeNodes[0].x - 1, Snake.snakeNodes[0].z)) ||
            randomNode.IsEqual(new SingleNode(Snake.snakeNodes[0].panel, Snake.snakeNodes[0].x, Snake.snakeNodes[0].z + 1)) ||
            randomNode.IsEqual(new SingleNode(Snake.snakeNodes[0].panel, Snake.snakeNodes[0].x, Snake.snakeNodes[0].z - 1)))
        {
            return(GetRandomDeadNode());
        }
        //check against current snake nodes
        for (int snakeNodeIndex = 0; snakeNodeIndex < Snake.snakeNodes.Length; snakeNodeIndex++)
        {
            if (randomNode.IsEqual(Snake.snakeNodes[snakeNodeIndex]))
            {
                return(GetRandomDeadNode());
            }
        }
        //check against current dead nodes
        for (int deadNodeIndex = 0; deadNodeIndex < deadNodes.Length; deadNodeIndex++)
        {
            if (randomNode.IsEqual(deadNodes[deadNodeIndex]))
            {
                return(GetRandomDeadNode());
            }
        }


        SingleNode[] tempDeadNodes = new SingleNode[deadNodes.Length + 1];

        for (int i = 0; i < deadNodes.Length; i++)
        {
            tempDeadNodes[i] = deadNodes[i];
        }
        tempDeadNodes[tempDeadNodes.Length - 1] = randomNode;
        deadNodes = tempDeadNodes;
        return(randomNode);
    }