Klávesnice zdarma Klávesnice zdarma
Pořádné programy s pořádnou klávesnicí zdarma. Více zde
Pouze tento týden sleva až 80 % na C# .NET

Diskuze: Pochopení kódu (syntaxe) - list Flagů?

C# .NET .NET (C# a Visual Basic) Pochopení kódu (syntaxe) - list Flagů? American English version English version

Aktivity (3)
Avatar
krepsy3
Redaktor
Avatar
krepsy3:31.7.2018 11:09

Čau, hledal jsem si algoritmus na rekurzivní generaci bludiště, protože jsem to zkrátka nedokázal vymyslet sám. Našel jsem skvělé řešení od pana Voborníka , ale v tom řešení je kus kódu, kterému nerozumím.

Máme vytvořený následující vlajkový výčet:

[Flags]
public enum Smer
{
    N = 1,  // 0001  Nahoru
    D = 2,  // 0010  Dolů
    P = 4,  // 0100  Pravo
    L = 8,  // 1000  Levo
}

A pak se v metodě pro zpracování políčka vytvoří list všech směrů (kterými je z políčka potenciálně možné odejít), tyto se seřadí náhodně a proiterují se:

// Vytvoření pomocného seznamu všech směrů, kterými lze z tohoto pole odejít, v náhodném pořadí
    var smery = new List<smer abp="2263">()                      // Pomocný seznam všech možných směrů
    {
        Smer.N, Smer.D, Smer.P, Smer.L                // Všechny směry, kterými lze z tohoto pole odejít
    }.OrderBy(x => random.NextDouble());              // Náhodné zamíchání položek v seznamu

    // Zpracování sousedního políčka pro daný směr
    foreach (var smer in smery)                       // Opakování pro všechny směry v zamíchaném pořadí
    {
        //zpracování
    }

A já fakt zaboha nechápu, co znamená to var smery = new List<smer abp="2263">(), konkrétně ta část ve špičatých závorkách (generika T, datový typ proměnných v Listu)

Za prvé je tam smer s malým 's', který se v kódu jinde neobjevuje, a za druhé nechápu, co je nějaké abp="2263", v kódu už se to také jinde neobjevuje. Bohužel se mi nepodařilo zeptat se na to googlu, protože prostě vůbec nevím co to je a nikdy a nikde jinde jsem se s tím nesetkal. Věděl by někdo?

Editováno 31.7.2018 11:10
Odpovědět 31.7.2018 11:09
Programátor je stroj k převodu kávy na kód.
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Luboš Běhounek Satik:31.7.2018 12:26

To jde zkompilovat? Cekal bych, ze je to jen nejaky copypaste preklep.

Nahoru Odpovědět 31.7.2018 12:26
https://www.facebook.com/peasantsandcastles/
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Luboš Běhounek Satik
krepsy3:31.7.2018 14:27

Nekompiloval jsem to, ale takhle to je v tom tutpriálu (link je v původním příspěvku)

Nahoru Odpovědět 31.7.2018 14:27
Programátor je stroj k převodu kávy na kód.
Avatar
Filip Němeček
Redaktor
Avatar
Filip Němeček:31.7.2018 15:15

To je určitě nějaký překlep, ten list je pouze seznam všech 4 směrů, jak je tam napsané v komentáři. Takže to bude vypadat takto:

var smery = new List<Smer>()                      // Pomocný seznam všech možných směrů
    {
        Smer.N, Smer.D, Smer.P, Smer.L                // Všechny směry, kterými lze z tohoto pole odejít
    }.OrderBy(x => random.NextDouble());              // Náhodné zamíchání položek v seznamu
 
Nahoru Odpovědět 31.7.2018 15:15
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Filip Němeček
krepsy3:31.7.2018 16:10

Zkusím zkompilovat a ozvu se :)

Nahoru Odpovědět 31.7.2018 16:10
Programátor je stroj k převodu kávy na kód.
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 5 zpráv z 5.