Beispiel #1
0
        static void playerRoll(Player currentPlayer)
        {
            bool rolledDouble = true;
            int  doubleCount  = 0;

            //turn
            while (rolledDouble)
            {
                //Rolls
                int die1  = roll();
                int die2  = roll();
                int total = die1 + die2;
                if (die1 != die2)
                {
                    rolledDouble = false;
                }
                else
                {
                    doubleCount++;
                    //Go to jail on third double in a row
                    if (doubleCount == 3)
                    {
                        currentPlayer.setCurrentSpace(10);
                        currentPlayer.setJailStatus(true);
                        break;
                    }
                }

                //Move Player
                int spacesMoved = 0;
                while (spacesMoved < total)
                {
                    spacesMoved++;//Move forward one space

                    //Reset from 40 to 0 (player gets to 'GO')
                    if (currentPlayer.getSpace() == 40)
                    {
                        currentPlayer.setCurrentSpace(0);
                        currentPlayer.setMoney(currentPlayer.getMoney() + 200);
                    }
                }

                //Player lands on space
                BoardSpace space = boardSpaces[currentPlayer.getSpace()];

                //Space is a property
                if (space.getCost() > 0)
                {
                    //If space is unowned
                    if (space.getOwner() == null)
                    {
                        if (space.getCost() > currentPlayer.getMoney())
                        {
                            //Player does not have enough money to buy the property
                            //TODO - Player mortgages, sells houses to afford property (unlikely - but possible)
                            continue;
                        }
                        else
                        {
                            //TODO - Method to Prompt Player to Buy y/n + add player to property owner + remove cash from player
                        }
                    }
                    //If space is owned (not by current player)
                    else if (space.getOwner() != currentPlayer)
                    {
                        int rent = getRent(space.getSpaceNumber(), total);

                        //Pay owner if enough money is owned by current player
                        if ((currentPlayer.getMoney() - rent) >= 0)
                        {
                            currentPlayer.setMoney(currentPlayer.getMoney() - rent);
                            space.getOwner().setMoney(space.getOwner().getMoney() + rent);
                        }
                        else
                        {
                            //TODO - Player mortgages, sells houses, or forfeit all to owner
                        }
                    }
                }
                //Space is Chance, Community Chest, Tax Spot, or Corner
                else
                {
                    //Chance
                    if (space.getSpaceNumber() == 7 || space.getSpaceNumber() == 22 || space.getSpaceNumber() == 36)
                    {
                        //TODO - Modifier check on chance cards
                    }
                    //Community Chest
                    else if (space.getSpaceNumber() == 2 || space.getSpaceNumber() == 17 || space.getSpaceNumber() == 33)
                    {
                        //TODO - modifier check on community chest cards
                    }
                    //Income Tax
                    else if (space.getSpaceNumber() == 4)
                    {
                        //10% or 200
                        int percent = System.Convert.ToInt32(currentPlayer.getMoney() * 0.1);
                        int tax     = 200;
                        if (percent < 200)
                        {
                            tax = percent;
                        }
                        currentPlayer.setMoney(currentPlayer.getMoney() - tax);
                    }
                    //Luxury Tax
                    else if (space.getSpaceNumber() == 38)
                    {
                        currentPlayer.setMoney(currentPlayer.getMoney() - 75);
                    }
                    //Else if Go To Jail
                    else if (space.getSpaceNumber() == 30)
                    {
                        currentPlayer.setCurrentSpace(10);
                        currentPlayer.setJailStatus(true);
                        break;
                    }
                }
            }
        }
Beispiel #2
0
        //Check ownership status of each property required for monopoly by index
        static bool hasMonopoly(int index)
        {
            BoardSpace current = boardSpaces[index];

            //Brown Properties
            if (current.getSpaceNumber() == 1 || current.getSpaceNumber() == 3)
            {
                if (boardSpaces[1].getOwner() == boardSpaces[3].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Light Blue Properties
            else if (current.getSpaceNumber() == 6 || current.getSpaceNumber() == 8 || current.getSpaceNumber() == 9)
            {
                if (boardSpaces[6].getOwner() == boardSpaces[8].getOwner() && boardSpaces[8].getOwner() == boardSpaces[9].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Purple Properties
            else if (current.getSpaceNumber() == 11 || current.getSpaceNumber() == 13 || current.getSpaceNumber() == 14)
            {
                if (boardSpaces[11].getOwner() == boardSpaces[13].getOwner() && boardSpaces[13].getOwner() == boardSpaces[14].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Utilities
            else if (current.getSpaceNumber() == 12 || current.getSpaceNumber() == 28)
            {
                if (boardSpaces[12].getOwner() == boardSpaces[28].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Orange Properties
            else if (current.getSpaceNumber() == 16 || current.getSpaceNumber() == 18 || current.getSpaceNumber() == 19)
            {
                if (boardSpaces[16].getOwner() == boardSpaces[18].getOwner() && boardSpaces[18].getOwner() == boardSpaces[19].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Red Properties
            else if (current.getSpaceNumber() == 21 || current.getSpaceNumber() == 23 || current.getSpaceNumber() == 24)
            {
                if (boardSpaces[21].getOwner() == boardSpaces[23].getOwner() && boardSpaces[23].getOwner() == boardSpaces[24].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Yellow Properties
            else if (current.getSpaceNumber() == 26 || current.getSpaceNumber() == 27 || current.getSpaceNumber() == 29)
            {
                if (boardSpaces[26].getOwner() == boardSpaces[27].getOwner() && boardSpaces[27].getOwner() == boardSpaces[29].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Green Properties
            else if (current.getSpaceNumber() == 31 || current.getSpaceNumber() == 32 || current.getSpaceNumber() == 34)
            {
                if (boardSpaces[31].getOwner() == boardSpaces[32].getOwner() && boardSpaces[32].getOwner() == boardSpaces[34].getOwner())
                {
                    return(true);
                }
                return(false);
            }
            //Dark Blue Properties
            else if (current.getSpaceNumber() == 37 || current.getSpaceNumber() == 39)
            {
                if (boardSpaces[37].getOwner() == boardSpaces[39].getOwner())
                {
                    return(true);
                }
                return(false);
            }


            return(false);
        }