コード例 #1
0
        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==========================================================================");
        }
コード例 #2
0
        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));
                }
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: BattleBuilder.cs プロジェクト: AlexRoyden/Risk
        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;
                }
            }
        }
コード例 #5
0
        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);
        }