Exemple #1
0
        public void XMLPawnLocToPosnEliminatedPlay()
        {
            XElement boardXML = XElement.Parse("<board>" +
                                               "<map>" +
                                               "<ent><xy><x>0</x><y>0</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>4</n></connect>" +
                                               "<connect><n>1</n><n>5</n></connect>" +
                                               "<connect><n>2</n><n>7</n></connect>" +
                                               "<connect><n>3</n><n>6</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "<ent><xy><x>5</x><y>3</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>1</n></connect>" +
                                               "<connect><n>2</n><n>6</n></connect>" +
                                               "<connect><n>3</n><n>7</n></connect>" +
                                               "<connect><n>4</n><n>5</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "</map>" +
                                               "<map>" +
                                               "<ent><color>red</color><pawn-loc><h></h><n>0</n><n>0</n></pawn-loc></ent>" +
                                               "<ent><color>blue</color><pawn-loc><h></h><n>4</n><n>11</n></pawn-loc></ent>" +
                                               "</map></board>");
            Board board = XMLDecoder.xmlToBoard(boardXML);

            Assert.IsTrue(board.getPlayerPosn("red").isEqual(new Posn(0, 0, 0)));
            Assert.IsTrue(board.getPlayerPosn("blue").isEqual(new Posn(3, 5, 4)));
        }
Exemple #2
0
        private void FileDataBox_TextChanged(object sender, RoutedEventArgs e)
        {
            string dataStart = "";

            if (FileDataBox.Text.Length > 2)
            {
                dataStart = FileDataBox.Text.Substring(0, 3);
            }


            if (dataStart == "MSH")
            {
                Segs.Items.Clear();
                var decoder     = new Hl7Decoder();
                var segListView = decoder.Hl7TreeView(FileDataBox.Text);
                Segs.Items.Add(segListView);
            }
            else if (dataStart.StartsWith("<"))
            {
                Segs.Items.Clear();
                var decoder = new XMLDecoder();
                var xmlSegs = decoder.XmlTreeView(FileDataBox.Text);
                Segs.Items.Add(xmlSegs);

                //Do nothing at the moment.
            }
        }
Exemple #3
0
        public void XMLPawnLocToPosnNormalPlay()
        {
            XElement boardXML = XElement.Parse("<board>" +
                                               "<map>" +
                                               "<ent><xy><x>0</x><y>0</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>4</n></connect>" +
                                               "<connect><n>1</n><n>5</n></connect>" +
                                               "<connect><n>2</n><n>7</n></connect>" +
                                               "<connect><n>3</n><n>6</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "<ent><xy><x>5</x><y>3</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>1</n></connect>" +
                                               "<connect><n>2</n><n>6</n></connect>" +
                                               "<connect><n>3</n><n>7</n></connect>" +
                                               "<connect><n>4</n><n>5</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "</map>" +
                                               "<map>" +
                                               "<ent><color>red</color><pawn-loc><h></h><n>1</n><n>1</n></pawn-loc></ent>" +
                                               "<ent><color>blue</color><pawn-loc><h></h><n>4</n><n>11</n></pawn-loc></ent>" +
                                               "</map></board>");
            Dictionary <string, Posn> colorToPosnMap = XMLDecoder.xmlBoardToPlayerPosns(boardXML);

            Assert.IsTrue(colorToPosnMap["red"].isEqual(new Posn(0, 0, 4)));
            Assert.IsTrue(colorToPosnMap["blue"].isEqual(new Posn(3, 5, 4)));
        }
