W1thr

ООП-4

Mar 13th, 2021 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.77 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Homework4
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Shop shop = new Shop();
  11.             shop.Trade();
  12.         }
  13.     }
  14.  
  15.     class Item
  16.     {
  17.         public string Label { get; private set; }
  18.         public int Price { get; private set; }
  19.  
  20.         public Item(string label, int price)
  21.         {
  22.             Label = label;
  23.             Price = price;
  24.         }
  25.     }
  26.  
  27.     class Trader
  28.     {
  29.         private List<Item> _items;
  30.  
  31.         public Trader(List<Item> items)
  32.         {
  33.             _items = items;
  34.         }
  35.  
  36.         public Trader() { }
  37.  
  38.         public void ShowItems()
  39.         {
  40.             Console.WriteLine("~~Товары~~");
  41.             foreach (var item in _items)
  42.             {
  43.                 Console.WriteLine(item.Label + " - " + item.Price);
  44.             }
  45.             Console.WriteLine("~~~~~~~~~~");
  46.         }
  47.  
  48.         public Item SellItem()
  49.         {
  50.             string tempLabel = GetItemLabel();
  51.             int index = -1;
  52.  
  53.             bool isItemAvailable = false;
  54.             for (int i = 0; i < _items.Count; i++)
  55.             {
  56.                 if (_items[i].Label.ToLower() == tempLabel.ToLower())
  57.                 {
  58.                     index = i;
  59.                     isItemAvailable = true;
  60.                     break;
  61.                 }
  62.             }
  63.  
  64.             if (isItemAvailable == true)
  65.             {
  66.                 return _items[index];
  67.             }
  68.             else
  69.             {
  70.                 Console.WriteLine("Такого товара нет!");
  71.                 return null;
  72.             }
  73.         }
  74.  
  75.         private string GetItemLabel()
  76.         {
  77.             Console.Write("Введите название товара: ");
  78.  
  79.             return Console.ReadLine();
  80.         }
  81.     }
  82.  
  83.     class Player
  84.     {
  85.         private List<Item> _inventory = new List<Item>();
  86.  
  87.         public int Money { get; private set; }
  88.  
  89.         public Player(int money)
  90.         {
  91.             Money = money;
  92.         }
  93.  
  94.         public Player() { }
  95.  
  96.         public void ShowInventory()
  97.         {
  98.             Console.WriteLine("~~Инвентарь~~");
  99.  
  100.             foreach (var item in _inventory)
  101.             {
  102.                 Console.Write('|');
  103.                 Console.Write(item.Label);
  104.                 Console.WriteLine('|');
  105.             }
  106.             Console.WriteLine(Money + " денег");
  107.             Console.WriteLine("~~~~~~~~~~");
  108.         }
  109.  
  110.         public void BuyItem(Item item)
  111.         {
  112.             if (item != null)
  113.             {
  114.                 _inventory.Add(item);
  115.                 Money -= item.Price;
  116.             }
  117.         }
  118.     }
  119.  
  120.     class Shop
  121.     {
  122.         private Player _player;
  123.         private Trader _trader;
  124.  
  125.         public Shop()
  126.         {
  127.             _player = new Player(33);
  128.             _trader = new Trader(new List<Item> { new Item("q", 5), new Item("w", 7), new Item("e", 9), new Item("r", 11) });
  129.         }
  130.  
  131.         public void Trade()
  132.         {
  133.             while (_player.Money > 0)
  134.             {
  135.                 _trader.ShowItems();
  136.                 _player.ShowInventory();
  137.  
  138.                 Item itemToBuy = _trader.SellItem();
  139.                 if (itemToBuy.Price <= _player.Money)
  140.                 {
  141.                     _player.BuyItem(itemToBuy);
  142.                 }
  143.                 else
  144.                 {
  145.                     Console.WriteLine("У вас не хватил денег на это товар!");
  146.                 }
  147.  
  148.                 Console.Clear();
  149.             }
  150.  
  151.             Console.WriteLine("У вас закончились деньги!");
  152.             _player.ShowInventory();
  153.             Console.ReadKey();
  154.         }
  155.     }
  156.  
  157. }
Add Comment
Please, Sign In to add comment