Exemple #1
0
        public static void ShowDiceImageTwo(GameDice dice, ref string diceImageTwo)
        {
            //DICE Images for die two-------------------------------------------------------------------------//
            if (dice.DiceTwo == 1)
            {
                diceImageTwo = " _____\n" +
                               "|     |\n" +
                               "|  O  |\n" +
                               "|_____|";

                Console.WriteLine(diceImageTwo);
            }
            else if (dice.DiceTwo == 2)
            {
                diceImageTwo = " _____\n" +
                               "|    O|\n" +
                               "|     |\n" +
                               "|O____|";
                Console.WriteLine(diceImageTwo);
            }


            if (dice.DiceTwo == 3)
            {
                diceImageTwo = " _____\n" +
                               "|    O|\n" +
                               "|  O  |\n" +
                               "|O____|";

                Console.WriteLine(diceImageTwo);
            }
            if (dice.DiceTwo == 4)
            {
                diceImageTwo = " _____\n" +
                               "|O   O|\n" +
                               "|     |\n" +
                               "|O___O|";

                Console.WriteLine(diceImageTwo);
            }
            if (dice.DiceTwo == 5)
            {
                diceImageTwo = " _____\n" +
                               "|O   O|\n" +
                               "|  O  |\n" +
                               "|O___O|";

                Console.WriteLine(diceImageTwo);
            }
            if (dice.DiceTwo == 6)
            {
                diceImageTwo = " _____\n" +
                               "|O   O|\n" +
                               "|O   O|\n" +
                               "|O___O|";

                Console.WriteLine(diceImageTwo);
                // }
            }
        }
        public void Given_1RedPiecesAt6_And_1GreenPiecesAt2_Expect_GamePieceIsThreatenedAtTargetPosTrue()
        {
            // Arrange
            var gamePieces = new List <GamePiece>()
            {
                new GamePiece()
                {
                    Color = (GameColor)1, Number = 1, TrackPosition = 35
                },                                                                     //5
                new GamePiece()
                {
                    Color = (GameColor)3, Number = 1, TrackPosition = 12
                }                                                                     //2
            };

            var board = new GameBoard();

            board.UpdateTracks(gamePieces);
            var dice = new GameDice();

            dice.Result = 2;
            var aiPlayer = new GameAI(board, gamePieces, dice);

            board.UpdateTracks(gamePieces);
            // Act

            var gamePieceIsThreatened = aiPlayer.PieceIsThreatenedAtOriginPos(gamePieces[0]);

            // Assert
            Assert.True(gamePieceIsThreatened);
        }
        public void Given_1RedPieces_And_1GreenPiecesAtNotTargetPosition_Expect_GamePieceCanKickFalse()
        {
            // Arrange
            var gamePieces = new List <GamePiece>()
            {
                new GamePiece()
                {
                    Color = (GameColor)1, Number = 1, TrackPosition = 16
                },
                new GamePiece()
                {
                    Color = (GameColor)3, Number = 1, TrackPosition = 3
                }
            };

            var board = new GameBoard();

            board.UpdateTracks(gamePieces);

            var dice = new GameDice();

            dice.Result = 5;

            var aiPlayer = new GameAI(board, gamePieces, dice);

            board.UpdateTracks(gamePieces);
            // Act

            var gamePieceCanKick = aiPlayer.GamePieceCanKick(gamePieces[0]);

            // Assert
            Assert.False(gamePieceCanKick);
        }
 private void ResetAppropriateCube(int toIndex)
 {
     if (GameDice.RolledDouble == false)
     {
         if (_BlackPlayer.IsMyTurn)
         {
             if (PlayerInitialTriangleChoice - toIndex == GameDice.FirstCube)
             {
                 GameDice.ResetFirstCube();
             }
             else
             {
                 GameDice.ResetSecondCube();
             }
         }
         else
         {
             if (toIndex - PlayerInitialTriangleChoice == GameDice.FirstCube)
             {
                 GameDice.ResetFirstCube();
             }
             else
             {
                 GameDice.ResetSecondCube();
             }
         }
     }
 }
 /// <summary>
 /// This method is called when we click on the dice canvas.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Dice_Click(object sender, RoutedEventArgs e)
 {
     bIsDiceClicked       = true;
     DiceCanvas.IsEnabled = false;
     //GameDice.SetFace(currentFace, 100);
     GameDice.EndAnimation();
     //We roll the dice for some time.
     GameDice.StartAnimation(_dbDiceAnimationTime);
 }
Exemple #6
0
 private void SpawnDice(GameDice prefab, int amount, List <GameDice> l)
 {
     amount = Mathf.Clamp(amount, 0, int.MaxValue);
     if (amount == 0)
     {
         return;
     }
     for (int i = 0; i < amount; i++)
     {
         GameDice dice = GameManager.Instance.SpawnObjectOverNetwork(prefab, VectorUtils.GetRandomVector3(-1, 1), Quaternion.Euler(VectorUtils.GetRandomVector3(-100, 100)));
         l.Add(dice);
     }
 }
 private void ResetAppropriateCubeByNumber(int cube)
 {
     if (GameDice.RolledDouble == false)
     {
         if (cube == GameDice.FirstCube)
         {
             GameDice.ResetFirstCube();
         }
         if (cube == GameDice.SecondCube)  // don't enter both if clauses if we got double
         {
             GameDice.ResetSecondCube();
         }
     }
 }
Exemple #8
0
 public void OperateAi(Player currPlayer)
 {
     while (PlayerWon == CheckerColor.Empty &&
            currPlayer.Turns > 0 &&
            currPlayer.Checklegality(GameDice, GameBoard))
     {
         KeyValuePair <int, int> currMove = currPlayer.PlayAiTurn(GameDice, GameBoard);
         currPlayer.Turns--;
         if (!GameDice.IsDouble)
         {
             if (currPlayer.Color == CheckerColor.Black)
             {
                 if (currMove.Key - currMove.Value == GameDice.FirstDice)
                 {
                     GameDice.DisableFirstDice();
                 }
                 else
                 {
                     GameDice.DisableSecondDice();
                 }
             }
             else
             {
                 int gameMove;
                 if (currMove.Key == GameBoard.BarSource)
                 {
                     gameMove = currMove.Value + 1;
                 }
                 else
                 {
                     gameMove = currMove.Value - currMove.Key;
                 }
                 if (gameMove == GameDice.FirstDice)
                 {
                     GameDice.DisableFirstDice();
                 }
                 else
                 {
                     GameDice.DisableSecondDice();
                 }
             }
         }
     }
     if (PlayerWon != currPlayer.Color)
     {
         SwapTurns();
     }
 }
 /// <summary>
 /// This method is called when the size of mainwindow changes.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
 {
     RefreshView();
     Dispatcher.BeginInvoke(new Action(() =>
     {
         OnPropertyChanged("PlayerRBWidth");
         OnPropertyChanged("PlayerRBHeight");
         double constant1 = GameBoard.ActualWidth;
         GameBoard.OnSizeChanged(constant1);
         GameDice.InitializeDice();
         GameDice.SetFace(currentFace);
         //StartGameFontSize = StartGameButton.ActualWidth / 6;
         ResizeLadders();
         ResizeSnakes();
         ResizeTokens();
     }));
 }
Exemple #10
0
        public void When_ThrowDice_Expect_ValueBetween1And6()
        {
            // Arrange
            GameDice gameDice = new GameDice();

            // Act
            int[] results = new int[100];

            for (int i = 0; i < 100; i++)
            {
                gameDice.ThrowDice();
                results[i] = gameDice.Result;
            }

            // Assert
            Assert.All(results, item => Assert.InRange(item, 0, 7));
        }
Exemple #11
0
        public void ThrowDice()
        {
            int currTurns = 2;

            GameDice.ThrowDice();
            if (GameDice.IsDouble)
            {
                currTurns = 4;
            }
            if (FirstPlayer.IsPlayerTurn)
            {
                FirstPlayer.Turns = currTurns;
            }
            else
            {
                SecondPlayer.Turns = currTurns;
            }
        }
        /// <summary>
        /// This method is called when the rolling of dice is completed. So, we can set a new random face to the dice.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DiceAnimation_Completed(object sender, EventArgs e)
        {
            if (bIsDiceClicked == true)
            {
                bIsDiceClicked = false;

                Random diceRandom = new Random();

                currentFace = (DiceFace)diceRandom.Next(1, 7);
                GameDice.SetFace(currentFace);

                int nextPos = Tokens[(int)_currentToken].CurrentPosition;
                if ((Tokens[(int)_currentToken].CanMove == false && (int)currentFace == 6))
                {
                    Tokens[(int)_currentToken].CanMove = true;
                    bIsTokenMoved = true;
                }
                else if (Tokens[(int)_currentToken].CanMove == true)
                {
                    if (nextPos + (int)currentFace > 100)
                    {
                        bIsTokenMoved = false;
                    }
                    else
                    {
                        nextPos       = nextPos + (int)currentFace;
                        bIsTokenMoved = true;
                    }
                }

                Point dest;
                if (nextPos == 0)
                {
                    dest = Tokens[(int)_currentToken].StartPoint;
                }
                else
                {
                    dest = GameBoard.GetCenterCoordinates(nextPos);
                }

                Tokens[(int)_currentToken].CurrentPosition = nextPos;
                Tokens[(int)_currentToken].MoveTo(dest.X, dest.Y);
            }
        }
Exemple #13
0
 public void DecideFirstTurn()
 {
     while (GameDice.FirstDice == GameDice.SecondDice)
     {
         GameDice.ThrowDice();
         if (GameDice.FirstDice > GameDice.SecondDice)
         {
             FirstPlayer.IsPlayerTurn = true;
             FirstPlayer.Turns        = 2;
             IsTurnStart = true;
         }
         else if (GameDice.FirstDice < GameDice.SecondDice)
         {
             SecondPlayer.IsPlayerTurn = true;
             SecondPlayer.Turns        = 2;
             IsTurnStart = true;
         }
     }
 }
        public void GetDiceRolls()
        {
            GameDice.RollDice();

            RolledDice = true;
        }
Exemple #15
0
        //TODO four player/ six player game
        //---------------------------------------------------------
        //public static void FourPlayerBattleCountry(ref List<Commander> players, string directory, GameDice dice,
        //    ref string diceImageOne, ref List<Country> countries, ref bool loop, ref int winner)
        //{

        //}
        //public static void SixPlayerBattleCountry(ref List<Commander> players, string directory, GameDice dice,
        //    ref string diceImageOne, ref List<Country> countries, ref bool loop, ref int winner)
        //{

        //}
        //==============================================================================

        public static void PickBattleCountry(ref List <Commander> players, string directory, GameDice dice,
                                             ref string diceImageOne, ref List <Country> countries, ref bool loop, ref int winner)
        {
            ConsoleKeyInfo keyboard = new ConsoleKeyInfo();

            Console.ForegroundColor = ConsoleColor.White;
            Console.Clear();
            DisplayGameDocuments.DisplayCountriesList(directory);
            Console.ReadLine();

            //Console.WriteLine(StandardMessages.DisplayAvailableCountries(ref countries));
            do
            {
                for (int i = 0; i < countries.Count; i++)
                {
                    Console.WriteLine($"{i + 1}. {countries[i].CountryName}");
                }
                if (winner == 0)
                {
                    Console.WriteLine("\nMake a selection player one -->");
                }
                else if (winner == 1)
                {
                    Console.WriteLine("\nMake a selection player two -->");
                }

                keyboard = Console.ReadKey();
                switch (keyboard.Key)
                {
                case ConsoleKey.D1:
                case ConsoleKey.NumPad1:
                    players[winner].CommanderCountry = countries[0].CountryName;
                    countries.RemoveAt(0);
                    loop = true;

                    break;

                case ConsoleKey.D2:
                case ConsoleKey.NumPad2:
                    players[winner].CommanderCountry = countries[1].CountryName;
                    countries.RemoveAt(1);
                    loop = true;
                    break;

                case ConsoleKey.D3:
                case ConsoleKey.NumPad3:
                    players[winner].CommanderCountry = countries[2].CountryName;
                    countries.RemoveAt(2);
                    loop = true;
                    break;

                case ConsoleKey.D4:
                case ConsoleKey.NumPad4:
                    players[winner].CommanderCountry = countries[3].CountryName;
                    countries.RemoveAt(3);
                    loop = true;
                    break;

                case ConsoleKey.D5:
                case ConsoleKey.NumPad5:
                    players[winner].CommanderCountry = countries[4].CountryName;
                    countries.RemoveAt(4);
                    loop = true;
                    break;

                case ConsoleKey.D6:
                case ConsoleKey.NumPad6:
                    players[winner].CommanderCountry = countries[5].CountryName;
                    countries.RemoveAt(5);
                    loop = true;
                    break;

                case ConsoleKey.Escape:


                    break;

                default:

                    break;
                }
            } while (loop == false);

            //TODO Create Battle Country Selection menu
            //TODO remove country from selection menu when a player chooses it
            //TODO Add battle country to players stats
            //
        }
