Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Matrix

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Eldest
Tvůrce
Avatar
Odpovedá na Kit
Eldest:27.10.2012 14:04

Ok

Avatar
matesax
Tvůrce
Avatar
Odpovedá na Eldest
matesax:27.10.2012 14:14

Pravda - out se na toto nehodí:

using System;

namespace Matrix
{
    class Program
    {
        private static Random random = new Random();
        private static bool time = false;
        private static int width, height;
        private static int[] a, b;

        static void Main(string[] args)
        {
            Console.Title = "Matrix";
            Console.CursorVisible = false;
            Console.ForegroundColor = ConsoleColor.DarkGreen;
            Console.WindowLeft = Console.WindowTop = 0;
            Console.WindowHeight = Console.BufferHeight = Console.LargestWindowHeight;
            Console.WindowWidth = Console.BufferWidth = Console.LargestWindowWidth;

            Initialize();

            while (true)
            {
                MatrixSteep(width, height, a, b);

                System.Threading.Thread.Sleep(10);

                if (Console.KeyAvailable && Console.ReadKey().Key == ConsoleKey.F5)
                    Initialize();
            }
        }

        private static void Initialize()
        {
            int height1, height2;

            height = Console.WindowHeight;

            height1 = height / 2;

            height2 = height1 / 2;

            width = Console.WindowWidth - 1;

            a = new int[width];

            b = new int[width];

            Console.Clear();

            for (int x = 0; x < width; x++)
            {
                a[x] = random.Next(height);

                b[x] = random.Next(height2 * (x % 11 != 10 ? 2 : 1), height1 * (x % 11 != 10 ? 2 : 1));
            }
        }

        private static void MatrixSteep(int width, int height, int[] a, int[] b)
        {
            time = !time;

            for (int x = 0; x < width; x++)
            {
                if (x % 11 == 10)
                {
                    if (!time)
                        continue;

                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.DarkGreen;

                    Console.SetCursorPosition(x, InBoxY(a[x] - 2 - (b[x] / 40 * 2), height));

                    Console.Write(RandomChar());

                    Console.ForegroundColor = ConsoleColor.Green;
                }

                Console.SetCursorPosition(x, a[x]);

                Console.Write(RandomChar());

                a[x] = InBoxY(a[x] + 1, height);

                Console.SetCursorPosition(x, InBoxY(a[x] - b[x], height));

                Console.Write(' ');
            }
        }

        private static int InBoxY(int n, int height)
        {
            n = n % height;

            return n < 0 ? n + height : n;
        }

        private static char RandomChar()
        {
            switch (random.Next(5))
            {

                case 0:

                    return (char)('0' + random.Next(10));

                case 2:

                    return (char)('a' + random.Next(27));

                case 4:

                    return (char)('A' + random.Next(27));

                default:

                    int i = random.Next(32, 255);

                    if (i == 183)
                        i = 200;

                    return (char)i;
            }

        }
    }
}
Avatar
Eldest
Tvůrce
Avatar
Eldest:27.10.2012 14:18

Máte pravdu :) S vámi profesionálama se dá těžko rovnat :D

Avatar
Fugiczek
Tvůrce
Avatar
Fugiczek:27.10.2012 14:33

Moc se mi to líbí, je to pěkně zpracovaný. Ale když zmenším velikost okna aby to nebylo tak velký tak se to celý rozbije :-D obraz si lítá jak chce a je to nekoukatelný.

Avatar
Eldest
Tvůrce
Avatar
Odpovedá na Fugiczek
Eldest:27.10.2012 14:41

No, asi je to proto, že je tam nastavené, aby to okno bylo, co největší a ten program s tím prostě počítá a podle toho se řídí. Šlo by to každopádně přenastavit.

Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na Eldest
Fugiczek:27.10.2012 14:45

Bylo by dobré tu velikost okna fixnout aby s ní nešlo pohybovat, nebo při každé změně rozměru přepočítávat to co je důležité na to zobrazení. Myslím že fixnout velikost je jednoduší. Ale toto jsou maličkosti. Máš to pěkný ;-)

Avatar
Eldest
Tvůrce
Avatar
Eldest:27.10.2012 14:51

Ok, pokusím se to opravit + i to co psali kolegové. :)

Avatar
Eldest
Tvůrce
Avatar
Odpovedá na Fugiczek
Eldest:27.10.2012 15:03

Problém je v tom, že u console nevím jak se nastavuje, aby nešlo hýbat s velikostí okna.

Avatar
Maxfx
Tvůrce
Avatar
Maxfx:27.10.2012 15:23

to znam z netu

Odpovedať
Být ovládán znamená být sledován, pod dohledem, špehován, veden, uzákoněn, reglementován, ohrazen, indoktrinován, pře...
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Eldest
David Hartinger:27.10.2012 19:27

No je vidět, že Matrix tu evidentně uspěl :) Mezerami jsem myslel jak to funguje, že se ti tam taky hezky tvoří ta prázdná místa, nebo to dělá samo? Nepopsal bys tu ten algoritmus slovy? Abych to nemusel vyčítat ze zdrojáku? Možná by to bylo super i napsat do toho článku, asi nejsem jediný, koho zajímá, jak ten rain funguje.

Odpovedať
New kid back on the block with a R.I.P
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 26.