Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140
1

Вывести на экран цепочки падающих символов

20.10.2015, 20:18. Просмотров 1832. Ответов 0
Метки нет (Все метки)


Есть задача:
Используя Visual Studio, создайте проект по шаблону Console Application.
Создайте программу, которая будет выводить на экран цепочки падающих символов. Длина каждой цепочки задается случайно. Первый символ цепочки – белый, второй символ – светло-зеленый, остальные символы темно-зеленые. Во время падения цепочки, на каждом шаге, все символы меняют свое значение. Дойдя до конца, цепочка исчезает и сверху формируется новая цепочка.

вот код программки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Threading;
 
namespace Task_2
{
    class Program
    {
        static void Main()
        {
            Console.SetWindowSize(80, 42);
 
            Matrix instance;
 
            for (int i = 0; i < 26; i++)
            {
                instance = new Matrix(i * 3, true);
                new Thread(instance.Move).Start();
            }
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System;
using System.Threading;
 
namespace Task_2
{
    class Matrix
    {
        static object locker = new object();
 
        Random rand;
 
        const string litters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 
        public int Colunm { get; set; }
 
        public bool NeedSecond { get; set; }
 
        public Matrix(int col, bool needSecond)
        {
            Colunm = col;
            rand = new Random((int)DateTime.Now.Ticks);
            NeedSecond = needSecond;
        }
 
        private char GetChar()
        {
            return litters.ToCharArray()[rand.Next(0, 35)];
        }
 
        public void Move()
        {
            int lenght;
            int count;
 
            while (true)
            {
                count = rand.Next(3, 12);
                lenght = 0;
                Thread.Sleep(rand.Next(20, 5000));
                for (int i = 0; i < 40; i++)
                {
                    lock (locker)
                    {
                        //  Console.CursorTop = 0;
 
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.CursorTop = i - lenght;
                        for (int j = i - lenght - 1; j < i; j++)
                        {
                            Console.CursorLeft = Colunm;
                            Console.WriteLine("в–€");
                        }
 
                        if (lenght < count)
                            lenght++;
                        else
                            if (lenght == count)
                                count = 0;
                        if (NeedSecond && i < 20 && i > lenght + 2 && (rand.Next(1, 5) == 3))
                        {
                            new Thread((new Matrix(Colunm, false)).Move).Start();
                            NeedSecond = false;
                        }
 
                        if (39 - i < lenght)
                            lenght--;
                        Console.CursorTop = i - lenght + 1;
                        Console.ForegroundColor = ConsoleColor.DarkGreen;
                        for (int j = 0; j < lenght - 2; j++)
                        {
                            Console.CursorLeft = Colunm;
                            Console.WriteLine(GetChar());
                        }
                        if (lenght >= 2)
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.CursorLeft = Colunm;
                            Console.WriteLine(GetChar());
                        }
                        if (lenght >= 1)
                        {
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.CursorLeft = Colunm;
                            Console.WriteLine(GetChar());
                        }
 
                        Thread.Sleep(10);
                    }
                }
            }
        }
    }
}
Не особо понимаю что происходит в методе MOVE
Если кто может подскажите плиз.
0
Вложения
Тип файла: rar Lesson 13.rar (123.1 Кб, 21 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2015, 20:18
Ответы с готовыми решениями:

Вывод на консоль цепочек падающих символов (как в фильме Матрица)
Приветствую всех форумчан! Дано: нуб (т.е. Я) Нубу дано задание: Создайте программу, которая...

Дан массив символов, среди которых есть открывающиеся и закры- вающиеся скобки. Вывести на экран массивы символов
Дан массив символов, среди которых есть открывающиеся и закрывающиеся скобки. Вывести на экран...

Заменить цепочки символов
Условие: Ввод данных организовать из файла Предусмотреть возможность чтения...

Вывести позицию и длину самой длинной непрерывной цепочки из символов а
дана строка символов и некоторый символ а. Вывести позицию и длину самой длинной непрерывной...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2015, 20:18

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Игра: управляя объектом необходимо увернуться от падающих символов
На экран выводиться простой объект,который можно перемещать влево и вправо стрелками. Сверху...

Определить количество слов, которые не имеют в своем составе ни одного символа такой цепочки и вывести эти слова на экран.
Здравствуйте уважаемые обитатели форума. Помогите решить задачки: 1)Определить количество слов,...

Как из txt файла вывести на экран 'x' символов после 'y' символов?
как вывести на экран заданное количество симвлолов из txt файла после заданного количества...

Дана строка символов. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран
помогите пожалуйста доделать задачу: Дана строка символов. Подсчитать, сколько различных символов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.