Exemple #4
0
        public void XMLToListOfActivePlayers()
        {
            XElement activePlayerXML = XElement.Parse("<list>" +
                                                      "<splayer-nodragon><color>red</color>" +
                                                      "<set><tile><connect><n>0</n><n>1</n></connect>" +
                                                      "<connect><n>2</n><n>4</n></connect>" +
                                                      "<connect><n>3</n><n>5</n></connect>" +
                                                      "<connect><n>6</n><n>7</n></connect></tile>" +
                                                      "<tile><connect><n>0</n><n>1</n></connect>" +
                                                      "<connect><n>2</n><n>5</n></connect>" +
                                                      "<connect><n>3</n><n>6</n></connect>" +
                                                      "<connect><n>4</n><n>7</n></connect></tile></set>" +
                                                      "</splayer-nodragon>" +
                                                      "<splayer-nodragon><color>green</color>" +
                                                      "<set><tile><connect><n>0</n><n>1</n></connect>" +
                                                      "<connect><n>2</n><n>6</n></connect>" +
                                                      "<connect><n>3</n><n>7</n></connect>" +
                                                      "<connect><n>4</n><n>5</n></connect></tile>" +
                                                      "<tile><connect><n>0</n><n>3</n></connect>" +
                                                      "<connect><n>1</n><n>6</n></connect>" +
                                                      "<connect><n>2</n><n>5</n></connect>" +
                                                      "<connect><n>4</n><n>7</n></connect></tile>" +
                                                      "<tile><connect><n>0</n><n>7</n></connect>" +
                                                      "<connect><n>1</n><n>6</n></connect>" +
                                                      "<connect><n>2</n><n>3</n></connect>" +
                                                      "<connect><n>4</n><n>5</n></connect></tile></set>" +
                                                      "</splayer-nodragon>" +
                                                      "<splayer-dragon><color>blue</color>" +
                                                      "<set><tile><connect><n>0</n><n>1</n></connect>" +
                                                      "<connect><n>2</n><n>3</n></connect>" +
                                                      "<connect><n>4</n><n>5</n></connect>" +
                                                      "<connect><n>6</n><n>7</n></connect></tile>" +
                                                      "<tile><connect><n>0</n><n>7</n></connect>" +
                                                      "<connect><n>1</n><n>3</n></connect>" +
                                                      "<connect><n>2</n><n>5</n></connect>" +
                                                      "<connect><n>4</n><n>6</n></connect></tile>" +
                                                      "</set></splayer-dragon></list>");

            SPlayer        dragonTileHolder = null;
            List <SPlayer> activePlayers    = new List <SPlayer>();

            foreach (XElement splayerXml in activePlayerXML.Elements())
            {
                SPlayer tempPlayer = XMLDecoder.xmlToSplayer(splayerXml);
                tempPlayer.playerState = SPlayer.State.Playing;

                if (tempPlayer.isDragonHolder())
                {
                    if (dragonTileHolder != null)
                    {
                        throw new TsuroException("Cannot set multiple dragon tile holders.");
                    }
                    dragonTileHolder = tempPlayer;
                }
                activePlayers.Add(tempPlayer);
            }

            Assert.AreEqual("blue", dragonTileHolder.getColor());
        }
Exemple #5
0
        public void InvalidPosnXmlThrowsException()
        {
            XElement xmlPosnInvalid = new XElement("pawn-loc",
                                                   new XElement("g", ""),
                                                   new XElement("n", 3),
                                                   new XElement("n", 6));

            List <Posn> actual = XMLDecoder.xmlToPosn(xmlPosnInvalid);
        }
Exemple #6
0
        public void XMLToBoardStartGame()
        {
            XElement boardXML = XElement.Parse("<board>" +
                                               "<map>" +
                                               "<ent><xy><x>0</x><y>1</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>1</n></connect>" +
                                               "<connect><n>2</n><n>4</n></connect>" +
                                               "<connect><n>3</n><n>6</n></connect>" +
                                               "<connect><n>5</n><n>7</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "</map>" +
                                               "<map>" +
                                               "<ent><color>red</color><pawn-loc><h></h><n>0</n><n>0</n></pawn-loc>" +
                                               "</ent></map></board>");

            Board         expected = new Board();
            TestScenerios test     = new TestScenerios();
            Tile          t1       = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);

            expected.grid[1, 0] = t1;

            SPlayer p1 = new SPlayer("red", new List <Tile>(), new RandomPlayer());

            p1.initialize(expected);
            test.setStartPos(expected, p1, new Posn(-1, 0, 5));

            Board actual = XMLDecoder.xmlToBoard(boardXML);

            // Check boards are the same
            for (int i = 0; i < expected.grid.GetLength(0); i++)
            {
                for (int j = 0; j < expected.grid.GetLength(0); j++)
                {
                    if (expected.grid[i, j] == null)
                    {
                        Assert.IsNull(actual.grid[i, j]);
                    }
                    else
                    {
                        Assert.IsTrue(expected.grid[i, j].isEqual(actual.grid[i, j]));
                    }
                }
            }

            // Check players are the same
            Assert.AreEqual(expected.getNumActive(), actual.getNumActive());
            List <string> expectedActivePlayers = expected.getPlayerOrder();

            foreach (string color in expectedActivePlayers)
            {
                Assert.IsTrue(actual.isOnBoard(color));
            }
        }
