Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace ConsoleApp19
- {
- class Player
- {
- public int Money { get; set; } = 200;
- public List<Product> Bag { get; private set; }
- public void MakePurchase(Shop shop)
- {
- bool alreadyExist = false;
- Bag = new List<Product>();
- while (true)
- {
- Console.WriteLine($"У вас {Money} золота. Введите номер товара, который хотели бы приобрести.");
- int index = Convert.ToInt32(Console.ReadLine()) - 1;
- if ((Money >= shop.Assortment[index].Price) && (shop.Assortment[index].CountInShop >= 1))
- {
- Money -= shop.Assortment[index].Price;
- shop.Assortment[index].CountInShop--;
- shop.Assortment[index].CountInBag++;
- if (Bag.Count == 0)
- {
- Bag.Add(shop.Assortment[index]);
- }
- else
- {
- for (int i = 0; i < Bag.Count; i++)
- {
- if (shop.Assortment[index].ProductName == Bag[i].ProductName)
- {
- alreadyExist = true;
- break;
- }
- else
- {
- alreadyExist = false;
- continue;
- }
- }
- if (!alreadyExist)
- {
- Bag.Add(shop.Assortment[index]);
- }
- }
- shop.ShowProduct();
- Console.WriteLine($"Приобретен товар {shop.Assortment[index].ProductName}.");
- ShowBag();
- }
- else
- {
- Console.WriteLine("Покупка невозможна! Недостаточно средств, либо товар закончился.");
- }
- }
- }
- public void ShowBag()
- {
- {
- Console.WriteLine("У вас в сумке следующий товар:");
- for (int i = 0; i < Bag.Count; i++)
- {
- Console.WriteLine($"{ i + 1}){ Bag[i].ProductName}. {Bag[i].CountInBag} шт.");
- }
- Console.WriteLine();
- }
- }
- }
- class Shop
- {
- public List<Product> Assortment { get;private set; }
- public void MakeAssortment()
- {
- Assortment = new List<Product>();
- Random random = new Random();
- Product butcherSword = new Weapon("Меч палача", 30, 0);
- Product sniperBow = new Weapon("Лук снайпера", 60, 0);
- Product frostRing = new Jewelry("Кольцо мороза", 40, 0);
- Product emeraldNecklace = new Jewelry("Изумрудное ожерелье", 60, 0);
- Product hastePotion = new Potions("Зелье ускорения", 15, 0);
- Product healingPotion = new Potions("Зелье исцеления", 10, 0);
- Assortment.Add(butcherSword);
- Assortment.Add(sniperBow);
- Assortment.Add(frostRing);
- Assortment.Add(emeraldNecklace);
- Assortment.Add(hastePotion);
- Assortment.Add(healingPotion);
- foreach (var product in Assortment)
- {
- product.CountInShop = random.Next(2, 21);
- }
- }
- public void ShowProduct()
- {
- Console.Clear();
- Console.SetCursorPosition(0, 0);
- Console.WriteLine("Сейчас у нас представлен следующий товар:");
- for (int i = 0; i < Assortment.Count; i++)
- {
- Console.WriteLine($"{ i + 1}){ Assortment[i].ProductName} стоимостью {Assortment[i].Price} золотых. В наличии {Assortment[i].CountInShop}");
- }
- Console.SetCursorPosition(0, 10);
- }
- }
- class Product
- {
- public string ProductName { get; private set; }
- public int Price { get; private set; }
- public int CountInShop { get; set; }
- public int CountInBag { get; set; }
- public Product(string name, int price, int count)
- {
- ProductName = name;
- Price = price;
- CountInShop = count;
- CountInBag = 0;
- }
- }
- class Weapon : Product
- {
- public Weapon(string name, int price, int count) : base(name, price, count) { }
- }
- class Jewelry : Product
- {
- public Jewelry(string name, int price, int count) : base(name, price, count) { }
- }
- class Potions : Product
- {
- public Potions(string name, int price, int count) : base(name, price, count) { }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Shop shop = new Shop();
- Player player = new Player();
- shop.MakeAssortment();
- shop.ShowProduct();
- player.MakePurchase(shop);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement