Загрузка данных
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();
}
}
}
}
}
}