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

Diskusia – Priechod bludiskom - Theseus

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
Ondřej Langr (andysekcze):22.7.2015 22:59

Pouzivej kratsi zapis kupr. cz += 1; ;-)

Odpovedať
22.7.2015 22:59
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
hanpari
Člen
Avatar
Odpovedá na Ondřej Langr (andysekcze)
hanpari:23.7.2015 9:45

Mínus za to, že komenuješ takovou ptákovinu. To ti opravdu stálo za to? Přijde mi, že jsi musel připomínkovat za každou cenu. A navíc, používáš PHP a nestydíš se za to :)

 
Odpovedať
23.7.2015 9:45
Avatar
Odpovedá na hanpari
Ondřej Langr (andysekcze):23.7.2015 10:05

1.A webový aplikace mám dělat v čem ? C#/Java ? Proč bych to dělal? A v čem pak děláš ty? 2. Já to psal jen jako možnost jak to zkrátit ;-)

Odpovedať
23.7.2015 10:05
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Ondřej Langr (andysekcze):23.7.2015 10:11

Ale nehádejme se u určitě skvělé hry ;-)

Odpovedať
23.7.2015 10:11
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Ondřej Langr (andysekcze)
David Hartinger:23.7.2015 10:16

Když už, tak cz++. Ale jak již bylo řečeno, nechápu význam komentáře k algoritmu, kde řešíš 2 znaky v kódu navíc s identickou funkčností 8-|

Edit: Vidím, že sis to navíc zřejmě ani nepřečetl, když píšeš, že to je hra...

Editované 23.7.2015 10:17
Odpovedať
23.7.2015 10:16
New kid back on the block with a R.I.P
Avatar
mnauik
Člen
Avatar
mnauik:23.7.2015 13:04

Proč ne, programování je zábavné.... jako hra :D (A ne, nejsem na jeho straně :-P )

Odpovedať
23.7.2015 13:04
minusuj mě, ale zdůvodni to ;)
Avatar
Petr Laštovička:2.8.2015 12:01

Proč autor článku tak jednoduchý algoritmus naprogramoval tak složitě ?
Zkusil jsem si to také a můj program má jen 78 řádek:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;

class Bludiste
{
    const int Width = 5, Height = 5;
    private static string[,] bludiste = new string[Width, Height];
    private static Stack<Point> nit = new Stack<Point>();
    private static Point vstupDoBludiste;
    private static Point[] Offset = new[] { new Point(0, -1), new Point(1, 0), new Point(0, 1), new Point(-1, 0) };

    static void nactiBludiste()
    {
        using (StreamReader sr = new StreamReader(@"..\..\Data\blud.txt"))
        {
            for (int j = 0; j < Height; j++)
            {
                string[] radek = sr.ReadLine().Split(' ');
                for (int i = 0; i < Width; i++)
                {
                    bludiste[i, j] = radek[i];
                    if (radek[i][0] == 'v') vstupDoBludiste = new Point(i, j);
                }
            }
        }
    }

    static void vypisBludiste()
    {
        for (int j = 0; j < Height; j++)
        {
            for (int i = 0; i < Width; i++)
                Console.Write(bludiste[i, j] + ' ');
            Console.WriteLine();
        }
        Console.WriteLine();
    }

    static void hledejCestu()
    {
        nit.Push(vstupDoBludiste);
        for (; ; )
        {
            Point aktualniKomnata = nit.Peek();
            for (int k = 0; k < 4; k++)
            {
                int i = aktualniKomnata.X, j = aktualniKomnata.Y;
                if (bludiste[i, j][k + 1] != '0')
                {
                    i += Offset[k].X; j += Offset[k].Y;
                    char znak = bludiste[i, j][0];
                    if (znak != '*' && znak != 'v')
                    {
                        nit.Push(new Point(i, j));
                        if (znak == 'm') return;
                        bludiste[i, j] = '*' + bludiste[i, j].Substring(1);
                        break;
                    }
                }
                if (k == 3) nit.Pop();
            }
        }
    }

    public static void Main()
    {
        nactiBludiste();
        vypisBludiste();
        hledejCestu();
        Console.Write("Cesta k Minotaurovi: ");
        foreach (Point p in nit.Reverse()) Console.Write("{0}, ", p);
        Console.WriteLine("\r\n\r\nMístnosti označené hvězdičkou byly navštíveny\r\n");
        vypisBludiste();
    }
}
 
Odpovedať
2.8.2015 12:01
Avatar
Edward Ploška:20.12.2022 8:46

slabší

Odpovedať
20.12.2022 8:46
Ve starověkých dlážkách staré silnice je nemoc a na její svíjející se cestě budete čelit zlovolnosti, násilí a možná ...
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ý!