Exemple #7
0
        public void StartCore(string filePath, Corel.Interop.VGCore.Application corelApp)
        {
            if (corelApp != null)
            {
                InCorel                      = true;
                CorelAutomation              = new CorelAutomation(corelApp, this);
                this.app                     = corelApp;
                corelApp.OnApplicationEvent += CorelApp_OnApplicationEvent;
            }
            FileInfo file = null;

            try
            {
                FileInfo fileOri = new FileInfo(filePath);
                Title = filePath;
                try
                {
                    if (!Directory.Exists(workerFolder))
                    {
                        Directory.CreateDirectory(workerFolder);
                    }
                }
                catch (IOException ioE)
                {
                    if (ErrorFound != null)
                    {
                        ErrorFound("Erro - " + ioE.Message);
                    }
                    return;
                }
                string newPath = workerFolder + "\\" + fileOri.Name;
                if (File.Exists(newPath))
                {
                    File.Delete(newPath);
                }
                file = fileOri.CopyTo(newPath);
            }
            catch (IOException ioErro)
            {
                if (ErrorFound != null)
                {
                    ErrorFound("Erro - " + ioErro.Message);
                }
                return;
            }
            inputCommands          = new InputCommands(this);
            commands               = (typeof(InputCommands)).GetMethods(BindingFlags.Public | BindingFlags.Instance);
            xmlDecoder             = new XMLDecoder();
            xmlDecoder.LoadFinish += XmlDecoder_LoadFinish;
            Thread thread = new Thread(new ParameterizedThreadStart(LoadFile));

            thread.IsBackground = true;
            thread.Start(file);
        }
Exemple #8
0
        public void XMLBoardToGrid()
        {
            XElement boardXML = XElement.Parse("<board>" +
                                               "<map>" +
                                               "<ent><xy><x>0</x><y>0</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>4</n></connect>" +
                                               "<connect><n>1</n><n>5</n></connect>" +
                                               "<connect><n>2</n><n>7</n></connect>" +
                                               "<connect><n>3</n><n>6</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "<ent><xy><x>5</x><y>3</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>1</n></connect>" +
                                               "<connect><n>2</n><n>6</n></connect>" +
                                               "<connect><n>3</n><n>7</n></connect>" +
                                               "<connect><n>4</n><n>5</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "</map>" +
                                               "<map>" +
                                               "<ent><color>red</color><pawn-loc><h></h><n>0</n><n>0</n></pawn-loc>" +
                                               "</ent></map></board>");

            Tile[,] actualBoardGrid   = XMLDecoder.xmlBoardToGrid(boardXML);
            Tile[,] expectedBoardGrid = new Tile[6, 6];
            TestScenerios test = new TestScenerios();
            Tile          t1   = test.makeTile(0, 4, 1, 5, 2, 7, 3, 6);
            Tile          t2   = test.makeTile(0, 1, 2, 6, 3, 7, 4, 5);

            expectedBoardGrid[0, 0] = t1;
            expectedBoardGrid[3, 5] = t2;

            // Check boards are the same
            for (int i = 0; i < expectedBoardGrid.GetLength(0); i++)
            {
                for (int j = 0; j < expectedBoardGrid.GetLength(0); j++)
                {
                    if (expectedBoardGrid[i, j] == null)
                    {
                        Assert.IsNull(actualBoardGrid[i, j]);
                    }
                    else
                    {
                        Assert.IsTrue(expectedBoardGrid[i, j].isEqual(actualBoardGrid[i, j]));
                    }
                }
            }
        }
Exemple #9
0
        public void XMLToTile()
        {
            XElement t1XML = new XElement("tile",
                                          new XElement("connect",
                                                       new XElement("n", 0),
                                                       new XElement("n", 1)),
                                          new XElement("connect",
                                                       new XElement("n", 2),
                                                       new XElement("n", 3)),

                                          new XElement("connect",
                                                       new XElement("n", 4),
                                                       new XElement("n", 5)),

                                          new XElement("connect",
                                                       new XElement("n", 6),
                                                       new XElement("n", 7)));
            TestScenerios test       = new TestScenerios();
            Tile          t1Expected = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7);
            Tile          t1Actual   = XMLDecoder.xmlToTile(t1XML);

            Assert.IsTrue(t1Expected.isEqualOrRotation(t1Actual));
        }
Exemple #10
0
        public void xmlToPosn()
        {
            XElement xmlPosn = new XElement("pawn-loc",
                                            new XElement("h", ""),
                                            new XElement("n", 1),
                                            new XElement("n", 4));
            Posn        posnExpected1 = new Posn(1, 2, 0);
            Posn        posnExpected2 = new Posn(0, 2, 5);
            List <Posn> expected      = new List <Posn> {
                posnExpected1, posnExpected2
            };

            List <Posn> actual = XMLDecoder.xmlToPosn(xmlPosn);

            Assert.IsTrue(actual.Exists(x => x.isEqual(posnExpected1)));
            Assert.IsTrue(actual.Exists(x => x.isEqual(posnExpected2)));
            Assert.AreEqual(actual.Count, expected.Count);



            XElement xmlPosn2 = new XElement("pawn-loc",
                                             new XElement("v", ""),
                                             new XElement("n", 3),
                                             new XElement("n", 6));

            posnExpected1 = new Posn(3, 2, 2);
            posnExpected2 = new Posn(3, 3, 7);
            expected      = new List <Posn> {
                posnExpected1, posnExpected2
            };

            actual = XMLDecoder.xmlToPosn(xmlPosn2);
            Assert.IsTrue(actual.Exists(x => x.isEqual(posnExpected1)));
            Assert.IsTrue(actual.Exists(x => x.isEqual(posnExpected2)));
            Assert.AreEqual(actual.Count, expected.Count);
        }
