Advertisement
TravaMan

Basic_Task25

Dec 31st, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.67 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Basic_Task25
  5. {
  6.     class Program
  7.     {
  8.         static string mainMenu = "Меню.\n" +
  9.             "1. Показать товар продавца\n" +
  10.             "2. Посмотреть свои вещи\n" +
  11.             "3. Купить товар\n" +
  12.             "0. Выход\n";
  13.         static void Main(string[] args)
  14.         {
  15.             Trader trader = new Trader();
  16.             Player player = new Player();
  17.             while (true)
  18.             {
  19.                 Console.Clear();
  20.                 switch (ReadInt(mainMenu))
  21.                 {
  22.                     case 1:
  23.                         Console.Clear();
  24.                         trader.ShowProducts();
  25.                         Console.ReadKey();
  26.                         break;
  27.                     case 2:
  28.                         Console.Clear();
  29.                         player.Show();
  30.                         Console.ReadKey();
  31.                         break;
  32.                     case 3:
  33.                         Console.Clear();
  34.                         trader.ShowProducts();
  35.                         int number = -1;
  36.  
  37.                         while (number < 1 || number > trader.Products.Count)
  38.                         {
  39.                             number = ReadInt("Введите номер товара: ");
  40.                             Console.Clear();
  41.                             if (number < 1 || number > trader.Products.Count)
  42.                             {
  43.                                 Console.WriteLine("Введено неверный номер товара");
  44.                             }
  45.                         }
  46.  
  47.                         if (!player.BuyProduct(trader.SellProduct(number)))
  48.                         {
  49.                             Console.WriteLine("У вас недостаточно монет");
  50.                             Console.ReadKey();
  51.                         }                    
  52.                         break;
  53.                     case 0:
  54.                         return;
  55.                 }
  56.             }
  57.         }
  58.  
  59.         static int ReadInt(string menu)
  60.         {
  61.             int output = 0;
  62.             string input;
  63.  
  64.             while (true)
  65.             {
  66.                 Console.Write(menu);
  67.                 input = Console.ReadLine();
  68.                 Console.Clear();
  69.  
  70.                 if (int.TryParse(input, out output))
  71.                 {
  72.                     return output;
  73.                 }
  74.                 else
  75.                 {
  76.                     Console.WriteLine("Введено не число, попробуйте еще!");
  77.                 }
  78.             }
  79.         }
  80.     }
  81.  
  82.     class Player
  83.     {
  84.         public List<Product> Products { get; }
  85.         private int Money { get; set; }
  86.  
  87.         public Player()
  88.         {
  89.             Products = new List<Product>();
  90.             Money = 100;
  91.         }
  92.  
  93.         public void Show()
  94.         {
  95.             Console.WriteLine($"Монет - {Money}");
  96.             for (int i = 0; i < Products.Count; i++)
  97.             {
  98.                 Console.WriteLine($"{i + 1}. {Products[i].Name} - {Products[i].Cost} монет");
  99.             }
  100.         }
  101.  
  102.         public bool BuyProduct(Product product)
  103.         {
  104.             if (product.Cost <= Money)
  105.             {
  106.                 Products.Add(product);
  107.                 Money -= product.Cost;
  108.                 return true;
  109.             } else
  110.             {
  111.                 return false;
  112.             }
  113.         }
  114.     }
  115.  
  116.     class Trader
  117.     {
  118.         public List<Product> Products { get; }
  119.  
  120.         public Trader()
  121.         {
  122.             Products = new List<Product>();
  123.  
  124.             Products.Add(new Product("Золотой медальон", 50));
  125.             Products.Add(new Product("Самоцвет", 75));
  126.             Products.Add(new Product("Железный меч", 20));
  127.             Products.Add(new Product("Паек", 1));
  128.             Products.Add(new Product("Плащ", 10));
  129.         }
  130.  
  131.         public void ShowProducts()
  132.         {
  133.             for (int i = 0; i < Products.Count; i++)
  134.             {
  135.                 Console.WriteLine($"{i + 1}. {Products[i].Name} - {Products[i].Cost} монет");
  136.             }
  137.         }
  138.  
  139.         public Product SellProduct(int number)
  140.         {
  141.             Product product = Products[number - 1];
  142.             Products.RemoveAt(number - 1);
  143.             return product;
  144.         }
  145.     }
  146.  
  147.     class Product
  148.     {
  149.         public string Name { get; set; }
  150.         public int Cost { get; set; }
  151.  
  152.         public Product(string name, int cost)
  153.         {
  154.             Name = name;
  155.             Cost = cost;
  156.         }
  157.     }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement