public static int Update(Pozice pozice, MyDatabase pDb = null)
        {
            MyDatabase db;

            if (pDb == null)
            {
                db = new MyDatabase();
                db.Connect();
            }
            else
            {
                db = (MyDatabase)pDb;
            }

            SqlCommand command = db.CreateCommand(SQL_UPDATE);

            PrepareCommand(command, pozice);
            int ret = db.ExecuteNonQuery(command);

            if (pDb == null)
            {
                db.Close();
            }

            return(ret);
        }
Example #2
0
        private void RozdejKarty()
        {
            ArrayList volnePozice = new ArrayList();

            for (int y = 0; y < Rozmer; y++)
            {
                for (int x = 0; x < Rozmer; x++)
                {
                    Pozice pozice = new Pozice(x, y);
                    //když vytvářím pozici, tak se spustí konstruktor, ve kterém se jí přiřadí tato čísla - x a y dle loopu
                    volnePozice.Add(pozice);
                    PoleStavu[x, y] = StavKarty.Skryta;
                }
            }
            while (volnePozice.Count >= 2)
            {
                Random generatorCisel = new Random();
                int    cislo          = generatorCisel.Next(volnePozice.Count);
                Pozice prvniKarta     = (Pozice)volnePozice[cislo];
                volnePozice.Remove(prvniKarta);
                //dokud zbývají nepřiřazené dvojice, tak se vygeneruje náhodné číslo, které náhodně vybere jednu kartu. Stejně tak s druhou kartou.
                cislo = generatorCisel.Next(volnePozice.Count);
                Pozice druhaKarta = (Pozice)volnePozice[cislo];
                volnePozice.Remove(druhaKarta);

                HerniPole[prvniKarta.X, prvniKarta.Y] = LicKarty;
                HerniPole[druhaKarta.X, druhaKarta.Y] = LicKarty;
                //
                LicKarty++;
                //toto změní "A" na "B" atd. Prostě se vymění znak za jinou dvojici znaků.
            }
        }
