Advertisement
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 Lesson5._4_v3
- {
- class Program
- {
- static void Main(string[] args)
- {
- string userValue;
- int userNumber;
- int userQuality;
- Render render = new Render();
- DataBaseItems dataBaseItems = new DataBaseItems();
- Item[] item = dataBaseItems.Items();
- while (true)
- {
- Console.WriteLine("Вы стоите перед торговцем. \n1. Торговать. \n2. Уйти.");
- userValue = Console.ReadLine();
- Console.Clear();
- if (TryNumber1or2(userValue))
- {
- userNumber = Convert.ToInt32(userValue);
- if (userNumber == 1)
- {
- while (true)
- {
- render.RenderTradeList(item);
- userValue = Console.ReadLine();
- if (TryNumber1or2or3(userValue))
- {
- userNumber = Convert.ToInt32(userValue);
- if (userNumber == 1)
- {
- Console.WriteLine("Укажите номер предмета, который хотите купить: ");
- userNumber = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Укажите количество, которое хотите купить: ");
- userQuality = Convert.ToInt32(Console.ReadLine());
- if (dataBaseItems.TryBuy(item, userNumber, userQuality))
- {
- item = dataBaseItems.BuyItem(item, userNumber, userQuality);
- }
- else
- {
- render.Error();
- }
- Console.Clear();
- }
- else if (userNumber == 2)
- {
- Console.WriteLine("Укажите номер предмета, который хотите продать: ");
- userNumber = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Укажите количество, которое хотите продать: ");
- userQuality = Convert.ToInt32(Console.ReadLine());
- if (dataBaseItems.TrySell(item, userNumber, userQuality))
- {
- item = dataBaseItems.SellItem(item, userNumber, userQuality);
- }
- else
- {
- render.Error();
- }
- Console.Clear();
- }
- else if (userNumber == 3)
- {
- Console.Clear();
- break;
- }
- }
- }
- }
- else if (userNumber == 2)
- {
- break;
- }
- }
- }
- }
- static bool TryNumber1or2 (string userNumber)
- {
- if (userNumber == "1" || userNumber == "2")
- return true;
- else
- return false;
- }
- static bool TryNumber1or2or3(string userNumber)
- {
- if (userNumber == "1" || userNumber == "2" || userNumber == "3")
- return true;
- else
- return false;
- }
- }
- class Item
- {
- public string Name;
- public int Cost;
- public int UserQuanity;
- public int TraderQuanity;
- public Item(string name = "none", int cost = 1, int userQuanity = 0, int traderQuanity = 0)
- {
- Name = name;
- Cost = cost;
- UserQuanity = userQuanity;
- TraderQuanity = traderQuanity;
- }
- }
- class DataBaseItems
- {
- public Item[] Items()
- {
- Item[] items =
- {
- new Item("Золото", 1, 5000, 99999),
- new Item("Бита", 1000, 1, 1),
- new Item("Мамино кольцо", 10000, 1, 0),
- new Item("Авакадо", 30, 0, 10),
- new Item("Банан", 10, 0, 40),
- new Item("Яблоко", 4, 0, 200),
- new Item("Дыня", 30, 0, 2)
- };
- return items;
- }
- public Item[] BuyItem(Item[] item,int userNumber, int userQuanity)
- {
- int i = 0;
- int y = 0;
- while (y != userNumber)
- {
- i++;
- if (i == 0)
- continue;
- if (item[i].UserQuanity == 0)
- continue;
- y++;
- }
- item[i].UserQuanity += userQuanity;
- item[i].TraderQuanity -= userQuanity;
- item[0].UserQuanity -= (userQuanity * item[i].Cost);
- item[0].TraderQuanity += (userQuanity * item[i].Cost);
- return item;
- }
- public Item[] SellItem(Item[] item, int userNumber, int userQuanity)
- {
- int i = 0;
- int y = 0;
- while (y != userNumber)
- {
- i++;
- if (i == 0)
- continue;
- if (item[i].UserQuanity == 0)
- continue;
- y++;
- }
- item[i].UserQuanity -= userQuanity;
- item[i].TraderQuanity += userQuanity;
- item[0].UserQuanity += (userQuanity * item[i].Cost);
- item[0].TraderQuanity -= (userQuanity * item[i].Cost);
- return item;
- }
- public bool TryBuy(Item[] item, int userNumber, int userQuanity)
- {
- int i = 0;
- int y = 0;
- while (y != userNumber)
- {
- if (i < item.Length)
- i++;
- if (i == item.Length)
- break;
- if (i == 0)
- continue;
- if (item[i].UserQuanity == 0)
- continue;
- y++;
- }
- if (item[i].TraderQuanity - userQuanity >= 0 && item[0].UserQuanity - (userQuanity * item[i].Cost) >= 0)
- return true;
- else
- return false;
- }
- public bool TrySell(Item[] item, int userNumber, int userQuanity)
- {
- int i = 0;
- int y = 0;
- while (y != userNumber)
- {
- if (i < item.Length)
- i++;
- if (i == item.Length)
- break;
- if (i == 0)
- continue;
- if (item[i].UserQuanity == 0)
- continue;
- y++;
- }
- if (i < item.Length && item[i].UserQuanity - userQuanity >= 0 && item[0].TraderQuanity - (userQuanity * item[i].Cost) >= 0)
- return true;
- else
- return false;
- }
- }
- class Render
- {
- public void RenderTradeList(Item[] item)
- {
- RenderNameTradeLIst();
- RenderTrade(item);
- RenderCommandTrade();
- }
- public void RenderNameTradeLIst()
- {
- Console.SetCursorPosition(0, 0);
- Console.WriteLine("Ваш инвентарь:");
- Console.SetCursorPosition(60, 0);
- Console.WriteLine("Предметы торговца:");
- }
- public void RenderTrade(Item[] item)
- {
- RenderTradeName();
- RenderInventer(item);
- RenderGold(item);
- }
- public void RenderTradeName()
- {
- Console.SetCursorPosition(0, 2);
- Console.WriteLine("Название | Кол-во | Стоимость |");
- Console.SetCursorPosition(60, 2);
- Console.WriteLine("Название | Кол-во | Стоимость |");
- }
- public void RenderInventer(Item[] item)
- {
- int y = 4;
- int j = 1;
- RenderUserInventer(item, y, j);
- RenderTraderInveter(item, y, j);
- }
- public void RenderUserInventer(Item[] item, int y, int j)
- {
- string name;
- string quanity;
- string cost;
- for (int i = 0; i < item.Length; i++)
- {
- if (i == 0)
- continue;
- if (item[i].UserQuanity == 0)
- continue;
- Console.SetCursorPosition(0, y);
- name = Name(item[i].Name);
- quanity = Quanity(item[i].UserQuanity);
- cost = Cost(item[i].Cost);
- Console.WriteLine(j + ". " + name + quanity + cost);
- y++;
- j++;
- }
- }
- public void RenderTraderInveter(Item[] item, int y, int j)
- {
- string name;
- string quanity;
- string cost;
- for (int i = 0; i < item.Length; i++)
- {
- if (i == 0)
- continue;
- if (item[i].TraderQuanity == 0)
- continue;
- Console.SetCursorPosition(60, y);
- name = Name(item[i].Name);
- quanity = Quanity(item[i].TraderQuanity);
- cost = Cost(item[i].Cost);
- Console.WriteLine(j + ". " + name + quanity + cost);
- y++;
- j++;
- }
- }
- public void RenderGold(Item[] item)
- {
- Console.SetCursorPosition(0, 10);
- Console.WriteLine("Ваше золото: " + item[0].UserQuanity);
- Console.SetCursorPosition(60, 10);
- Console.WriteLine("Золото торговца: " + item[0].TraderQuanity);
- }
- public string Name(string name)
- {
- while (name.Length < 16)
- {
- name += " ";
- }
- name += " | ";
- return name;
- }
- public string Quanity(int quanity)
- {
- string quanityItem = " " + quanity;
- while (quanityItem.Length < 6)
- {
- quanityItem = " " + quanityItem;
- }
- quanityItem += " | ";
- return quanityItem;
- }
- public string Cost(int cost)
- {
- string costItem = " " + cost;
- while (costItem.Length < 9)
- {
- costItem = " " + costItem;
- }
- costItem += " |";
- return costItem;
- }
- public void RenderCommandTrade()
- {
- Console.SetCursorPosition(0, 14);
- Console.WriteLine("1. Купить. \n2. Продать. \n3. Уйти.");
- }
- public void Error()
- {
- Console.WriteLine("Нужно построить зиккурат... Или правильно ввести данные.");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement