Advertisement
SnowPhoenix347

5.4

Nov 11th, 2019
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.46 KB | None | 0 0
  1. using System;
  2.  
  3. namespace FifthProject
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Player player = new Player();
  10.             Trader trader = new Trader();
  11.             Inventory inventory = new Inventory();
  12.  
  13.             while (true)
  14.             {
  15.                 int id;
  16.                 ShowMenu();
  17.                 inventory.ShowBalance(player.PlayerBalance, trader.TraderBalance);
  18.                 int menu = Convert.ToInt32(Console.ReadLine());
  19.                 switch (menu)
  20.                 {
  21.                     case 1:
  22.                         inventory.AddItem(ref player.PlayerItems);
  23.                         break;
  24.                     case 2:
  25.                         inventory.AddItem(ref trader.TraderItems);
  26.                         break;
  27.                     case 3:
  28.                         inventory.ShowItems(player.PlayerItems);
  29.                         id = Convert.ToInt32(Console.ReadLine());
  30.                         inventory.TradeItem(ref player.PlayerItems, ref trader.TraderItems, id, ref player.PlayerBalance, ref trader.TraderBalance);
  31.                         break;
  32.                     case 4:
  33.                         inventory.ShowItems(trader.TraderItems);
  34.                         id = Convert.ToInt32(Console.ReadLine());
  35.                         inventory.TradeItem(ref trader.TraderItems, ref player.PlayerItems, id, ref trader.TraderBalance, ref player.PlayerBalance);
  36.                         break;
  37.                     case 5:
  38.                         inventory.ShowItems(player.PlayerItems);
  39.                         Console.ReadKey();
  40.                         break;
  41.                     case 6:
  42.                         inventory.ShowItems(trader.TraderItems);
  43.                         Console.ReadKey();
  44.                         break;
  45.                 }
  46.                 Console.Clear();
  47.             }
  48.         }
  49.  
  50.         static void ShowMenu()
  51.         {
  52.             Console.WriteLine("\tMenu\n" +
  53.                               "1. Добавить новый предмет в инвентарь\n" +
  54.                               "2. Добавить новый предмет торговцу\n" +
  55.                               "3. Продать предмет\n" +
  56.                               "4. Купить предмет\n" +
  57.                               "5. Показать инвентарь\n" +
  58.                               "6. Показать инвентарь продавца\n");
  59.         }
  60.     }
  61.  
  62.     class Inventory
  63.     {
  64.  
  65.         public void AddItem(ref Item[] items)
  66.         {
  67.             bool usability = false;
  68.             Console.WriteLine("Введите цену");
  69.             int price = Convert.ToInt32(Console.ReadLine());
  70.             Console.WriteLine("Введите размер");
  71.             int scale = Convert.ToInt32(Console.ReadLine());
  72.             Console.WriteLine("Введите имя");
  73.             string name = Console.ReadLine();
  74.             Console.WriteLine("Можно ли использовать этот предмет?\n" +
  75.                               "1. Да\n" +
  76.                               "2. Нет\n");
  77.  
  78.             int menu = Convert.ToInt32(Console.ReadLine());
  79.             if (menu == 1)
  80.             {
  81.                 usability = true;
  82.             }
  83.  
  84.             Item[] tempItems = new Item[items.Length + 1];
  85.  
  86.             for (int i = 0; i < tempItems.Length - 1; i++)
  87.             {
  88.                 tempItems[i] = items[i];
  89.             }
  90.  
  91.             tempItems[tempItems.Length - 1] = new Item(price, scale, name, usability);
  92.             items = tempItems;
  93.         }
  94.  
  95.         public void AddNewItem(int price, int scale, string name, bool usability, ref Item[] items)
  96.         {
  97.             Item[] tempItems = new Item[items.Length + 1];
  98.  
  99.             for (int i = 0; i < tempItems.Length - 1; i++)
  100.             {
  101.                 tempItems[i] = items[i];
  102.             }
  103.  
  104.             tempItems[tempItems.Length - 1] = new Item(price, scale, name, usability);
  105.             items = tempItems;
  106.         }
  107.         public void RemoveItem(int id, ref Item[] items)
  108.         {
  109.             items[id] = null;
  110.             Item[] tempItems = new Item[items.Length - 1];
  111.             for (int i = 0; i < items.Length - 1; i++)
  112.             {
  113.                 if (items[i] != null)
  114.                 {
  115.                     tempItems[i] = items[i];
  116.                 }
  117.                 else
  118.                 {
  119.                     tempItems[i] = items[i + 1];
  120.                 }
  121.             }
  122.  
  123.             items = tempItems;
  124.         }
  125.  
  126.         public void TradeItem(ref Item[] items, ref Item[] itemsSecond, int id, ref int balance, ref int balanceSecond)
  127.         {
  128.  
  129.             if (balanceSecond >= items[id].Price)
  130.             {
  131.  
  132.                 balanceSecond -= items[id].Price;
  133.                 balance += items[id].Price;
  134.  
  135.                 AddNewItem(0, 0, null, false, ref itemsSecond);
  136.                 itemsSecond[itemsSecond.Length - 1] = items[id];
  137.                 RemoveItem(id, ref items);
  138.             }
  139.             else
  140.             {
  141.                 Console.WriteLine("Недостаточно средств");
  142.                 Console.ReadKey();
  143.             }
  144.         }
  145.  
  146.         public void ShowItems(Item[] items)
  147.         {
  148.             for (int i = 0; i < items.Length; i++)
  149.             {
  150.                 Console.WriteLine($"ID: {i} Название: {items[i].Name} Цена: {items[i].Price} " +
  151.                                   $"Размер: {items[i].Scale} Юзабельность: {items[i].Usability}");
  152.             }
  153.         }
  154.         public void ShowBalance(int playerBalance, int traderBalance)
  155.         {
  156.             Console.WriteLine($"Баланс игрока: {playerBalance}\n" +
  157.                               $"Баланс торговца: {traderBalance}");
  158.         }
  159.     }
  160.  
  161.     class Trader
  162.     {
  163.         public Item[] TraderItems = new Item[0];
  164.         public int TraderBalance = 10000;
  165.     }
  166.  
  167.     class Player
  168.     {
  169.         public Item[] PlayerItems = new Item[0];
  170.         public int PlayerBalance = 1000;
  171.     }
  172.  
  173.     class Item
  174.     {
  175.         public int Price { get; }
  176.         public int Scale { get; }
  177.         public string Name { get; }
  178.         public bool Usability { get; }
  179.  
  180.         public Item(int price, int scale, string name, bool usability)
  181.         {
  182.             Price = price;
  183.             Scale = scale;
  184.             Name = name;
  185.             Usability = usability;
  186.         }
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement