Загрузка данных


using System;
using System.Collections.Generic;

namespace игра
{
    public class Item
    {
        public string Name { get; set; }
        public Item(string name)
        {
            Name = name;
        }
    }
    public class Room
    {
        public string Name { get; set; }
        public string Description { get; set; }

        public Dictionary<string, Room> Exits { get; set; } = new Dictionary<string, Room>();
        public List<Item> ItemsInRoom { get; set; } = new List<Item>();
        public Room(string n, string d)
        {
            Name = n;
            Description = d;
        }
    }
    internal class Program
    {
        static List<Item> inventory = new List<Item>();
        static void Main(string[] args)
        {
            Room Startroom = new Room("Подвал", "Сыро и темно");
            Room Koridor = new Room("Коридор", "В конце него видно дверь под замком, в центре есть две двери на против друг друга.");
            Room Saveroom = new Room("Безопасная комната", "В углу кто-то сидит...");
            Room Otherroom = new Room("Комната", "Обычная комната, но не пустая.");
            Item Key = new Item("Ключ");
            Item aid = new Item("Аптечка");
            Item zap1 = new Item("Записка");
            Item zap2 = new Item("Записка");
            Room currentroom = Startroom;
            Startroom.Exits.Add("коридор", Koridor);
            Koridor.Exits.Add("безопасная комната", Saveroom);
            Koridor.Exits.Add("комната", Otherroom);
            Koridor.Exits.Add("подвал", Startroom);
            Saveroom.Exits.Add("коридор", Koridor);
            Otherroom.Exits.Add("коридор", Koridor);
            Otherroom.ItemsInRoom.Add(Key);
            Saveroom.ItemsInRoom.Add(aid);
            Saveroom.ItemsInRoom.Add(zap1);
            Otherroom.ItemsInRoom.Add(zap2);
            bool IsTied = true;
            Console.WriteLine("Вы очнулись в сырой комнате, кажется, что ваша голова болит...");
            Console.ReadKey();
            Console.WriteLine("Скорее всего это подвал. Вы чувствуете, что вы связаны. Веревка не крепкая.");
            Console.ReadKey();
            while (true)
            {
                if (IsTied)
                {
                    Console.WriteLine("Желаете попытаться выбраться? (да или нет)");
                    string otvet = Console.ReadLine();
                    if (otvet == "да")
                    {
                        IsTied = false;
                        Console.WriteLine("Вы освободились!");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("Вы продолжаете лежать на полу...");
                        Console.ReadKey();
                    }

                }
                else
                {
                    Console.Clear();
                    Console.WriteLine($"Сейчас вы находитесь в {currentroom.Name.ToLower()}, {currentroom.Description.ToLower()}...");
                    Console.ReadKey();
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("---Внимание игрок! Вы можете передвигаться, осматриваться и проверять инвентарь. Введите название комнаты или действие.---");
                    Console.WriteLine($"Доступные комнаты: ");
                    foreach (var exit in currentroom.Exits)
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.WriteLine($"{exit.Key}");
                        Console.ForegroundColor = ConsoleColor.Green;
                    }
                    Console.WriteLine("---Что будем делать?---");
                    Console.ForegroundColor = ConsoleColor.White;
                    string move = Console.ReadLine();
                    Item Founditem = currentroom.ItemsInRoom.Find(x => x.Name.ToLower() == move.ToLower());
                    if (Founditem != null)
                    {
                        inventory.Add(Founditem);
                        currentroom.ItemsInRoom.Remove(Founditem);
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine($"Вы подобрали {Founditem.Name}.");
                        Console.ResetColor();
                        Console.ReadKey();
                        continue;
                    }
                    if (move.ToLower() == "инвентарь")
                    {
                        Console.WriteLine("У вас в руках:");
                        if (inventory.Count == 0)
                        {
                            Console.WriteLine("Пусто.");
                        }
                        else
                        {
                            foreach (var i in inventory)
                            {
                                Console.ForegroundColor = ConsoleColor.Cyan;
                                Console.WriteLine($"{i.Name}");
                                Console.ResetColor();
                            }
                        }
                        Console.ReadKey();
                        continue;
                    }
                    if (move.ToLower() == "осмотреть")
                    {
                        if (currentroom.ItemsInRoom.Count > 0)
                        {
                            Console.WriteLine("Вы нашли следующее: ");
                            foreach (var item in currentroom.ItemsInRoom)
                            {
                                Console.ForegroundColor = ConsoleColor.Cyan;
                                Console.WriteLine($"{item.Name}");
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                            Console.WriteLine("Введите то, что хотите взять с собой.");
                        }
                        else
                        {
                            Console.WriteLine("Вы осмотрелись, но здесь больше ничего нет.");
                        }
                        Console.ReadKey();
                        continue;
                    }
                    if (currentroom.Exits.ContainsKey(move))
                    {
                        currentroom = currentroom.Exits[move];
                        Console.WriteLine($"Вы попали в {currentroom.Name.ToLower()}");
                        Console.ReadKey();
                    }
                    else if (move == currentroom.Name.ToLower())
                    {
                        Console.WriteLine("Вы уже находитесь в этой комнате.");
                        Console.ReadKey();
                    }
                    else if (move == "".ToLower())
                    {
                        Console.WriteLine("Пожалуйста введите комнату из списка или действие.");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("Пожалуйста введите комнату из списка или действие.");
                        Console.ReadKey();
                    }
                    }
                }

            }
        }
    }