예제 #1
0
파일: Player.cs 프로젝트: gbralic/Monopoly
 public void buySpace(ListSpaces B, ListPlayer P)
 {
     if (B.getSpace(position) is Propriety)
     {
         Propriety prop = (Propriety)B.getSpace(position);
         if (prop.possessed)
         {
             Console.WriteLine("This propriety is already possessed by " + prop.pl.name + ", you can't buy it.");
         }
         else
         {
             Console.WriteLine("Do you want to buy this propriety ? ");
             Console.WriteLine("Press 1 for yes or 0 for no. ");
             int resp = Convert.ToInt32(Console.ReadLine());
             while (resp != 0 && resp != 1)
             {
                 Console.WriteLine("Please enter a correct awnser.");
                 Console.WriteLine("Press 1 for yes or 0 for no. ");
                 resp = Convert.ToInt32(Console.ReadLine());
             }
             if (resp == 1)
             {
                 int pri = prop.price;
                 if (account > prop.price)
                 {
                     prop.possessed = true;
                     prop.pl        = this;
                     account        = account - prop.price;
                     B.changeSpace(position, prop);
                     if (list_pr == null)
                     {
                         prop      = (Propriety)B.getSpace(position).Shallowcopy();
                         prop.next = null;
                         list_pr   = new ListSpaces(prop);
                     }
                     else
                     {
                         prop      = (Propriety)B.getSpace(position).Shallowcopy();
                         prop.next = null;
                         list_pr.AddTail(prop);
                     }
                     Console.WriteLine("You have acquired " + prop.name);
                 }
                 else
                 {
                     Console.WriteLine("You don't have enough money in your bank account to buy this propriety ! ");
                 }
             }
         }
     }
     else
     {
         Console.WriteLine("You can't buy this space, this is not a propriety.");
     }
 }
예제 #2
0
파일: Player.cs 프로젝트: gbralic/Monopoly
 public void buyHotel(ListSpaces B)
 {
     if (list_pr == null)
     {
         Console.WriteLine("You don't owe any propriety, you can't buy a hotel !");
     }
     else
     {
         Console.WriteLine("Enter the name of the street where you want to buy a hotel :");
         string prop_name = Console.ReadLine();
         while (!(B.onList(prop_name, 40)))
         {
             Console.WriteLine("This propriety is not in the game board !");
             Console.WriteLine("Please write the space name correctly.");
             Console.WriteLine("If you want to leave, press 'z'");
             prop_name = Console.ReadLine();
             if (prop_name == "z")
             {
                 break;
             }
         }
         if ((B.onList(prop_name, 40)))
         {
             while (!(list_pr.onList(prop_name, list_pr.Size)))
             {
                 Console.WriteLine("You don't possess this propriety !");
                 Console.WriteLine("Your proprieties are " + list_pr);
                 Console.WriteLine("Please write the propriety name correctly.");
                 Console.WriteLine("If you want to leave, press 'z'");
                 prop_name = Console.ReadLine();
                 if (prop_name == "z")
                 {
                     break;
                 }
                 while (!(B.onList(prop_name, 40)))
                 {
                     Console.WriteLine("This propriety is not in the game board !");
                     Console.WriteLine("Please write the space name correctly.");
                     Console.WriteLine("If you want to leave, press 'z'");
                     prop_name = Console.ReadLine();
                     if (prop_name == "z")
                     {
                         break;
                     }
                 }
             }
             if ((B.onList(prop_name, 40)) && (list_pr.onList(prop_name, list_pr.Size)))
             {
                 Propriety test = (Propriety)B.getSpace(B.getSpacePosition(prop_name));
                 if (test is Street)
                 {
                     Street test1 = (Street)B.getSpace(B.getSpacePosition(prop_name));
                     if (test1.house != 4)
                     {
                         Console.WriteLine("This street already doesn't have 4 houses, you can't buy a hotel !");
                     }
                     else
                     {
                         if (test1.hotel == 1)
                         {
                             Console.WriteLine("This street already have 1 hotel, you can't buy another one !");
                         }
                         else
                         {
                             Console.WriteLine("Do you want to buy a hotel in this propriety : " + test1.name + " ?");
                             Console.WriteLine("The price of a hotel is " + test1.hprice());
                             Console.WriteLine("Press 1 for yes 0 for no");
                             int resp = Convert.ToInt32(Console.ReadLine());
                             while (resp != 0 && resp != 1)
                             {
                                 Console.WriteLine("Please enter a correct awnser.");
                                 Console.WriteLine("Press 1 for yes or 0 for no. ");
                                 resp = Convert.ToInt32(Console.ReadLine());
                             }
                             if (resp == 1)
                             {
                                 if (account >= test1.hprice())
                                 {
                                     account = account - test1.hprice();
                                     test1.hotel++;
                                     B.changeSpace(B.getSpacePosition(prop_name), test1);
                                 }
                                 else
                                 {
                                     Console.WriteLine("You don't have enough money to buy this hotel !");
                                 }
                             }
                         }
                     }
                 }
                 else
                 {
                     Console.WriteLine("You can't put a hotel in this propriety, this isn't a street !");
                 }
             }
         }
     }
 }
예제 #3
0
파일: Player.cs 프로젝트: gbralic/Monopoly
        public void makeAction(ListSpaces B, ListPlayer P)
        {
            bool   fin     = false;
            bool   valid   = true;
            string lecture = "";

            do
            {
                Console.WriteLine("\nPlayer Action");
                Console.WriteLine("\n Turn of " + name);
                Console.WriteLine("-----------------\n\n");
                fin = false;
                Console.WriteLine();
                Console.WriteLine("1 : Buy this propiety");
                Console.WriteLine("2 : Buy a house or an hotel");
                Console.WriteLine("3 : Get informations");
                Console.WriteLine("4 : Pass your turn");

                do
                {
                    lecture = "";
                    valid   = true;

                    Console.Write("\n Choose an action : ");
                    lecture = Console.ReadLine();
                    Console.WriteLine(lecture);
                    if (lecture == "" || !"1234".Contains(lecture[0]))
                    {
                        Console.WriteLine("Your choice <" + lecture + "> is not valid = > Please choose a correct action. ");
                        valid = false;
                    }
                } while (!valid);


                switch (lecture[0])
                {
                case '1':
                    Console.Clear();
                    buySpace(B, P);
                    break;

                case '2':
                    Console.Clear();
                    buyH(B);
                    break;

                case '3':
                    Console.Clear();
                    getInformation(B, P);
                    break;

                case '4':
                    Console.Clear();
                    Console.WriteLine("You pass your turn");
                    if (B.getSpace(position) is Propriety)
                    {
                        Propriety prop = (Propriety)B.getSpace(position);
                        if (!(prop.possessed))
                        {
                            Console.WriteLine("This propriety will be auctionned");
                            Player pla = prop.auction(P);
                            prop.possessed = true;
                            prop.pl        = pla;
                            B.changeSpace(position, prop);
                            if (pla.list_pr == null)
                            {
                                prop        = (Propriety)B.getSpace(position).Shallowcopy();
                                prop.next   = null;
                                pla.list_pr = new ListSpaces(prop);
                            }
                            else
                            {
                                prop      = (Propriety)B.getSpace(position).Shallowcopy();
                                prop.next = null;
                                pla.list_pr.AddTail(prop);
                            }
                        }
                    }
                    Console.ReadKey();
                    fin = true;
                    break;

                default:
                    Console.WriteLine("\n Please choose a correct action.");
                    break;
                }
            } while (!fin);
        }
예제 #4
0
파일: Player.cs 프로젝트: gbralic/Monopoly
 public void payRent(ListSpaces B, int dices)
 {
     if (B.getSpace(position) is Propriety)
     {
         Propriety prop = (Propriety)B.getSpace(position);
         if (prop.possessed)
         {
             if (prop.pl == this)
             {
                 Console.WriteLine("This is your propriety, you're at home.");
             }
             else
             {
                 Console.WriteLine("This propriety is owned by " + prop.pl.name + ". You have to pay a rent !");
                 int money = 0;
                 if (prop is Company)
                 {
                     Company comp      = (Company)prop;
                     int     n_of_comp = comp.pl.list_pr.number_of_companies();
                     if (n_of_comp == 1)
                     {
                         money = 4 * dices;
                     }
                     else
                     {
                         money = 10 * dices;
                     }
                 }
                 if (prop is Station)
                 {
                     Station stat      = (Station)prop;
                     int     n_of_stat = stat.pl.list_pr.number_of_stations();
                     if (n_of_stat == 1)
                     {
                         money = stat.rent;
                     }
                     if (n_of_stat == 2)
                     {
                         money = stat.rent2stations;
                     }
                     if (n_of_stat == 3)
                     {
                         money = stat.rent3stations;
                     }
                     if (n_of_stat == 4)
                     {
                         money = stat.rent4stations;
                     }
                 }
                 if (prop is Street)
                 {
                     Street st = (Street)prop;
                     if (st.pl.list_pr.allColors(st.color))
                     {
                         money = st.rent * 2;
                         if (st.house == 1)
                         {
                             money = st.rent1house;
                         }
                         if (st.house == 2)
                         {
                             money = st.rent2house;
                         }
                         if (st.house == 3)
                         {
                             money = st.rent3house;
                         }
                         if (st.house == 4)
                         {
                             money = st.rent4house;
                             if (st.hotel == 1)
                             {
                                 money = st.renthotel;
                             }
                         }
                     }
                     else
                     {
                         money = st.rent;
                     }
                 }
                 Console.WriteLine("You have to pay " + money + " euros to " + prop.pl.name);
                 account          = account - money;
                 prop.pl.account += money;
             }
         }
     }
 }