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); }
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ů. } }
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()); }
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; } }
public async Task <ActionResult <Pozice> > PostPozice(Pozice pozice) { _context.Pozice.Add(pozice); await _context.SaveChangesAsync(); return(CreatedAtAction("GetPozice", new { id = pozice.Id }, pozice)); }
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); }
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(); }
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')); } }
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); }
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); }
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; } }
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); }
// 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); }
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'); }
/// <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); }
// 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)); }
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); }
public Houba(Pozice p, char znak) : base(p, znak, TypEntity.Houba) { // houba nic nedela (mozna by mohla utikat ;-)) }
public Strom(Pozice p, char znak) : base(p, znak, TypEntity.Strom) { // strom nic nedela }
public Vlk(Pozice p, char znak) : base(p, znak, TypEntity.Vlk) { // inicializuj nahodny generator napriklad pozici rnd = new Random(p.i * p.j); }
public Entita(Pozice p, char znak, TypEntity typ) { this.znak = znak; this.pozice = p; this.typ = typ; }
public Plot(Pozice p, char znak) : base(p, znak, TypEntity.Plot) { // plot nic nedela }
/// <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); }
public Houbar(Pozice p, HoubarovoChovani chovani, char znak) : base(p, znak, TypEntity.Houbar) { this.chovani = chovani; }
// tuto virtualni funkci je treba implementovat public abstract Smer pohyb(TypEntity[,] mapa, Pozice p);