using System.Collections.Generic;
static Dictionary<string, Tuple<List<string>, string>> receitas = new Dictionary<string, Tuple<List<string>, string>>
{"Macarrão com Molho de Tomate", Tuple.Create(new List<string>{"macarrão", "molho de tomate", "queijo"}, "Cozinhe o macarrão de acordo com as instruções da embalagem. Aqueça o molho de tomate em uma panela. Escorra o macarrão cozido e misture com o molho. Sirva com queijo por cima.")},
{"Salada Caesar", Tuple.Create(new List<string>{"alface", "croutons", "queijo parmesão", "molho Caesar"}, "Lave e seque bem as folhas de alface. Em uma tigela grande, misture as folhas de alface, os croutons, o queijo parmesão e o molho Caesar. Sirva imediatamente.")},
{"Omelete", Tuple.Create(new List<string>{"ovos", "queijo", "tomate", "cebola", "presunto"}, "Quebre os ovos em uma tigela e bata bem. Em uma frigideira, aqueça um pouco de óleo ou manteiga. Adicione os ovos batidos e cozinhe até que as bordas comecem a firmar. Adicione o queijo, tomate, cebola e presunto por cima. Dobre a omelete ao meio e cozinhe até que esteja completamente cozida.")},
{"Frango Assado", Tuple.Create(new List<string>{"peito de frango", "limão", "alho", "sal", "pimenta", "azeite"}, "Pré-aqueça o forno a 200°C. Tempere os peitos de frango com suco de limão, alho picado, sal e pimenta a gosto. Regue com um pouco de azeite. Asse no forno por 25-30 minutos ou até que o frango esteja cozido.")},
{"Sopa de Legumes", Tuple.Create(new List<string>{"batata", "cenoura", "cebola", "alho", "caldo de legumes", "sal", "pimenta"}, "Descasque e pique os legumes em cubos. Refogue a cebola e o alho em um pouco de azeite até ficarem macios. Adicione os legumes picados e o caldo de legumes. Deixe cozinhar em fogo médio até que os legumes estejam macios. Tempere com sal e pimenta a gosto.")},
{"Risoto de Cogumelos", Tuple.Create(new List<string>{"arroz arbóreo", "cogumelos", "caldo de legumes", "vinho branco", "cebola", "alho", "queijo parmesão", "manteiga"}, "Refogue a cebola e o alho em um pouco de manteiga até ficarem macios. Adicione os cogumelos fatiados e cozinhe até que estejam dourados. Adicione o arroz e refogue por alguns minutos. Deglace a panela com vinho branco. Adicione o caldo de legumes aos poucos, mexendo sempre, até que o arroz esteja cozido e cremoso. Misture o queijo parmesão e ajuste o tempero, se necessário.")},
{"Peixe Grelhado com Molho de Ervas", Tuple.Create(new List<string>{"filé de peixe", "ervas frescas", "limão", "azeite", "sal", "pimenta"}, "Tempere os filés de peixe com sal, pimenta e suco de limão. Pique as ervas frescas e misture com azeite. Grelhe os filés de peixe em uma grelha ou frigideira quente até que estejam cozidos. Sirva com o molho de ervas por cima.")},
{"Torta de Legumes", Tuple.Create(new List<string>{"massa de torta", "abobrinha", "berinjela", "pimentão", "queijo", "ovos", "creme de leite"}, "Forre uma forma de torta com a massa. Fatie os legumes e distribua sobre a massa. Misture os ovos, o queijo e o creme de leite e despeje sobre os legumes. Asse em forno preaquecido a 180°C por aproximadamente 30-40 minutos, ou até que a massa esteja dourada e o recheio esteja firme.")}
public static void Main()
Console.WriteLine("Bem-vindo ao Gerador de Receitas!");
Console.Write("Por favor, insira os ingredientes disponíveis (separados por vírgula): ");
string ingredientesInput = Console.ReadLine();
string[] ingredientes = ingredientesInput.Split(',');
List<string> receitasDisponiveis = EncontrarReceitasDisponiveis(ingredientes);
if (receitasDisponiveis.Count == 0)
Console.WriteLine("Desculpe, não há receitas disponíveis com os ingredientes fornecidos.");
Console.WriteLine("Receitas disponíveis com base nos ingredientes fornecidos:");
foreach (string receita in receitasDisponiveis)
Console.WriteLine("- " + receita);
Console.WriteLine("Modo de preparo:");
Console.WriteLine(receitas[receita].Item2);
static List<string> EncontrarReceitasDisponiveis(string[] ingredientes)
List<string> receitasDisponiveis = new List<string>();
foreach (var receita in receitas)
bool possuiIngredientes = true;
foreach (string ingrediente in receita.Value.Item1)
if (!ingredientes.Contains(ingrediente.Trim()))
possuiIngredientes = false;
receitasDisponiveis.Add(receita.Key);
return receitasDisponiveis;