Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ООП
- {
- class Program
- {
- static void Main(string[] args)
- {
- bool isOpen = true;
- string userInput;
- const string PlayerName = "player";
- const string SellerName = "seller";
- Store store = new Store(new List<Person> { new Person(PlayerName, 500), new Person(SellerName, 1000) });
- store.DeliveryToSeller("item0", 60);
- store.DeliveryToSeller("item1", 240);
- store.DeliveryToSeller("item2", 450);
- while (isOpen)
- {
- Console.WriteLine($"Ваше имя: {PlayerName}. Ваши деньги: " + store.ShowPersonMoney("player") + "$" + $"\nПродавцы: {SellerName}. Его деньги: " + store.ShowPersonMoney("seller") + "$");
- Console.Write("\nДобро пожаловать в магазин!\n\n1. Купить товар\n2. Посмотреть инвентарь\n3. Выход\n\nВыберите действие: ");
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case "1":
- store.BuyItem();
- break;
- case "2":
- store.ShowPlayerInventory();
- break;
- case "3":
- store.CloseStore();
- break;
- default:
- Console.Write("Такого действия нет!");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Store
- {
- private List<Person> _persons;
- public Store(List<Person> persons)
- {
- _persons = persons;
- }
- public bool CloseStore()
- {
- Console.Write("До свидания!");
- return false;
- }
- public void DeliveryToSeller(string title, int price)
- {
- TryGetPerson("seller").AddItem(title, price);
- }
- public string ShowPersonMoney(string name)
- {
- return Convert.ToString(TryGetPerson(name).Money);
- }
- public void ShowPlayerInventory()
- {
- TryGetPerson("player").ShowItems();
- }
- public void BuyItem()
- {
- Console.Write("Введите имя, у кого вы хотите купить вещь: ");
- string userInput = Console.ReadLine();
- if (ShowInventory(userInput))
- {
- Console.Write("Введите название товара, который хотите купить: ");
- userInput = Console.ReadLine();
- Person player = TryGetPerson("player");
- Person seller = TryGetPerson("seller");
- Item item = seller.TryGetItem(userInput);
- if (player.TryBuyItem(item, player.Money))
- {
- seller.SellItem(item);
- Console.WriteLine(userInput + " успешно приобретено!");
- }
- else
- {
- Console.WriteLine("Ошибка покупки!");
- }
- }
- }
- private Person TryGetPerson(string name)
- {
- for (int i = 0; i < _persons.Count; i++)
- {
- if (_persons[i].Name == name)
- {
- return _persons[i];
- }
- }
- return null;
- }
- private bool ShowInventory(string title)
- {
- List<Item> inventory = TryGetInventory(title);
- if (inventory != null)
- {
- for (int i = 0; i < inventory.Count; i++)
- {
- inventory[i].ShowItem();
- }
- return true;
- }
- else
- {
- Console.WriteLine("Такого продавца нет!");
- return false;
- }
- }
- private List<Item> TryGetInventory(string title)
- {
- for (int i = 0; i < _persons.Count; i++)
- {
- if (_persons[i].Name == title)
- {
- return _persons[i].GetListItems();
- }
- }
- return null;
- }
- }
- class Item
- {
- public string Title { get; private set; }
- public int Price { get; private set; }
- public Item(string title, int price)
- {
- Title = title;
- Price = price;
- }
- public void ShowItem()
- {
- Console.WriteLine($"{Title} ={Price}$");
- }
- }
- class Person
- {
- private List<Item> _inventory = new List<Item>();
- public string Name { get; private set; }
- public int Money { get; private set; }
- public Person(string name, int money = 0)
- {
- Name = name;
- Money = money;
- }
- public List<Item> GetListItems()
- {
- List<Item> items = new List<Item> { };
- for (int i = 0; i < _inventory.Count; i++)
- {
- items.Add(_inventory[i]);
- }
- return items;
- }
- public void ShowItems()
- {
- for (int i = 0; i < _inventory.Count; i++)
- {
- _inventory[i].ShowItem();
- }
- }
- public void AddItem(string title, int price)
- {
- _inventory.Add(new Item(title, price));
- }
- public void SellItem(Item item)
- {
- Money += item.Price;
- _inventory.Remove(item);
- }
- public Item TryGetItem(string title)
- {
- for (int i = 0; i < _inventory.Count; i++)
- {
- if (_inventory[i].Title == title)
- {
- return _inventory[i];
- }
- }
- return null;
- }
- public bool TryBuyItem(Item item, int money)
- {
- if (item != null && money >= item.Price)
- {
- Money -= item.Price;
- _inventory.Add(item);
- return true;
- }
- else
- {
- return false;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment