Exemple #1
0
        // Parses initialize XML and calls initialize on player
        // Returns void XML response
        public String initializeHandler(XElement initXML)
        {
            XMLDecoder.checkOrderOfTagsFromXML(new List <string> {
                "color", "list"
            },
                                               initXML.Elements().ToList());

            String        color       = XMLDecoder.xmlToColor(initXML.Element("color"));
            List <string> playerOrder = XMLDecoder.xmlToListOfColors(initXML.Element("list"));

            player.initialize(color, playerOrder);

            // Return void
            return(XMLEncoder.toString(XMLEncoder.encodeVoid()));
        }
Exemple #2
0
        // Parses and responses to an XML query about the competitor
        // Returns XML string of response
        public String interpretQuery(String query)
        {
            XElement queryXML = XElement.Parse(query);
            String   command  = queryXML.Name.ToString();
            String   response = null;

            switch (command)
            {
            case "get-name":
                String name = player.getName();
                response = XMLEncoder.nameToXML(name).ToString();
                break;

            case "initialize":
                response = initializeHandler(queryXML);
                break;

            case "place-pawn":
                XElement boardXML = queryXML.Element("board");
                Board    board    = XMLDecoder.xmlToBoard(boardXML);
                Posn     posn     = player.placePawn(board);
                response = XMLEncoder.RemoveWhitespace(XMLEncoder.posnToPawnLocXML(posn).ToString());
                break;

            case "play-turn":
                response = playTurnHandler(queryXML);
                break;

            case "end-game":
                XElement      xmlBoardEndGame = queryXML.Element("board");
                Board         bEndGame        = XMLDecoder.xmlToBoard(xmlBoardEndGame);
                XElement      xmlPlayerColors = queryXML.Element("set");
                List <string> playerColors    = new List <string>();
                foreach (XElement playerColorXml in xmlPlayerColors.Descendants("color"))
                {
                    playerColors.Add(XMLDecoder.xmlToColor(playerColorXml));
                }
                response = XMLEncoder.encodeVoid().ToString();
                break;

            default:
                throw new Exception("Outgoing competitor command not understand " +
                                    "the command " + command);
            }

            return(response);
        }