Exemple #16
0
        //Two player game -----------------------------------------------------------------------------------------
        public static void TwoPlayerBattleCountry(ref List <Commander> players, string directory, GameDice dice,
                                                  ref string diceImageOne, ref List <Country> countries, ref bool loop, ref int winner)
        {
            do
            {
                //Determine who won the roll-----------------------------------------------------------------------------
                int num = 0;
                //string win = "Win"
                int playerNumIdentifier = 1;
                for (int i = 0; i < players.Count; i++)
                {
                    Console.WriteLine($"Player{playerNumIdentifier}: Press enter to roll your dice.");
                    Console.ReadLine();
                    RollDice.RollOneGameDice(ref dice);
                    players[i].DiceNumber = dice.DiceOne;
                    Console.WriteLine("Player" + playerNumIdentifier + "'s roll:");
                    DisplayDiceImage.ShowDiceImageOne(ref dice, ref diceImageOne);
                    Console.WriteLine();
                    playerNumIdentifier++;
                }

                if (players[0].DiceNumber > players[1].DiceNumber)
                {
                    Console.WriteLine("Player one wins first pick! ");
                    Console.ReadLine();
                    winner = 0;
                    PickBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref winner);
                    winner = 1;
                    PickBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref winner);
                    loop = true;
                }
                else if (players[1].DiceNumber > players[0].DiceNumber)
                {
                    Console.WriteLine("Player two wins first pick!");
                    Console.ReadLine();
                    winner = 1;
                    PickBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref winner);
                    winner = 0;
                    PickBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref winner);
                    loop = true;
                }
                else if (players[1].DiceNumber == players[0].DiceNumber || players[0].DiceNumber == players[1].DiceNumber)
                {
                }
                else
                {
                    Console.WriteLine("Invalid! Error!");
                }
                Console.ReadLine();
            } while (loop == false);

            //PickBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref winner);

            Console.WriteLine($"{players[0].CommanderCountry}\n{players[1].CommanderCountry}");
            Console.ReadLine();
        }
