SHARE
TWEET

Untitled

Snuffko Oct 21st, 2019 71 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace CourseLight
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             bool exit = false;
  14.             int userInt;
  15.             Random rand = new Random();
  16.  
  17.             Buyer buyer = new Buyer(new Item[0], rand.Next(400, 700));
  18.             Seller seller = new Seller(new Item[4] { new Item("Меч", 50), new Item("Яблоко", 2), new Item("Ржавый дрын", 5), new Item("Латный доспех", 500) }, 0);
  19.  
  20.             while (!exit)
  21.             {
  22.                 Console.SetCursorPosition(0, 0);
  23.                 Console.WriteLine($"Вы в магазине. У вас {buyer.Money} монет. Ваши действия");
  24.                 Console.WriteLine("\n1. Посмотреть товары продавца\n2. Купить товар\n3. Посмотреть свои вещи\n4. Уйти");
  25.  
  26.                 Console.SetCursorPosition(0, 10);
  27.                 Console.Write("Вы хотите: ");
  28.  
  29.                 switch (GetInt())
  30.                 {
  31.                     case 1:
  32.                         Console.Clear();
  33.                         Console.WriteLine("Товары продавца\n\n");
  34.  
  35.                         if (seller.Items.Length > 0)
  36.                         {
  37.                             seller.RenderItems();
  38.                             Console.WriteLine("\nНажмите любую клавишу, чтобы вернуться в главное меню");
  39.                             Console.ReadLine();
  40.                             Console.Clear();
  41.                         }
  42.                         else
  43.                         {
  44.                             WriteMessage("У продавца нет товаров!");
  45.                         }                    
  46.                         break;
  47.                     case 2:
  48.                         Console.Clear();
  49.                         Console.WriteLine("Покупка вещи\n\n");
  50.  
  51.                         if (seller.Items.Length > 0)
  52.                         {
  53.                             Console.WriteLine("Какую вещь вы хотите купить? Введите номер: ");
  54.                             userInt = GetInt();
  55.  
  56.                             if (userInt <= seller.Items.Length)
  57.                             {
  58.                                 Item tempItem = seller.Items[userInt - 1];
  59.  
  60.                                 if (buyer.RemoveMoney(tempItem.Cost))
  61.                                 {
  62.                                     seller.RemoveItem(userInt - 1);
  63.                                     seller.AddMoney(tempItem.Cost);
  64.                                     buyer.AddItem(tempItem);
  65.                                     WriteMessage($"Вещь \"{tempItem.Title}\" куплена", ConsoleColor.Green);
  66.                                 }
  67.                                 else
  68.                                 {
  69.                                     WriteMessage("У вас не хватит денег на покупку этого товара!");
  70.                                 }
  71.                             }
  72.                             else
  73.                             {
  74.                                 WriteMessage("Такого товара не существует!");
  75.                             }  
  76.                         }
  77.                         else
  78.                         {
  79.                             WriteMessage("У продавца нет товаров!");
  80.                         }
  81.                         break;
  82.                     case 3:
  83.                         Console.Clear();
  84.                         Console.WriteLine("Ваши вещи\n\n");
  85.  
  86.                         if (buyer.Items.Length > 0)
  87.                         {
  88.                             buyer.RenderItems();
  89.  
  90.                             Console.WriteLine("\nНажмите любую клавишу, чтобы вернуться в главное меню");
  91.                             Console.ReadLine();
  92.                             Console.Clear();
  93.                         }
  94.                         else
  95.                         {
  96.                             WriteMessage("У вас нет вещей!");
  97.                         }
  98.                         break;
  99.                     case 4:
  100.                         exit = true;
  101.                         break;
  102.                     default:
  103.                         WriteMessage("Неверный пункт меню!");
  104.                         break;
  105.                 }
  106.             }
  107.         }
  108.         static int GetInt()
  109.         {
  110.             string userInput;
  111.             int userNumber = 0;
  112.             bool isParse = false;
  113.  
  114.             while (!isParse)
  115.             {
  116.                 userInput = Console.ReadLine();
  117.                 isParse = int.TryParse(userInput, out userNumber);
  118.                 if (!isParse)
  119.                 {
  120.                     Console.Write("Неверно. Введите число: ");
  121.                 }
  122.             }
  123.  
  124.             return userNumber;
  125.         }
  126.  
  127.         static void WriteMessage(string message, ConsoleColor color = ConsoleColor.Red)
  128.         {
  129.             Console.Clear();
  130.             Console.SetCursorPosition(0, 9);
  131.             Console.ForegroundColor = color;
  132.             Console.Write(message);
  133.             Console.ResetColor();
  134.         }
  135.     }
  136.  
  137.     class Seller
  138.     {
  139.         public Item[] Items { get; private set; }
  140.         public int Money { get; private set; }
  141.  
  142.         public Seller(Item[] items, int money)
  143.         {
  144.             Items = items;
  145.             Money = money;
  146.         }
  147.  
  148.         public void RenderItems()
  149.         {
  150.             for (int i = 0; i < Items.Length; i++)
  151.             {
  152.                 Console.WriteLine($"{i + 1}. \"{Items[i].Title}\", стоимостью {Items[i].Cost} монет");
  153.             }
  154.         }
  155.  
  156.         public void RemoveItem(int index)
  157.         {
  158.             Item[] tempItems = new Item[Items.Length - 1];
  159.             for (int i = 0; i < Items.Length; i++)
  160.             {
  161.                 if (i < index)
  162.                 {
  163.                     tempItems[i] = Items[i];
  164.                 }
  165.                 else if (i > index)
  166.                 {
  167.                     tempItems[i - 1] = Items[i];
  168.                 }
  169.             }
  170.  
  171.             Items = tempItems;
  172.         }
  173.  
  174.         public void AddMoney(int money)
  175.         {
  176.             Money += money;
  177.         }
  178.     }
  179.  
  180.     class Buyer
  181.     {
  182.         public Item[] Items { get; private set; }
  183.         public int Money { get; private set; }
  184.  
  185.         public Buyer(Item[] items, int money)
  186.         {
  187.             Items = items;
  188.             Money = money;
  189.         }
  190.  
  191.         public void RenderItems()
  192.         {
  193.             for (int i = 0; i < Items.Length; i++)
  194.             {
  195.                 Console.WriteLine($"{i + 1}. \"{Items[i].Title}\"");
  196.             }
  197.         }
  198.  
  199.         public bool RemoveMoney(int money)
  200.         {
  201.             if (Money >= money)
  202.             {
  203.                 Money -= money;
  204.                 return true;
  205.             }
  206.             else
  207.             {
  208.                 return false;
  209.             }
  210.         }
  211.  
  212.         public void AddItem(Item tempItem)
  213.         {
  214.             Item[] tempItems = new Item[Items.Length + 1];
  215.  
  216.             for (int i = 0; i < Items.Length; i++)
  217.             {
  218.                 tempItems[i] = Items[i];
  219.             }
  220.             tempItems[tempItems.Length - 1] = tempItem;
  221.             Items = tempItems;
  222.         }
  223.     }
  224.  
  225.     class Item
  226.     {
  227.         public string Title { get; }
  228.         public int Cost { get; }
  229.  
  230.         public Item(string title, int cost)
  231.         {
  232.             Title = title;
  233.             Cost = cost;
  234.         }
  235.     }
  236.  
  237. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top