Как отобразить два сгенерированных текста 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);
}

Примечание. В приведенном выше коде добавлены временные задержки, чтобы вы могли видеть постепенное добавление отпечатков, но они вам не понадобятся, если вы будете печатать каждый раз, когда пользователь вводит неправильный ответ.

Другие вопросы по тегам