Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2020, 08:34   #1
n3rovik
Новичок
Джуниор
 
Регистрация: 07.12.2020
Сообщений: 1
Смех Мигание гирлянды на консольной ёлке

Недавно у меня появилось новогоднее настроение (мда в начале декабря), надеюсь оно как обычно не пропадёт под конец года. Мне как раз нечего было разрабатывать и писать, я решил сделать себе программистский Новый Год на C#. Я вывел ёлочку под восьмибитную версию Jingle Bells в консоль, вот код:
Код:
using System;
using System.Media;
using System.Threading;


namespace HappyNewYear
{
    class Program
    {

        static void Main(string[] args)
        {
            SoundPlayer jingleBells = new SoundPlayer();
            jingleBells.SoundLocation = Environment.CurrentDirectory + @"/JingleBells.wav";
            Console.WriteLine("С новым годом!\n");
            StarLayer();
            TreeLayer(3);
            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.WriteLine("     000 ");
            Console.WriteLine("     000 ");
            Console.WriteLine("     000 ");
            jingleBells.PlayLooping();
            Console.ReadKey();
        }

        static void TreeLayer(byte amount)
        {
            for (byte i = 0; i < amount; i++) {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("      0  ");
                Console.WriteLine("     000 ");
                Console.WriteLine("    00000 ");
                Console.WriteLine("   0000000 ");
                Console.WriteLine("  000000000 ");
                Console.WriteLine(" 00000000000 ");
            }     
        }

        static void StarLayer()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("      0  ");
            Console.WriteLine("    00000  ");
            Console.WriteLine("     000 ");
            Console.WriteLine("    0   0 ");
        }
    }
}
В общем я хочу чтобы ёлочка в рандомных местах меняла цвет на рандомный, типа красный, синий, жёлтый и так постоянно, желательно в такт музыке. Я знаю как менять цвет консоли, но вот вышеуказанную задачу просто не потяну.
n3rovik вне форума Ответить с цитированием
Старый 08.12.2020, 09:32   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Код:
class Program
    {
        static int fw = 9;
        static List<ConsoleColor> colors = Enum.GetValues(typeof(ConsoleColor)).Cast<ConsoleColor>().ToList();
        static Random rnd = new Random();
        static void Main(string[] args)
        {
            int frame = 0;
            int hlf = 0;
            int maxheight = colors.Count;
            while (true)
            {
                Console.Clear();
                putline(maxheight, 1, frame, hlf);
                frame++;
                hlf = (hlf+1)% maxheight;
                Thread.Sleep(100);                
            }
        }


        static void putline(int level, int sx, int frame, int hlv)
        {
            string fl = "".PadLeft(level, ' ');
            Console.Write(fl);
            frame = frame % 2;
            for (int i = 0; i < sx; i++)
            {
                Console.ForegroundColor = colors[rnd.Next(1, colors.Count)];
                //Console.ForegroundColor = (level== hlv) ? ConsoleColor.Yellow : colors[i % 2 == frame ? 10 : 12];
                //Console.ForegroundColor = colors[hlv % colors.Count];
                Console.Write("0");
            }
            Console.WriteLine(fl);
            if (level > 0)
                putline(level - 1, sx + 2, frame, hlv+1);
        }
    }
Изображения
Тип файла: png 123.png (49.3 Кб, 3 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про гирлянды Clips Skyes Помощь студентам 0 25.03.2014 02:51
Мигание изображения kuro-obi Общие вопросы по Java, Java SE, Kotlin 2 25.02.2014 23:45
Мигание Лампочками На Мк Cortex M3, Си Stasy_BMT Помощь студентам 1 10.12.2012 13:24
Мигание двоеточия Fantom Общие вопросы Delphi 5 27.06.2008 22:59
Мигание при движении Speeker Общие вопросы Delphi 1 14.02.2007 01:22