IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Had

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
Avatar
David Novák
Tvůrce
Avatar
David Novák:5.6.2016 10:29

Chtělo by na tom ještě zapracovat.. ;)

  1. Máš méně vertikálních políček - rychlost pohybu hada je tedy nekonzistentní
  2. Po 19 políčkách jsem nedostal nové..
  3. Pohyb je špatně řešený - podržením směrové šipky se zablokuje na daný počet kroků
  4. Při podržení šipky např. doprava se ti had smrskne postupně na velikost 1 políčka
Odpovedať
5.6.2016 10:29
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovedá na David Novák
Ondřej Krsička:5.6.2016 13:03

1. To je tím, že šířka políčka je menší jak výška - nastavení fontu v konzoli.

Na zbytek se podívám :)

 
Odpovedať
5.6.2016 13:03
Avatar
David Jančík
Vlastník
Avatar
David Jančík:5.6.2016 14:53

Si pamatuji, že jsem se jednou na střední o volné hodině nudil, tak jsem si naprogramoval Hada a po zbytek volné hodiny jsem ho hrál :D

Odpovedať
5.6.2016 14:53
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Odpovedá na David Novák
Ondřej Krsička:6.6.2016 17:35

Nevíš, čím by mohl být bod 3 a 4? Nejvíc mi vadí bod 3. Řekl bych, že to bude něco s Thread.Sleep(), ale nejsem si jistý.
PS: Pokud nemáš čas, kašli na to... :D

 
Odpovedať
6.6.2016 17:35
Avatar
František Koutenský:8.6.2016 12:33
if (Console.KeyAvailable)
{
    ConsoleKey vstup = Console.ReadKey().Key;
    if (vstup != Smer)
    {
        if (vstup == ConsoleKey.UpArrow ||
            vstup == ConsoleKey.DownArrow ||
            vstup == ConsoleKey.LeftArrow ||
            vstup == ConsoleKey.RightArrow)
        {
            //Zajištění, že had se najednou nevydá doprotisměru ("nekousne se" do článku za hlavou)
            if (!(vstup == ConsoleKey.UpArrow && Smer == ConsoleKey.DownArrow) &&
                !(vstup == ConsoleKey.DownArrow && Smer == ConsoleKey.UpArrow) &&
                !(vstup == ConsoleKey.LeftArrow && Smer == ConsoleKey.RightArrow) &&
                !(vstup == ConsoleKey.RightArrow && Smer == ConsoleKey.LeftArrow))
            {
                Smer = vstup;
            }
        }
    }
    continue;
}

Předtím šlo změnit směr (stisknout klávesu) pouze jednou za celý cyklus while, když jsi naklikal více znaků, nebo podržel nějaký znak, tak to funkce Console.KeyAva­ilable zaznamenala na určitý počet cyklů "dopředu".
Řeší to příkaz continue, který vrací na začátek cyklu while.
Smrsknutí nastává pouze při pohybu doprava a je to dáno tím, že stisknuté znaky se vypisují za kurzor a tím "překreslují" tělo hada.

Také jsem tu asi před týdnem publikoval konzolového hada a mám tam stejný problém, takže to též musím ještě přepsat. :D

 
Odpovedať
8.6.2016 12:33
Avatar
Odpovedá na František Koutenský
Ondřej Krsička:8.6.2016 17:00

a to spraví jen to continue? Tak to by mě nenapadlo :D

 
Odpovedať
8.6.2016 17:00
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.

Zatiaľ nikto nevložil komentár - buď prvý!