Vánoční nadílka Vánoční nadílka
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

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. července 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. července 11:10
Odpovědět 31. července 11:09
Programátor je stroj k převodu kávy na kód.
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Luboš Satik Běhounek:31. července 12:26

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

Nahoru Odpovědět 31. července 12:26
https://www.facebook.com/peasantsandcastles/
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Luboš Satik Běhounek
krepsy3:31. července 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. července 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. července 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. července 15:15
Avatar
krepsy3
Redaktor
Avatar
Odpovídá na Filip Němeček
krepsy3:31. července 16:10

Zkusím zkompilovat a ozvu se :)

Nahoru Odpovědět 31. července 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.