Exemple #11
0
        public void TESTINGERRORCODE()
        {
            XElement drawTilesXml         = XElement.Parse("<list></list>");
            XElement onBoardPlayersXml    = XElement.Parse("<list><splayer-nodragon><color>sienna</color><set></set></splayer-nodragon><splayer-dragon><color>red</color><set></set></splayer-dragon></list>");
            XElement eliminatedPlayersXml = XElement.Parse("<list><splayer-nodragon><color>blue</color><set></set></splayer-nodragon><splayer-nodragon><color>orange</color><set></set></splayer-nodragon><splayer-nodragon><color>green</color><set></set></splayer-nodragon><splayer-nodragon><color>hotpink</color><set></set></splayer-nodragon></list>");
            XElement boardXml             = XElement.Parse("<board><map><ent><xy><x>3</x><y>3</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>2</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>5</n></connect><connect><n>3</n><n>4</n></connect></tile></ent><ent><xy><x>2</x><y>1</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>7</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>2</x><y>5</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>6</n></connect></tile></ent><ent><xy><x>4</x><y>0</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>7</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>4</x><y>4</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>3</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>5</n></connect></tile></ent><ent><xy><x>5</x><y>1</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>4</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>5</x><y>5</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>3</x><y>1</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>3</x><y>5</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>5</n></connect><connect><n>3</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>4</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>4</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>2</x><y>3</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>4</n><n>7</n></connect></tile></ent><ent><xy><x>4</x><y>2</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>5</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>6</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>5</x><y>3</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>4</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>2</x><y>0</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>5</y></xy><tile><connect><n>0</n><n>6</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>7</n></connect><connect><n>4</n><n>5</n></connect></tile></ent><ent><xy><x>2</x><y>4</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>1</x><y>1</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>4</n></connect><connect><n>6</n><n>7</n></connect></tile></ent><ent><xy><x>4</x><y>3</y></xy><tile><connect><n>0</n><n>7</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>4</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>0</x><y>2</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>6</n></connect><connect><n>3</n><n>7</n></connect></tile></ent><ent><xy><x>5</x><y>0</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>2</n></connect><connect><n>3</n><n>7</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>5</x><y>4</y></xy><tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>5</n></connect><connect><n>3</n><n>4</n></connect><connect><n>6</n><n>7</n></connect></tile></ent><ent><xy><x>3</x><y>0</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>5</n></connect><connect><n>4</n><n>7</n></connect></tile></ent><ent><xy><x>3</x><y>4</y></xy><tile><connect><n>0</n><n>5</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>7</n></connect><connect><n>4</n><n>6</n></connect></tile></ent><ent><xy><x>1</x><y>3</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>4</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>2</x><y>2</y></xy><tile><connect><n>0</n><n>5</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>6</n></connect></tile></ent><ent><xy><x>4</x><y>5</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>7</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>0</x><y>4</y></xy><tile><connect><n>0</n><n>4</n></connect><connect><n>1</n><n>3</n></connect><connect><n>2</n><n>6</n></connect><connect><n>5</n><n>7</n></connect></tile></ent><ent><xy><x>0</x><y>0</y></xy><tile><connect><n>0</n><n>3</n></connect><connect><n>1</n><n>2</n></connect><connect><n>4</n><n>7</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>5</x><y>2</y></xy><tile><connect><n>0</n><n>5</n></connect><connect><n>1</n><n>6</n></connect><connect><n>2</n><n>7</n></connect><connect><n>3</n><n>4</n></connect></tile></ent><ent><xy><x>1</x><y>0</y></xy><tile><connect><n>0</n><n>7</n></connect><connect><n>1</n><n>4</n></connect><connect><n>2</n><n>3</n></connect><connect><n>5</n><n>6</n></connect></tile></ent><ent><xy><x>3</x><y>2</y></xy><tile><connect><n>0</n><n>7</n></connect><connect><n>1</n><n>5</n></connect><connect><n>2</n><n>4</n></connect><connect><n>3</n><n>6</n></connect></tile></ent></map><map><ent><color>orange</color><pawn-loc><v></v><n>0</n><n>9</n></pawn-loc></ent><ent><color>red</color><pawn-loc><v></v><n>5</n><n>2</n></pawn-loc></ent><ent><color>sienna</color><pawn-loc><h></h><n>2</n><n>9</n></pawn-loc></ent><ent><color>blue</color><pawn-loc><h></h><n>0</n><n>5</n></pawn-loc></ent><ent><color>hotpink</color><pawn-loc><v></v><n>6</n><n>8</n></pawn-loc></ent><ent><color>green</color><pawn-loc><v></v><n>0</n><n>5</n></pawn-loc></ent></map></board>");
            XElement tileToPlayXml        = XElement.Parse("<tile><connect><n>0</n><n>1</n></connect><connect><n>2</n><n>3</n></connect><connect><n>4</n><n>5</n></connect><connect><n>6</n><n>7</n></connect></tile>");

            List <Tile> drawPile   = XMLDecoder.xmlToListOfTiles(drawTilesXml);
            Board       b          = XMLDecoder.xmlToBoard(boardXml);
            Tile        tileToPlay = XMLDecoder.xmlToTile(tileToPlayXml);

            SPlayer        dragonTileHolder = null;
            List <SPlayer> activePlayers    = new List <SPlayer>();

            foreach (XElement splayerXml in onBoardPlayersXml.Elements())
            {
                SPlayer tempPlayer = XMLDecoder.xmlToSplayer(splayerXml);
                tempPlayer.playerState = SPlayer.State.Playing;

                if (tempPlayer.isDragonHolder())
                {
                    if (dragonTileHolder != null)
                    {
                        throw new TsuroException("Cannot set multiple dragon tile holders.");
                    }
                    dragonTileHolder = tempPlayer;
                }
                activePlayers.Add(tempPlayer);
            }

            List <SPlayer> eliminatedPlayers = new List <SPlayer>();

            foreach (XElement splayerXml in eliminatedPlayersXml.Elements())
            {
                SPlayer tempPlayer = XMLDecoder.xmlToSplayer(splayerXml);
                eliminatedPlayers.Add(tempPlayer);
            }

            // Run our version of play a turn
            Admin      admin = new Admin(activePlayers, eliminatedPlayers, dragonTileHolder, drawPile);
            TurnResult tr    = admin.playATurn(b, tileToPlay);

            Assert.AreEqual(0, tr.currentPlayers.Count);
            Assert.AreEqual(6, tr.eliminatedPlayers.Count);
            Assert.AreEqual(2, tr.playResult.Count);

            //Convert our turn result into xml strings
            string outDrawPileXml          = XMLEncoder.listOfTilesToXML(tr.drawPile).ToString();
            string outActivePlayersXml     = XMLEncoder.listOfSPlayerToXML(tr.currentPlayers, admin).ToString();
            string outEliminatedPlayersXml = XMLEncoder.listOfSPlayerToXML(tr.eliminatedPlayers, admin).ToString();
            string outBoardXml             = XMLEncoder.boardToXML(tr.b).ToString();
            string outwinnersXML;

            if (tr.playResult == null)
            {
                outwinnersXML = XMLEncoder.encodeFalse().ToString();
            }
            else
            {
                outwinnersXML = XMLEncoder.listOfSPlayerToXML(tr.playResult, admin).ToString();
            }

            // Print XML Strings out through stdout
            Console.WriteLine(XMLEncoder.RemoveWhitespace(outDrawPileXml));
            Console.WriteLine(XMLEncoder.RemoveWhitespace(outActivePlayersXml));
            Console.WriteLine(XMLEncoder.RemoveWhitespace(outEliminatedPlayersXml));
            Console.WriteLine(XMLEncoder.RemoveWhitespace(outBoardXml));
            Console.WriteLine(XMLEncoder.RemoveWhitespace(outwinnersXML));

            Console.Out.WriteLine();
        }