Exemple #17
0
        public static void ShowDiceImageOne(ref GameDice dice, ref string diceImageOne)
        {
            //DICE Images for die one---------------------------------------------------------------------------//
            //Change text color
            Console.ForegroundColor = ConsoleColor.Green;

            if (dice.DiceOne == 1)
            {
                diceImageOne = " _____\n" +
                               "|     |\n" +
                               "|  O  |\n" +
                               "|_____|";

                Console.WriteLine(diceImageOne);
            }
            else if (dice.DiceOne == 2)
            {
                diceImageOne = " _____\n" +
                               "|    O|\n" +
                               "|     |\n" +
                               "|O____|";
                Console.WriteLine(diceImageOne);
            }


            if (dice.DiceOne == 3)
            {
                diceImageOne = " _____\n" +
                               "|    O|\n" +
                               "|  O  |\n" +
                               "|O____|";

                Console.WriteLine(diceImageOne);
            }
            if (dice.DiceOne == 4)
            {
                diceImageOne = " _____\n" +
                               "|O   O|\n" +
                               "|     |\n" +
                               "|O___O|";

                Console.WriteLine(diceImageOne);
            }
            if (dice.DiceOne == 5)
            {
                diceImageOne = " _____\n" +
                               "|O   O|\n" +
                               "|  O  |\n" +
                               "|O___O|";

                Console.WriteLine(diceImageOne);
            }
            if (dice.DiceOne == 6)
            {
                diceImageOne = " _____\n" +
                               "|O   O|\n" +
                               "|O   O|\n" +
                               "|O___O|";

                Console.WriteLine(diceImageOne);
            }
            Console.ForegroundColor = ConsoleColor.White;
        }
Exemple #18
0
        public bool PlayTurn(int sourceIndex, int targetIndex)
        {
            if (!CurrentPlayer.ValidateTurn(GameDice, GameBoard, sourceIndex, targetIndex))
            {
                return(false);
            }

            if (FirstPlayer.IsPlayerTurn)
            {
                if (FirstPlayer.PlayTurn(sourceIndex, targetIndex, GameBoard))
                {
                    IsTurnStart = false;
                    FirstPlayer.Turns--;
                    if (FirstPlayer.Turns == 0)
                    {
                        SwapTurns();
                    }
                    else if (!GameDice.IsDouble)
                    {
                        if (sourceIndex - targetIndex == GameDice.FirstDice)
                        {
                            GameDice.DisableFirstDice();
                        }
                        else
                        {
                            GameDice.DisableSecondDice();
                        }
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                if (SecondPlayer.PlayTurn(sourceIndex, targetIndex, GameBoard))
                {
                    IsTurnStart = false;
                    SecondPlayer.Turns--;
                    if (SecondPlayer.Turns == 0)
                    {
                        SwapTurns();
                    }
                    else if (!GameDice.IsDouble)
                    {
                        int gameMove;
                        if (sourceIndex == GameBoard.BarSource)
                        {
                            gameMove = targetIndex + 1;
                        }
                        else
                        {
                            gameMove = targetIndex - sourceIndex;
                        }
                        if (gameMove == GameDice.FirstDice)
                        {
                            GameDice.DisableFirstDice();
                        }
                        else
                        {
                            GameDice.DisableSecondDice();
                        }
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Exemple #19
0
        public static void GetPlayerBattleCountry(ref List <Commander> players, string directory, GameDice dice, ref List <Country> countries)
        {
            Console.Clear();
            string diceImageOne = "";
            bool   loop         = false;
            int    diceWinner   = 0;

            //Battle Country Instructions----------------------------------------------------------------------
            DisplayGameDocuments.DisplayBattleCountryInstructions(directory);
            Console.ReadLine();
            Console.Clear();
            DisplayGameDocuments.DisplayBattleRollPage(directory);


            //RollDice.DetermineWhoRollsFirst(ref dice);
            //Roll to Choose Battle Country---------------------------------------------------------------------



            do
            {
                if (players.Count == 2)
                {
                    TwoPlayerBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref diceWinner);
                }
                //if(players.Count == 4)
                //{
                //    FourPlayerBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref diceWinner);
                //}
                //if (players.Count == 6)
                //{
                //    SixPlayerBattleCountry(ref players, directory, dice, ref diceImageOne, ref countries, ref loop, ref diceWinner);
                //}
            } while (loop == false);

            //=======================================================================================
        }