public static void ShowEntireWorld() { var board = GameBoard.GetBoard(); Console.WriteLine("\n\tNumber Territory\t\tContinent\tOccupant\tArmies"); Console.WriteLine("\t=========================================================================="); foreach (var territory in board.GetEarth().Territories) { Console.Write("\t"); Colour.PrintLand(territory.Continent, territory.TerriroryNumber.ToString()); Console.Write(GameEngine.BufferBuilder(territory.TerriroryNumber.ToString().Length, 7)); Colour.PrintLand(territory.Continent, territory.Name); Console.Write(GameEngine.BufferBuilder(territory.Name.Length, 21)); Colour.PrintLand(territory.Continent, "\t" + territory.Continent); Console.Write(GameEngine.BufferBuilder(territory.Continent.Length, 13)); if (territory.Occupant == "Empty") { Console.Write("\t" + territory.Occupant); } else { Colour.PrintPlayer(GameEngine.GetPlayerColourIndex(territory.Occupant), "\t" + territory.Occupant); } Console.Write(GameEngine.BufferBuilder(territory.Occupant.Length, 16)); Console.Write(territory.Armies + "\n"); } Console.WriteLine("\t=========================================================================="); }
public static void ShowCurrentPlayesTerritories() { var board = GameBoard.GetBoard(); var player = board.CurrentPlayer; Console.WriteLine("\n\tNumber Territory\t\tContinent\tOccupant\tArmies"); Console.WriteLine("\t=========================================================================="); foreach (var territory in board.GetEarth().Territories) { if (territory.Occupant == player.Name) { Console.Write("\n\t"); Colour.PrintLand(territory.Continent, territory.TerriroryNumber.ToString()); Console.Write(GameEngine.BufferBuilder(territory.TerriroryNumber.ToString().Length, 7)); Colour.PrintLand(territory.Continent, territory.Name); Console.Write(GameEngine.BufferBuilder(territory.Name.Length, 21)); Colour.PrintLand(territory.Continent, "\t" + territory.Continent); Console.Write(GameEngine.BufferBuilder(territory.Continent.Length, 13)); Colour.PrintPlayer(GameEngine.GetPlayerColourIndex(territory.Occupant), "\t" + territory.Occupant); Console.Write(GameEngine.BufferBuilder(territory.Occupant.Length, 15)); Console.Write("\t" + territory.Armies); Console.Write(GameEngine.BufferBuilder(territory.Armies.ToString().Length, 8)); } } }
public static Dictionary <int, int> ShowTerritoriesNeighbours(Territory attacker) { Console.WriteLine("\n\tAttacker\t\tContinent\tOccupant\tArmies"); Console.WriteLine("\t=========================================================================="); Colour.PrintLand(attacker.Continent, "\t" + attacker.Name); Console.Write(GameEngine.BufferBuilder(attacker.Name.Length, 21)); Colour.PrintLand(attacker.Continent, "\t" + attacker.Continent); Console.Write(GameEngine.BufferBuilder(attacker.Continent.Length, 13)); if (attacker.Occupant == "Empty") { Console.Write("\t" + attacker.Occupant); } else { Colour.PrintPlayer(GameEngine.GetPlayerColourIndex(attacker.Occupant), "\t" + attacker.Occupant); } Console.Write(GameEngine.BufferBuilder(attacker.Occupant.Length, 16)); Console.Write(attacker.Armies); Console.WriteLine("\n\t=========================================================================="); Console.WriteLine("\n\tNumber neighbours\t\tContinent\tOccupant\tArmies"); Console.WriteLine("\t=========================================================================="); var option = 1; var numberMap = new Dictionary <int, int>(); foreach (var neighbour in attacker.Neighbours) { Console.Write("\t"); Colour.PrintLand(neighbour.Continent, option.ToString()); numberMap.Add(option, neighbour.TerriroryNumber); option++; Console.Write(GameEngine.BufferBuilder(option.ToString().Length, 7)); Colour.PrintLand(neighbour.Continent, neighbour.Name); Console.Write(GameEngine.BufferBuilder(neighbour.Name.Length, 21)); Colour.PrintLand(neighbour.Continent, "\t" + neighbour.Continent); Console.Write(GameEngine.BufferBuilder(neighbour.Continent.Length, 13)); if (neighbour.Occupant == "Empty") { Console.Write("\t" + neighbour.Occupant); } else { Colour.PrintPlayer(GameEngine.GetPlayerColourIndex(neighbour.Occupant), "\t" + neighbour.Occupant); } Console.Write(GameEngine.BufferBuilder(neighbour.Occupant.Length, 16)); Console.Write(neighbour.Armies + "\n"); } Console.WriteLine("\t=========================================================================="); return(numberMap); }
private static void ArrangeBattle(Attack attack) { Console.Clear(); Colour.SouthAmericaRed("\t **** Risk! ****\n"); Console.WriteLine("\t=========================="); Console.WriteLine("\t Battle Options"); Colour.PrintLand(attack.AttackingTerritory.Continent, "\n\t" + attack.AttackingTerritory.Name); Console.Write(", Occupied by "); Colour.PrintPlayer(attack.Attacker.Colour, attack.Attacker.Name); Console.Write(" is Attacking with "); Colour.SouthAmericaRed(attack.AttackingTerritory.Armies.ToString()); Console.Write(" armies."); Colour.PrintLand(attack.DefendingTerritory.Continent, "\n\t" + attack.DefendingTerritory.Name); Console.Write(", Occupied by "); Colour.PrintPlayer(attack.Defender.Colour, attack.Defender.Name); Console.Write(" is Defending with "); Colour.SouthAmericaRed(attack.DefendingTerritory.Armies.ToString()); Console.Write(" armies.\n"); var first = false; while (first == false) { Colour.PrintPlayer(attack.Attacker.Colour, "\n\t" + attack.Attacker.Name); var attackDie = GameEngine.UserInputTest("\n\tHow many Dice would you like to attack with (1-3) : ", "\tInvalid input, please try again!", 1, 3); if (CheckDieOption(attackDie, "attacker", attack.AttackingTerritory)) { attack.AttackDiceCount = attackDie; first = true; } } var second = false; while (second == false) { Colour.PrintPlayer(attack.Defender.Colour, "\n\t" + attack.Defender.Name); var defendDie = GameEngine.UserInputTest("\n\tHow many Dice would you like to to defend with (1-2) : ", "\tInvalid input, please try again!", 1, 2); if (CheckDieOption(defendDie, "defender", attack.DefendingTerritory)) { attack.DefendDiceCount = defendDie; second = true; } } }
private void TerritoryConquered(Attack attack) { Console.Clear(); Colour.SouthAmericaRed("\t **** Risk! ****\n"); Console.WriteLine("\t=========================="); Console.WriteLine("\t Victory!"); Colour.PrintPlayer(attack.Attacker.Colour, "\t" + attack.Attacker.Name); Console.Write(", you have defeated all of the armies in "); Colour.PrintLand(attack.DefendingTerritory.Continent, attack.DefendingTerritory.Name); attack.DefendingTerritory.Occupant = attack.Attacker.Name; var landCount = CountPlayersTerritories(attack.Attacker); if (landCount == 42) { OnGameCompleted(); } if (attack.AttackingTerritory.Armies == 2) { Console.WriteLine("\n\tOne army has been moved to {0}.", attack.Defender.Name); attack.AttackingTerritory.Armies -= 1; attack.DefendingTerritory.Armies += 1; } else { Console.WriteLine("\n\tSelect the number of armies you wish to move from {0}, to occupy {1} with.", attack.AttackingTerritory.Name, attack.DefendingTerritory.Name); var armies = attack.AttackingTerritory.Armies - 1; var prompt = "\t(1-" + armies + ")>"; var option = GameEngine.UserInputTest(prompt, "\tInvalid input, please try again!", 1, armies); attack.AttackingTerritory.Armies -= option; attack.DefendingTerritory.Armies += option; } GameBoard.GetBoard().CurrentPlayer.ConqueredDuringTurn += 1; Console.WriteLine("\tPress any key to continue...."); Console.ReadKey(); CheckUserHasTerritories(attack.Defender, attack.Attacker); }