private static void testMoveOut(ILudoEngine ludoEngine) { while (true) { int result; do { result = ludoEngine.TossDice(); } while (result != 6); Console.WriteLine("Player " + ludoEngine.CurrentPlayer + " finally got a 6"); Console.WriteLine("Before moving out: " + ludoEngine.Squares[(ludoEngine.CurrentPlayer - 1) * 10].Occupied); Console.WriteLine("Moving out token..."); ludoEngine.MoveOutToken(); Console.WriteLine("After moving out: " + ludoEngine.Squares[(ludoEngine.CurrentPlayer - 1) * 10].Occupied); Console.ReadKey(); } //int currentPlayer = ludoEngine.CurrentPlayer; //Console.WriteLine("Player " + ludoEngine.CurrentPlayer + "'s start position occupied: " + ludoEngine.Squares[i*10].Occupied); // Console.WriteLine("Moving out player " + ludoEngine.CurrentPlayer + "'s token"); // ludoEngine.MoveOutToken(); //Console.WriteLine("Player " + ludoEngine.CurrentPlayer + "'s start position occupied: " + ludoEngine.Squares[i*10].Occupied); //Console.WriteLine("It is now player " + ludoEngine.CurrentPlayer + "'s turn"); //Console.WriteLine(); }
private static void testSquares(ILudoEngine ludoEngine) { Square[] squares = ludoEngine.Squares; for (int i = 0; i < squares.Length; i++) { Console.WriteLine((i + 1) + ": " + squares[i].TokenColor); } }
private static void testHomeYards(ILudoEngine ludoEngine) { HomeYard[] homeYards = ludoEngine.HomeYards; for (int i = 0; i < homeYards.Length; i++) { Console.WriteLine("Home yard " + (i + 1) + ": " + homeYards[i].TokenColor); Console.WriteLine("Is full: " + homeYards[i].IsFull()); } }
private static void testToss(ILudoEngine ludoEngine) { for (int i = 0; i < 10; i++) { Console.Write("Player " + ludoEngine.CurrentPlayer + " rolls dice: "); int result = ludoEngine.TossDice(); Console.WriteLine(result); Console.WriteLine("This means new current player is: Player " + ludoEngine.CurrentPlayer); Console.WriteLine(); } }
public LudoGUI(ILudoEngine engine) { _engine = engine; InitializeComponent(); _screenWidth = SystemParameters.PrimaryScreenWidth; _screenHeight = SystemParameters.WorkArea.Bottom; if (_engine.DiceHistory.Count != 0) { _diceResult = _engine.DiceHistory.Last(); } initGameboard(); updateGraphics(); }
public void SaveState(ILudoEngine ludoEngine) { if (ludoEngine.GameOver) { File.Delete(Path.GetFullPath(FullPath)); return; } //Remove all child elements in order to update new ones xmlDoc.RemoveAll(); //Xml declaration XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); xmlDoc.AppendChild(xmlDecl); XmlNode ludoGameStateNode = xmlDoc.CreateElement("LudoGameState"); //Player count XmlNode playerCountNode = xmlDoc.CreateElement("PlayerCount"); playerCountNode.AppendChild(xmlDoc.CreateTextNode(ludoEngine.PlayerCount.ToString())); ludoGameStateNode.AppendChild(playerCountNode); //Current player XmlNode currentPlayerNode = xmlDoc.CreateElement("CurrentPlayer"); currentPlayerNode.AppendChild(xmlDoc.CreateTextNode(ludoEngine.CurrentPlayer.ToString())); ludoGameStateNode.AppendChild(currentPlayerNode); //Dice tossed XmlNode diceTossedNode = xmlDoc.CreateElement("DiceTossed"); diceTossedNode.AppendChild(xmlDoc.CreateTextNode(ludoEngine.DiceTossed.ToString())); ludoGameStateNode.AppendChild(diceTossedNode); //Game over XmlNode gameOverNode = xmlDoc.CreateElement("GameOver"); gameOverNode.AppendChild(xmlDoc.CreateTextNode(ludoEngine.GameOver.ToString())); ludoGameStateNode.AppendChild(gameOverNode); //Dice history XmlNode diceHistoryNode = xmlDoc.CreateElement("DiceHistory"); foreach (int result in ludoEngine.DiceHistory) { XmlNode resultNode = xmlDoc.CreateElement("DiceResult"); resultNode.AppendChild(xmlDoc.CreateTextNode(result.ToString())); diceHistoryNode.AppendChild(resultNode); } ludoGameStateNode.AppendChild(diceHistoryNode); //Winners XmlNode winnersNode = xmlDoc.CreateElement("Winners"); foreach (int winner in ludoEngine.Winners) { XmlNode winnerNode = xmlDoc.CreateElement("Winner"); winnerNode.AppendChild(xmlDoc.CreateTextNode(winner.ToString())); winnersNode.AppendChild(winnerNode); } ludoGameStateNode.AppendChild(winnersNode); //Squares XmlNode squaresNode = xmlDoc.CreateElement("Squares"); foreach (Square square in ludoEngine.Squares) { XmlNode squareNode = xmlDoc.CreateElement("Square"); XmlNode colorNode = xmlDoc.CreateElement("TokenColor"); colorNode.AppendChild(xmlDoc.CreateTextNode(square.TokenColor.ToString())); squareNode.AppendChild(colorNode); XmlNode tokenNode = xmlDoc.CreateElement("Token"); if (square.Occupied) { XmlNode tokenColorNode = xmlDoc.CreateElement("TokenColor"); tokenColorNode.AppendChild(xmlDoc.CreateTextNode(square.Token.TokenColor.ToString())); tokenNode.AppendChild(tokenColorNode); XmlNode tokenIDNode = xmlDoc.CreateElement("TokenID"); tokenIDNode.AppendChild(xmlDoc.CreateTextNode(square.Token.TokenID.ToString())); tokenNode.AppendChild(tokenIDNode); XmlNode stepCountNode = xmlDoc.CreateElement("StepCount"); stepCountNode.AppendChild(xmlDoc.CreateTextNode(square.Token.StepCount.ToString())); tokenNode.AppendChild(stepCountNode); } squareNode.AppendChild(tokenNode); squaresNode.AppendChild(squareNode); } ludoGameStateNode.AppendChild(squaresNode); //Home yards XmlNode homeYardsNode = xmlDoc.CreateElement("HomeYards"); foreach (HomeYard homeYard in ludoEngine.HomeYards) { XmlNode homeYardNode = xmlDoc.CreateElement("HomeYard"); XmlNode colorNode = xmlDoc.CreateElement("TokenColor"); colorNode.AppendChild(xmlDoc.CreateTextNode(homeYard.TokenColor.ToString())); homeYardNode.AppendChild(colorNode); XmlNode tokensNode = xmlDoc.CreateElement("Tokens"); foreach (Token token in homeYard.Tokens) { XmlNode tokenNode = xmlDoc.CreateElement("Token"); XmlNode tokenIDNode = xmlDoc.CreateElement("TokenID"); tokenIDNode.AppendChild(xmlDoc.CreateTextNode(token.TokenID.ToString())); tokenNode.AppendChild(tokenIDNode); tokensNode.AppendChild(tokenNode); } homeYardNode.AppendChild(tokensNode); homeYardsNode.AppendChild(homeYardNode); } ludoGameStateNode.AppendChild(homeYardsNode); //Players XmlNode playersNode = xmlDoc.CreateElement("Players"); foreach (Player player in ludoEngine.Players) { XmlNode playerNode = xmlDoc.CreateElement("Player"); XmlNode colorNode = xmlDoc.CreateElement("TokenColor"); colorNode.AppendChild(xmlDoc.CreateTextNode(player.TokenColor.ToString())); playerNode.AppendChild(colorNode); XmlNode winnerNode = xmlDoc.CreateElement("Winner"); winnerNode.AppendChild(xmlDoc.CreateTextNode(player.Winner.ToString())); playerNode.AppendChild(winnerNode); XmlNode finishedTokensNode = xmlDoc.CreateElement("FinishedTokens"); finishedTokensNode.AppendChild(xmlDoc.CreateTextNode(player.FinishedTokens.ToString())); playerNode.AppendChild(finishedTokensNode); playersNode.AppendChild(playerNode); } ludoGameStateNode.AppendChild(playersNode); //Add ludo game state node xmlDoc.AppendChild(ludoGameStateNode); xmlDoc.Save(FullPath); }