Example #3
0
        public async Task <IActionResult> PutPozice(long id, Pozice pozice)
        {
            if (id != pozice.Id)
            {
                return(BadRequest());
            }

            _context.Entry(pozice).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PoziceExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #4
0
    public override void krok(Svet svet)
    {
        TypEntity[,] mapa = mapaViditelnosti(svet);
        Smer chteny_smer = Smer.Stuj;

        try {
            chteny_smer = chovani.pohyb(mapa, pozice);
        } catch (Exception e) {
            Console.WriteLine($"Hrac {znak} provedl neplatnou operaci: {e.ToString()}");
            Thread.Sleep(1500);
        }
        Pozice nova_pozice = pozice.prictiSmer(chteny_smer);

        // zkontroluj, ze timto smerem muze houbar jit
        if (svet.entitaNaPozici(nova_pozice) == null)
        {
            pozice = nova_pozice;
        }
        // seber houbu
        else if (svet.entitaNaPozici(nova_pozice).typ == TypEntity.Houba)
        {
            Console.WriteLine($"Vyborne, hrac {znak} sebral houbu!");
            Thread.Sleep(1500);
            svet.entity.Remove(svet.entitaNaPozici(nova_pozice));
            pozice = nova_pozice;
            ++pocet_hub;
        }
    }
Example #5
0
        public async Task <ActionResult <Pozice> > PostPozice(Pozice pozice)
        {
            _context.Pozice.Add(pozice);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPozice", new { id = pozice.Id }, pozice));
        }
Example #6
0
        public Pozice select(string nazev, Database pDb = null)
        {
            Database db;

            if (pDb == null)
            {
                db = new Database();
                db.Connect();
            }
            else
            {
                db = (Database)pDb;
            }
            SqlCommand command = db.CreateCommand(SQL_SELECT_Nazev);

            command.Parameters.AddWithValue("@nazev", nazev);
            SqlDataReader reader = db.Select(command);

            Collection <Pozice> pozices = Read(reader);
            Pozice pozice = null;

            if (pozices.Count == 1)
            {
                pozice = pozices[0];
            }
            reader.Close();
            if (pDb == null)
            {
                db.Close();
            }
            return(pozice);
        }
Example #7
0
 public void OtocPrvniKartu(int x, int y)
 {
     //Spustí když správně zadáme souřadnice pro otočení první karty.
     OtocenaKarta    = new Pozice(x, y);
     PoleStavu[x, y] = StavKarty.Otocena;
     PocitadloTahu++;
     VykresliPlochu();
 }
Example #8
0
    void obnovHouby()
    {
        int pocet_nyni = entity.Where(e => e.typ == TypEntity.Houba).Count();

        for (int i = pocet_nyni; i < pocet_hub; ++i)
        {
            Pozice pozice = nahodnaVolnaPozice();
            entity.Add(new Houba(pozice, 'O'));
        }
    }
Example #9
0
 public Entita entitaNaPozici(Pozice p)
 {
     foreach (Entita e in entity)
     {
         if (e.pozice.i == p.i && e.pozice.j == p.j)
         {
             return(e);
         }
     }
     return(null);
 }
        private static Collection <Pozice> Read(SqlDataReader reader)
        {
            Collection <Pozice> poziceC = new Collection <Pozice>();

            while (reader.Read())
            {
                int    i      = -1;
                Pozice pozice = new Pozice();
                pozice.ID_pozice = reader.GetInt32(++i);
                pozice.Nazev     = reader.GetString(++i);

                poziceC.Add(pozice);
            }
            return(poziceC);
        }
Example #11
0
        private static Collection <Pozice> Read(SqlDataReader reader, bool withItemsCount = false)
        {
            Collection <Pozice> pozices = new Collection <Pozice>();

            while (reader.Read())
            {
                Pozice pozice = new Pozice();
                int    i      = -1;
                pozice.id_pozice = reader.GetInt32(++i);
                pozice.nazev     = reader.GetString(++i);

                pozices.Add(pozice);
            }
            return(pozices);
        }
Example #12
0
    public override void krok(Svet svet)
    {
        // vyber nahodnou pristi pozici
        Smer   s           = (Smer)rnd.Next(6);
        Pozice nova_pozice = pozice.prictiSmer(s);

        if (svet.entitaNaPozici(nova_pozice) == null)
        {
            pozice = nova_pozice;
        }
        // sezer cloveka
        else if (svet.entitaNaPozici(nova_pozice).typ == TypEntity.Houbar)
        {
            Entita hrac = svet.entitaNaPozici(nova_pozice);
            Console.WriteLine($"Ale ne! Vlk si dal hrace {hrac.znak} ke svacine!");
            Thread.Sleep(1500);
            svet.entity.Remove(hrac);
            pozice = nova_pozice;
        }
    }
Example #13
0
    public Svet(int M, int N, List <HoubarovoChovani> hraci, int vlci, int houby, int stromy)
    {
        this.M         = M;
        this.N         = N;
        this.pocet_hub = houby;

        // vytvor svisly plot
        for (int i = 1; i < M - 1; ++i)
        {
            entity.Add(new Plot(new Pozice(i, 0), '|'));
            entity.Add(new Plot(new Pozice(i, N - 1), '|'));
        }
        // vytvor horizontalni plot
        for (int i = 1; i < N - 1; ++i)
        {
            entity.Add(new Plot(new Pozice(0, i), '-'));
            entity.Add(new Plot(new Pozice(M - 1, i), '-'));
        }
        // vytvor stromy
        for (int i = 1; i < stromy; ++i)
        {
            Pozice pozice = nahodnaVolnaPozice();
            entity.Add(new Strom(pozice, 'T'));
        }
        // vytvor vlky
        for (int i = 0; i < vlci; ++i)
        {
            Pozice pozice = nahodnaVolnaPozice();
            Vlk    vlk    = new Vlk(pozice, 'V');
            entity.Add(vlk);
        }
        // vytvor houbare
        for (int i = 1; i <= hraci.Count; ++i)
        {
            Pozice pozice = nahodnaVolnaPozice();
            Houbar houbar = new Houbar(pozice, hraci[i - 1], (char)(i + '0'));
            entity.Add(houbar);
        }
        // vytvor houby
        obnovHouby();
    }
        public static Pozice Select(int id, MyDatabase pDb = null)
        {
            MyDatabase db;

            if (pDb == null)
            {
                db = new MyDatabase();
                db.Connect();
            }
            else
            {
                db = (MyDatabase)pDb;
            }

            SqlCommand command = db.CreateCommand(SQL_SELECT_ID);

            command.Parameters.AddWithValue("@ID_pozice", id);
            SqlDataReader reader = db.Select(command);

            Collection <Pozice> poziceC = Read(reader);
            Pozice pozice = null;

            if (poziceC.Count == 1)
            {
                pozice = poziceC[0];
            }
            reader.Close();

            if (pDb == null)
            {
                db.Close();
            }

            if (pozice == null)
            {
                Console.WriteLine("Pozice neexistuje");
            }

            return(pozice);
        }
Example #15
0
    // zde doplnte inteligenci vaseho houbare
    public override Smer pohyb(TypEntity[,] mapa, Pozice pozice)
    {
        // prvni argument funkce je 2D pole enumeratoru TypEntity
        // mozne hodnoty tohoto enumeratoru jsou
        // TypEntity.Houba, TypEntity.Houbar, TypEntity.Plot, TypEntity.Prazdno, TypEntity.Strom
        // viz soubor Entita.cs

        // druhy argument funkce je struktura Pozice
        // tato struktura ma clenske promenne pozice.i a pozice.j
        // take se k ni da pricist smer pomoci pozice.prictiSmer.
        // viz soubor Pozice.cs

        // pro vytisknuti toho, co houbar vidi pouzijte funkci ukazMapu
        // prosim nepouzivejte ji v odevzdavanem reseni
        // ukazMapu(mapa, pozice);

        // mate k dispozici nahodny generator pod nazvem rnd
        Smer s = (Smer)rnd.Next(6);

        // vratit musite enumerator s nazvem Smer. Mozne hodnoty jsou
        // Smer.Nahoru, Smer.Dolu, Smer.Doleva, Smer.Doprava, Smer.Stuj;
        return(s);
    }
Example #16
0
    public static void ukazMapu(TypEntity[,] mapa, Pozice p)
    {
        for (int i = 0; i < mapa.GetLength(0); ++i)
        {
            for (int j = 0; j < mapa.GetLength(1); ++j)
            {
                switch (mapa[i, j])
                {
                case TypEntity.Houba:
                    Console.Write('O');
                    break;

                case TypEntity.Houbar:
                    Console.Write('H');
                    break;

                case TypEntity.Vlk:
                    Console.Write('V');
                    break;

                case TypEntity.Strom:
                    Console.Write('T');
                    break;

                case TypEntity.Plot:
                    Console.Write('P');
                    break;

                default:
                    Console.Write(' ');
                    break;
                }
            }
            Console.Write('\n');
        }
        Console.Write('\n');
    }
Example #17
0
        /// <summary>
        /// Insert the record.
        /// </summary>
        public static int insert(Pozice pozice, Database pDb = null)
        {
            Database db;

            if (pDb == null)
            {
                db = new Database();
                db.Connect();
            }
            else
            {
                db = (Database)pDb;
            }
            SqlCommand command = db.CreateCommand(SQL_INSERT);

            PrepareCommand(command, pozice);
            int ret = db.ExecuteNonQuery(command);

            if (pDb == null)
            {
                db.Close();
            }
            return(ret);
        }
Example #18
0
    // zde doplnte inteligenci vaseho houbare
    public override Smer pohyb(TypEntity[,] mapa, Pozice pozice)
    {
        // s urcitou pravdepodobnosti se pohni nahodne
        if (rnd.Next(10) < 3)
        {
            return((Smer)rnd.Next(6));
        }

        // jinak hladove
        for (int i = 0; i <= 3; ++i)
        {
            // je dole houba?
            if (pozice.i + i < 32 && mapa[pozice.i + i, pozice.j] == TypEntity.Houba)
            {
                return(Smer.Dolu);
            }
            // je nahore houba?
            if (pozice.i - i >= 0 && mapa[pozice.i - i, pozice.j] == TypEntity.Houba)
            {
                return(Smer.Nahoru);
            }
            // je vpravo houba?
            if (pozice.j + i < 32 && mapa[pozice.i, pozice.j + i] == TypEntity.Houba)
            {
                return(Smer.Doprava);
            }
            // je vlevo houba?
            if (pozice.j - i >= 0 && mapa[pozice.i, pozice.j - i] == TypEntity.Houba)
            {
                return(Smer.Doleva);
            }
        }

        // kdyz jsem nevidel houbu, zase nahodne
        return((Smer)rnd.Next(6));
    }
Example #19
0
    public Pozice prictiSmer(Smer s)
    {
        Pozice nova = this;

        switch (s)
        {
        case Smer.Doleva:
            --nova.j;
            break;

        case Smer.Doprava:
            ++nova.j;
            break;

        case Smer.Nahoru:
            --nova.i;
            break;

        case Smer.Dolu:
            ++nova.i;
            break;
        }
        return(nova);
    }
Example #20
0
 public Houba(Pozice p, char znak) : base(p, znak, TypEntity.Houba)
 {
     // houba nic nedela (mozna by mohla utikat ;-))
 }
Example #21
0
 public Strom(Pozice p, char znak) : base(p, znak, TypEntity.Strom)
 {
     // strom nic nedela
 }
Example #22
0
 public Vlk(Pozice p, char znak) : base(p, znak, TypEntity.Vlk)
 {
     // inicializuj nahodny generator napriklad pozici
     rnd = new Random(p.i * p.j);
 }
Example #23
0
 public Entita(Pozice p, char znak, TypEntity typ)
 {
     this.znak   = znak;
     this.pozice = p;
     this.typ    = typ;
 }
Example #24
0
 public Plot(Pozice p, char znak) : base(p, znak, TypEntity.Plot)
 {
     // plot nic nedela
 }
Example #25
0
 /// <summary>
 /// Prepare a command.
 /// </summary>
 private static void PrepareCommand(SqlCommand command, Pozice pozice)
 {
     command.Parameters.AddWithValue("@id_pozice", pozice.id_pozice);
     command.Parameters.AddWithValue("@nazev", pozice.nazev);
 }
Example #26
0
 public Houbar(Pozice p, HoubarovoChovani chovani, char znak)
     : base(p, znak, TypEntity.Houbar)
 {
     this.chovani = chovani;
 }
Example #27
0
 // tuto virtualni funkci je treba implementovat
 public abstract Smer pohyb(TypEntity[,] mapa, Pozice p);