IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
krepsy3
Tvůrce
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: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
Tvůrce
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
Tvůrce
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
Tvůrce
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.