Как отобразить два сгенерированных текста ASCII с использованием наследования в консольном приложении на С#
Я пытаюсь сделать проект в отношении отображения двух отдельных текстовых анимаций в одной строке, которые должны отображаться следующим образом.
Я использую для этого наследование. Я, однако, не могу отобразить их в одной строке. Мне нужна помощь, чтобы выровнять их по той же линии, что и изображение.
Вот скриншот кода. Я не могу загрузить код. общественное недействительное яйцо () {
Console.Write(" ___" +
"\n / \\" +
"\n |’ |" +
"\n \\___/");
//return;
}
public void Cat()
{
Console.Write("\n _,'| _.-''``-...___..--';" +
"\n /_ \\'. __..-' , ,--...--'''" +
"\n <\\ .`--''' ` /'" +
"\n `-';' ; ; ;" +
"\n __...--'' ___...--_..' .;.'" +
"\n (,__....----''' (,..--'' " +
"");
//return;
}
public class My_Calculation : Program
{
static void Main(string[] args)
{
My_Calculation demo = new My_Calculation();
demo.Egg();
demo.Cat();
Console.Read();
}
}
Я открыт для предложений, если есть лучший способ решить эту проблему . Заранее спасибо!
1 ответ
Вы не сможете выровнять их, когда печатаете один за другим. В яйце есть новые символы строки, что означает, что что-то, напечатанное после него, всегда будет под ним.
Простое решение состоит в том, чтобы напечатать кота и яйцо одновременно, т.е. иметь кота и яйцо в одной строке.
Обновлять:
Чтобы достичь того, что (я думаю) вы хотите сделать, все, что вам нужно, это иметь токен, который вы заменяете пробелом, чтобы кошка приблизилась к яйцу, например:
public static class CatAndEgg
{
private const string ReplacementString = "[SPACES]";
private const string Image = @" [SPACES] _,'| _.-''``-...___..--';
[SPACES] /_ \\'. __..-' , ,--...--'''
___ [SPACES] <\\ .`--''' ` /'
/ \\[SPACES] `-';' ; ; ;
|’ |[SPACES] __...--'' ___...--_..' .;.'
\\___/ [SPACES](,__....----''' (,..--'' ";
public static void PrintImageWithSpaces(int numberOfSpaces)
{
string spaces = new(' ', numberOfSpaces);
Console.Write(Image.Replace(ReplacementString, spaces));
Console.Write(Environment.NewLine);
}
public static void DoAnimation()
{
PrintImageWithSpaces(20);
Task.Delay(200).Wait();
PrintImageWithSpaces(15);
Task.Delay(200).Wait();
PrintImageWithSpaces(10);
Task.Delay(200).Wait();
PrintImageWithSpaces(5);
Task.Delay(200).Wait();
PrintImageWithSpaces(0);
}
}
Метод печатает кота и яйцо с указанным количеством пробелов между ними. Начав с x пробелов, а затем уменьшая количество пробелов каждый раз, когда вы звоните
Вызов
то есть:
public static void Main()
{
//Animation Example
CatAndEgg.DoAnimation();
//Manually Move cat closer to egg
CatAndEgg.PrintImageWithSpaces(10);
Task.Delay(200).Wait();
CatAndEgg.PrintImageWithSpaces(5);
Task.Delay(200).Wait();
CatAndEgg.PrintImageWithSpaces(0);
}
Примечание. В приведенном выше коде добавлены временные задержки, чтобы вы могли видеть постепенное добавление отпечатков, но они вам не понадобятся, если вы будете печатать каждый раз, когда пользователь вводит неправильный ответ.