Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Had

C# .NET Základní konstrukce Zdrojákoviště Had

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Had

Kopie klasické hry had v konzoli v C#.

Nepoužívám tam OOP, přišlo mi to na tak malý projekt příliš komplikované a zbytečné. Naopak jsem se snažil, aby byl zdrojový kód co nejkratší (nemyslím takové ty hacky jako 200 znaků na jeden řádek...) a zároveň přehledný. Prostě KISS (Keep It Short and Simple) :-)

Pokud budete mít nějaké připomínky, sem s nimi ;)

Ovládání: Šipky, Escape, Enter


Galerie

Hra byla vytvořena v roce 2016.

 

Stáhnout

Staženo 158x (43.49 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

 

Hru pro vás napsal Ondřej Krsička
Avatar
Jak se ti líbí článek?
1 hlasů
Programuju v novém JS, C# a Pythonu. Účastním se také KSP a KSI. Jinak dělám Judo.
Aktivity (2)

 

 

Komentáře

Avatar
David Novák
Tým ITnetwork
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
Odpovědět  +1 5.6.2016 10:29
Chyba je mezi klávesnicí a židlí.
Avatar
Ondřej Krsička
Redaktor
Avatar
Odpovídá 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 :)

 
Odpovědět 5.6.2016 13:03
Avatar
David Jančík [sczdavos]
Tým ITnetwork
Avatar
David Jančík [sczdavos]: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

Odpovědět  ±0 5.6.2016 14:53
Čím více času dostaneš, tím méně ho máš.
Avatar
Ondřej Krsička
Redaktor
Avatar
Odpovídá 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

 
Odpovědět 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

 
Odpovědět 8.6.2016 12:33
Avatar
Ondřej Krsička
Redaktor
Avatar
Odpovídá 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

 
Odpovědět  +1 8.6.2016 17:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.