Esempio n. 1
0
 public GameSquare(int pos, SqType type, Property p, Railroad r, Utility u)
 {
     this.pos  = pos;
     this.type = type;
     this.p    = p;
     this.u    = u;
     this.r    = r;
 }
Esempio n. 2
0
        public void mortgage(string[] arr, int playerID)
        {
            int inc = 0;

            for (int j = 0; j < arr.Length; j++)
            {
                for (int i = 0; i < 40; i++)
                {
                    SqType t = sqarr[i].getType();
                    switch (t)
                    {
                    case SqType.property:
                        if (arr[j] == sqarr[i].getPropertyOnSquare().getName())
                        {
                            if (sqarr[i].getPropertyOnSquare().getOwner().getId() == playerID)
                            {
                                int hsc = sqarr[i].getPropertyOnSquare().getHouseCount();
                                int htc = sqarr[i].getPropertyOnSquare().getHotelCount();
                                parr[playerID].setHouseCount(parr[playerID].getHouseCount() - hsc);
                                parr[playerID].setHotelCount(parr[playerID].getHotelCount() - htc);
                                inc            += sqarr[i].getPropertyOnSquare().mortgageProperty();
                                availableHouse += sqarr[i].getPropertyOnSquare().getHouseCount();
                            }
                        }
                        break;     // this needs to be a double break, but there is none in c#

                    case SqType.utility:
                        if (arr[j] == sqarr[i].getUtilityOnSquare().getName())
                        {
                            if (sqarr[i].getUtilityOnSquare().getOwner().getId() == playerID)
                            {
                                inc += sqarr[i].getUtilityOnSquare().mortgageUtility();
                            }
                        }
                        break;

                    case SqType.railroad:
                        if (arr[j] == sqarr[i].getRailroadOnSquare().getName())
                        {
                            if (sqarr[i].getRailroadOnSquare().getOwner().getId() == playerID)
                            {
                                inc += sqarr[i].getRailroadOnSquare().mortgageRailroad();
                            }
                        }
                        break;

                    default:
                        //error
                        break;
                    }
                }
            }
            parr[playerID].money += inc;
        }
Esempio n. 3
0
        public void buy(int id, int pos)
        {
            SqType t = sqarr[pos].getType();

            switch (t)
            {
            case SqType.property:
                if (sqarr[pos].getPropertyOnSquare().isOwned())
                {    //error
                }
                else
                {
                    parr[id].colorArray[sqarr[pos].getPropertyOnSquare().getPropertyColorInt()]++;
                    int cost = sqarr[pos].getPropertyOnSquare().getCost();
                    parr[id].money -= cost;
                    sqarr[pos].getPropertyOnSquare().setOwner(parr[id]);
                    parr[id].addAsset(sqarr[pos].getPropertyOnSquare().getName());
                }
                break;

            case SqType.railroad:
                if (sqarr[pos].getRailroadOnSquare().isOwned())
                {    //error
                }
                else
                {
                    int cost = sqarr[pos].getRailroadOnSquare().getCost();
                    parr[id].money -= cost;
                    sqarr[pos].getRailroadOnSquare().setOwner(parr[id]);
                    parr[id].incrementRailroadCount();
                    parr[id].addAsset(sqarr[pos].getRailroadOnSquare().getName());
                }
                break;

            case SqType.utility:
                if (sqarr[pos].getUtilityOnSquare().isOwned())
                {     //error
                }
                else
                {
                    int cost = sqarr[pos].getUtilityOnSquare().getCost();
                    parr[id].money -= cost;
                    sqarr[pos].getUtilityOnSquare().setOwner(parr[id]);
                    parr[id].incrementUtilityCount();
                    parr[id].addAsset(sqarr[pos].getUtilityOnSquare().getName());
                }
                break;

            default:
                //error
                break;
            }
        }
Esempio n. 4
0
        public void removeMortgage(string[] arr, int playerID)
        {
            int inc = 0;

            for (int j = 0; j < arr.Length; j++)
            {
                for (int i = 0; i < 40; i++)
                {
                    SqType t = sqarr[i].getType();
                    switch (t)
                    {
                    case SqType.property:
                        if (arr[j] == sqarr[i].getPropertyOnSquare().getName())
                        {
                            if (sqarr[i].getPropertyOnSquare().getOwner().getId() == playerID)
                            {
                                inc += sqarr[i].getPropertyOnSquare().buyBackProperty();
                            }
                        }
                        break;     // this needs to be a double break, but there is none in c#

                    case SqType.utility:
                        if (arr[j] == sqarr[i].getUtilityOnSquare().getName())
                        {
                            if (sqarr[i].getUtilityOnSquare().getOwner().getId() == playerID)
                            {
                                inc += sqarr[i].getUtilityOnSquare().buyBackUtility();
                            }
                        }
                        break;

                    case SqType.railroad:
                        if (arr[j] == sqarr[i].getRailroadOnSquare().getName())
                        {
                            if (sqarr[i].getRailroadOnSquare().getOwner().getId() == playerID)
                            {
                                inc += sqarr[i].getRailroadOnSquare().buyBackRailroad();
                            }
                        }
                        break;

                    default:
                        //error
                        break;
                    }
                }
            }
            parr[playerID].money -= inc;
        }
Esempio n. 5
0
        public void payRent(int pos)
        {
            SqType t = sqarr[pos].getType();

            switch (t)
            {
            case SqType.property:
                payPropertyRent();
                break;

            case SqType.utility:
                payUtilityRent();
                break;

            case SqType.railroad:
                payRailroadRent();
                break;

            default:
                //error
                break;
            }
        }
Esempio n. 6
0
        public void payRent()
        {
            SqType t = sqarr[parr[currPlayer].getPosition()].getType();

            switch (t)
            {
            case SqType.property:
                payPropertyRent();
                break;

            case SqType.utility:
                payUtilityRent();
                break;

            case SqType.railroad:
                payRailroadRent();
                break;

            default:
                //error
                break;
            }
        }
Esempio n. 7
0
        public void trade(int id, List <string> sender, int senderMoney, List <string> reciever, int recieverMoney)
        {
            ///sender list al
            ///her string icin
            ///asset bul
            ///adama ver                ->> asset owner degis, iki playerın asset arrayleri degis,
            ///string i sil
            ///her reciever icin yap
            ///paraları don
            ///dagıl
            ///sender = curr player
            ///reciever = id
            bool flag1 = true;
            bool flag2 = true;
            bool flag3 = true;
            bool flag4 = true;

            while ((sender.Count > 0) && (flag1 == true))
            {
                for (int i = 0; ((i < 40) && (flag2 == true)); i++)
                {
                    SqType t = sqarr[i].getType();
                    switch (t)
                    {
                    case SqType.property:
                        if (sender[0] == sqarr[i].getPropertyOnSquare().getName())
                        {
                            //auth check
                            if (sqarr[i].getPropertyOnSquare().getOwner().getId() == currPlayer)
                            {
                                //since the hotels and houses stay on the property,
                                //just update the players' house and hotel counts
                                int hsc = sqarr[i].getPropertyOnSquare().getHouseCount();
                                int htc = sqarr[i].getPropertyOnSquare().getHotelCount();
                                parr[currPlayer].setHouseCount(parr[currPlayer].getHouseCount() - hsc);
                                parr[currPlayer].setHotelCount(parr[currPlayer].getHotelCount() - htc);
                                parr[id].setHouseCount(parr[id].getHouseCount() + hsc);
                                parr[id].setHotelCount(parr[id].getHotelCount() + htc);
                                //also update the color counts of each participant of the trade
                                parr[currPlayer].colorArray[sqarr[i].getPropertyOnSquare().getPropertyColorInt()]--;
                                parr[id].colorArray[sqarr[i].getPropertyOnSquare().getPropertyColorInt()]++;

                                //change the owner of the property, remove property from the previous
                                //owners asset list, add it to the new owners asset list
                                //and remove from trade list as trade is complete
                                sqarr[i].getPropertyOnSquare().setOwner(parr[id]);
                                parr[currPlayer].removeAsset(sender[0]);
                                parr[id].addAsset(sender[0]);
                                sender.RemoveAt(0);
                                if (sender.Count <= 0)
                                {
                                    flag1 = false;
                                    flag2 = false;
                                }
                            }
                        }
                        break;     // this needs to be a double break, but there is none in c#

                    case SqType.utility:
                        if (sender[0] == sqarr[i].getUtilityOnSquare().getName())
                        {
                            //auth check
                            if (sqarr[i].getUtilityOnSquare().getOwner().getId() == currPlayer)
                            {
                                //update players info
                                parr[currPlayer].decrementUtilityCount();
                                parr[id].incrementUtilityCount();
                                //execute swap
                                sqarr[i].getUtilityOnSquare().setOwner(parr[id]);
                                parr[currPlayer].removeAsset(sender[0]);
                                parr[id].addAsset(sender[0]);
                                sender.RemoveAt(0);
                            }
                        }
                        break;     // this needs to be a double break, but there is none in c#

                    case SqType.railroad:
                        if (sender[0] == sqarr[i].getRailroadOnSquare().getName())
                        {
                            //auth check
                            if (sqarr[i].getRailroadOnSquare().getOwner().getId() == currPlayer)
                            {
                                //update player info
                                parr[currPlayer].decrementRailroadCount();
                                parr[id].incrementRailroadCount();
                                //execute swap
                                sqarr[i].getRailroadOnSquare().setOwner(parr[id]);
                                parr[currPlayer].removeAsset(sender[0]);
                                parr[id].addAsset(sender[0]);
                                sender.RemoveAt(0);
                            }
                        }
                        break;     //this needs to be a double break, but there is none in c#

                    default:
                        //error
                        break;
                    }
                }
            }
            while ((reciever.Count > 0) && (flag3 == true))
            {
                for (int i = 0; ((i < 40) && (flag4 == true)); i++)
                {
                    SqType t = sqarr[i].getType();
                    switch (t)
                    {
                    case SqType.property:
                        if (reciever[0] == sqarr[i].getPropertyOnSquare().getName())
                        {
                            //auth check
                            if (sqarr[i].getPropertyOnSquare().getOwner().getId() == id)
                            {
                                //update player info
                                int hsc = sqarr[i].getPropertyOnSquare().getHouseCount();
                                int htc = sqarr[i].getPropertyOnSquare().getHotelCount();
                                parr[id].setHouseCount(parr[currPlayer].getHouseCount() - hsc);
                                parr[id].setHotelCount(parr[currPlayer].getHotelCount() - htc);
                                parr[currPlayer].setHouseCount(parr[id].getHouseCount() + hsc);
                                parr[currPlayer].setHotelCount(parr[id].getHotelCount() + htc);
                                //update color numbers of each player
                                parr[id].colorArray[sqarr[i].getPropertyOnSquare().getPropertyColorInt()]--;
                                parr[currPlayer].colorArray[sqarr[i].getPropertyOnSquare().getPropertyColorInt()]++;

                                //swap properties
                                sqarr[i].getPropertyOnSquare().setOwner(parr[currPlayer]);
                                parr[id].removeAsset(reciever[0]);
                                parr[currPlayer].addAsset(reciever[0]);
                                reciever.RemoveAt(0);
                                if (reciever.Count <= 0)
                                {
                                    flag3 = false;
                                    flag4 = false;
                                }
                            }
                        }
                        break;     // this needs to be a double break, but there is none in c#

                    case SqType.utility:
                        if (reciever[0] == sqarr[i].getUtilityOnSquare().getName())
                        {
                            //auth check
                            if (sqarr[i].getUtilityOnSquare().getOwner().getId() == id)
                            {
                                //update player info
                                parr[id].decrementUtilityCount();
                                parr[currPlayer].incrementUtilityCount();
                                //swap utilities
                                sqarr[i].getUtilityOnSquare().setOwner(parr[currPlayer]);
                                parr[id].removeAsset(reciever[0]);
                                parr[currPlayer].addAsset(reciever[0]);
                                reciever.RemoveAt(0);
                            }
                        }
                        break;     // this needs to be a double break, but there is none in c#

                    case SqType.railroad:
                        if (reciever[0] == sqarr[i].getRailroadOnSquare().getName())
                        {
                            if (sqarr[i].getRailroadOnSquare().getOwner().getId() == id)
                            {
                                //update player info
                                parr[id].decrementRailroadCount();
                                parr[currPlayer].incrementRailroadCount();
                                //swap
                                sqarr[i].getRailroadOnSquare().setOwner(parr[currPlayer]);
                                parr[id].removeAsset(reciever[0]);
                                parr[currPlayer].addAsset(reciever[0]);
                                reciever.RemoveAt(0);
                            }
                        }
                        break;     //this needs to be a double break, but there is none in c#

                    default:
                        //error
                        break;
                    }
                }
            }
            parr[currPlayer].money += recieverMoney;
            parr[id].money         -= recieverMoney;
            parr[id].money         += senderMoney;
            parr[currPlayer].money -= senderMoney;
        }