Exemple #12
0
        public void XMLToBoardBothActiveAndEliminatedPlayers()
        {
            XElement boardXML = XElement.Parse("<board>" +
                                               "<map>" +
                                               "<ent>" +
                                               "<xy><x>1</x><y>2</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>1</n></connect>" +
                                               "<connect><n>2</n><n>4</n></connect>" +
                                               "<connect><n>3</n><n>6</n></connect>" +
                                               "<connect><n>5</n><n>7</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "<ent>" +
                                               "<xy><x>0</x><y>0</y></xy>" +
                                               "<tile>" +
                                               "<connect><n>0</n><n>1</n></connect>" +
                                               "<connect><n>2</n><n>3</n></connect>" +
                                               "<connect><n>4</n><n>5</n></connect>" +
                                               "<connect><n>6</n><n>7</n></connect>" +
                                               "</tile>" +
                                               "</ent>" +
                                               "</map>" +
                                               "<map>" +
                                               "<ent><color>red</color><pawn-loc><h></h><n>0</n><n>0</n></pawn-loc></ent>" +
                                               "<ent><color>blue</color><pawn-loc><h></h><n>3</n><n>3</n></pawn-loc></ent>" +
                                               "</map>" +
                                               "</board>");

            Board         expected = new Board();
            TestScenerios test     = new TestScenerios();
            Tile          t1       = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);
            Tile          t2       = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7);

            expected.placeTileAt(t1, 2, 1);
            expected.placeTileAt(t2, 0, 0);

            SPlayer p1 = new SPlayer("red", new List <Tile>(), new RandomPlayer());

            //p1.initialize(expected);
            test.setStartPos(expected, p1, new Posn(0, 0, 0));

            SPlayer p2 = new SPlayer("blue", new List <Tile>(), new RandomPlayer());

            //p2.initialize(expected);
            test.setStartPos(expected, p2, new Posn(2, 1, 4));

            Board actual = XMLDecoder.xmlToBoard(boardXML);

            // Check boards are the same
            for (int i = 0; i < expected.getBoardLength(); i++)
            {
                for (int j = 0; j < expected.getBoardLength(); j++)
                {
                    if (expected.getTileAt(i, j) == null)
                    {
                        Assert.IsNull(actual.getTileAt(i, j));
                    }
                    else
                    {
                        Assert.IsTrue(expected.getTileAt(i, j).isEqualOrRotation(actual.getTileAt(i, j)));
                    }
                }
            }

            // Check players are the same
            //Assert.IsTrue(actual.isOnBoard("blue"));
            //Assert.IsFalse(actual.isOnBoard("red"));

            //Assert.IsTrue(actual.isEliminated("red"));
            //Assert.IsFalse(actual.isEliminated("blue"));

            //Assert.AreEqual(1, actual.getNumActive());
            //Assert.AreEqual(1, actual.getNumEliminated());
        }