Пример #1
0
        public async Task <IActionResult> PauzirajIgru()
        {
            string   igraId     = User.FindFirstValue("sub");
            string   email      = User.FindFirstValue("email");
            Boja     bojaIgraca = Enum.Parse <Boja>(User.FindFirstValue("Boja"));
            Korisnik korisnik   = await KorisnikProvider.GetKorisnik(db, email);

            Igra game = await GameProvider.NadjiIgruId(db, igraId);

            if (game.kreatorIgre.ID != korisnik.ID)
            {
                return(BadRequest());
            }
            Potez poslednji = await GameProvider.getPoslednjiPotezIgre(db, game);

            if (game.status != statusIgre.uToku || !game.privateGame || (game.status == statusIgre.uToku && game.naPotezu == poslednji.potezOdigrao))
            {
                return(Forbid());
            }
            game.status = statusIgre.pauzirana;
            await GameProvider.AzurirajIgru(db, game);

            await GameHubHelper.pauzirajIgruNotifyAsync(_gameHub, game.groupNameGUID);

            return(Ok());
        }
Пример #2
0
        public async Task <IActionResult> ContinueGame()
        {
            string   igraId     = User.FindFirstValue("sub");
            string   email      = User.FindFirstValue("email");
            Boja     bojaIgraca = Enum.Parse <Boja>(User.FindFirstValue("Boja"));
            Korisnik korisnik   = await KorisnikProvider.GetKorisnik(db, email);

            Igra game = await GameProvider.NadjiIgruId(db, igraId);

            if (game.kreatorIgre.ID != korisnik.ID)
            {
                return(BadRequest());
            }

            if (game.status != statusIgre.cekanjeIgracaPause)
            {
                return(Forbid());
            }
            game.status = statusIgre.uToku;
            await GameProvider.AzurirajIgru(db, game);

            await GameHubHelper.nastaviIgru(_gameHub, game.groupNameGUID);

            return(Ok());
        }
Пример #3
0
        public static async Task <Igra> NadjiJavnuIgru(DontGetSpicyContext db, Boja boja, IConfiguration config)
        {
            Igra igraRet;

            SqlConnection conn           = new SqlConnection(config.GetConnectionString("DontGetSpicyCS"));
            string        availableQuery = $"select top 1 id from Igra where {boja.ToString()}Username is NULL and {boja.ToString()}IgracId=0 and privateGame=0 and Status=2";
            SqlCommand    command        = new SqlCommand(availableQuery, conn);
            SqlDataReader dataReader;

            conn.Open();
            dataReader = await command.ExecuteReaderAsync();

            dataReader.Read();
            if (dataReader.HasRows)
            {
                int id = dataReader.GetInt32(0);
                igraRet = db.Igre.Find(id);
            }
            else
            {
                igraRet = null;
            }
            command.Dispose();
            conn.Close();
            return(igraRet);
        }
Пример #4
0
        private void btnKaro_Click(object sender, EventArgs e)
        {
            Boja = Boja.Karo;
            Button btn = sender as Button;

            btn.FlatAppearance.BorderColor = System.Drawing.Color.Red;
        }
Пример #5
0
        public static async Task <bool> slobodnaBoja(IConfiguration config, Boja boja, Igra igra)
        {
            SqlConnection conn           = new SqlConnection(config.GetConnectionString("DontGetSpicyCS"));
            string        availableQuery = $"select ISNULL(Igra.{boja.ToString()}Username,-1),ISNULL(Igra.{boja.ToString()}IgracId,-1)  from Igra where Igra.ID={igra.ID}";
            SqlCommand    command        = new SqlCommand(availableQuery, conn);
            SqlDataReader dataReader;

            conn.Open();
            dataReader = await command.ExecuteReaderAsync();

            dataReader.Read();
            string bool1 = dataReader.GetString(0); //-1
            int    bool2 = dataReader.GetInt32(1);  //0

            command.Dispose();
            conn.Close();

            if (bool1.CompareTo("-1") == 0 && bool2 == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #6
0
 public Move(TipPoteza noviTip, Boja novaBoja, Karta zaBacanje)
 {
     Tip      = noviTip;
     NovaBoja = novaBoja;
     Karte    = new List <Karta>();
     Karte.Add(zaBacanje);
 }
Пример #7
0
        public List <Tuple <int, int> > odigrajPotez(Figura figura, int kocka, Boja bojaKorisnika)
        {
            List <Tuple <int, int> > potezi = new List <Tuple <int, int> >();

            if (figura.boja != bojaKorisnika)
            {
                return(null);
            }
            int novaPozicija = this.racunajPomeranje(figura, kocka);

            if (novaPozicija == 0)
            {
                return(null);
            }
            Figura mozdaPomeri = figure.Where(fig => fig.index == novaPozicija && fig.boja != figura.boja).FirstOrDefault();
            Figura tekuca      = figure.Where(fig => fig.index == figura.index && fig.boja == figura.boja).FirstOrDefault();

            if (tekuca == null)
            {
                return(null);
            }
            potezi.Add(new Tuple <int, int>(tekuca.index, novaPozicija));
            tekuca.index = novaPozicija;

            if (mozdaPomeri == null)
            {
                return(potezi);
            }
            potezi.Add(new Tuple <int, int>(mozdaPomeri.index, vratiUHome(mozdaPomeri)));
            mozdaPomeri.index = vratiUHome(mozdaPomeri);
            return(potezi);
        }
Пример #8
0
        public async Task <IActionResult> RejoinGame(string id)
        {
            string   email    = User.FindFirstValue("email");
            Korisnik korisnik = await KorisnikProvider.GetKorisnik(db, email);

            Igra game = await GameProvider.NadjiIgru(db, id);

            if (game.status != statusIgre.cekanjeIgracaPause && (game.crveniIgracId != korisnik.ID && game.zeleniIgracId != korisnik.ID && game.zutiIgracId != korisnik.ID && game.plaviIgracId != korisnik.ID))
            {
                return(Forbid());
            }
            Boja bojaKorisnika = Boja.crveni;

            foreach (Boja b in Enum.GetValues(typeof(Boja)))
            {
                if ((int)game.GetType().GetProperty(b.ToString() + "IgracId").GetValue(game) == korisnik.ID)
                {
                    bojaKorisnika = b;
                }
            }
            if (korisnik.ID == game.kreatorIgre.ID)
            {
                return(Ok(new { naPotezu = game.naPotezu.ToString(), boja = bojaKorisnika.ToString(), accessCode = game.accessCode, figure = game.figure, token = JWTGenerator.GenerateGameToken(korisnik, game, bojaKorisnika), username = korisnik.username, slika = korisnik.slika, igraciImena = game.vratiIgrace(), igraciSlike = await GameProvider.slikeIgraca(db, game) }));
            }
            else
            {
                return(Ok(new { naPotezu = game.naPotezu.ToString(), boja = bojaKorisnika.ToString(), figure = game.figure, token = JWTGenerator.GenerateGameToken(korisnik, game, bojaKorisnika), username = korisnik.username, slika = korisnik.slika, igraciImena = game.vratiIgrace(), igraciSlike = await GameProvider.slikeIgraca(db, game) }));
            }
        }
Пример #9
0
 public Potez(Igra igra, int vrKocke, Boja odigrao)
 {
     this.potezOdigrao     = odigrao;
     this.igra             = igra;
     this.vremeOdigravanja = DateTime.Now;
     this.vrKocke          = vrKocke;
 }
Пример #10
0
        public void updateTalon(Karta k, Boja b)
        {
            imageFaceCard.Image = bacenekarteSlike[indexKarte(k)];
            znak.Image          = znakSlika[(int)b];

            imageFaceCard.Refresh();
            znak.Refresh();
        }
Пример #11
0
        public IActionResult Obrisi(int Id)
        {
            Boja temp = db.Boja.Where(x => x.BojaId == Id).FirstOrDefault();

            temp.IsDeleted = true;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #12
0
 public void Bacenekarte(List <Karta> karte, Boja boja, int BrojKarataProtivnika)
 {
     if (bot != null)
     {
         bot.Bacenekarte(karte, boja, BrojKarataProtivnika);
     }
     return;
 }
Пример #13
0
 public Move(Karta k, Boja nova)
 {
     Karte = new List <Karta>();
     Karte.Add(k);
     NovaBoja = nova;
     Tip      = TipPoteza.BacaKartu;
     Depth    = 0;
     Value    = 0;
 }
Пример #14
0
 private void NapuniSpil()
 {
     for (int i = 0; i < intKarte.Count; i++)
     {
         Boja boja = (Boja)(intKarte[i] % 4);
         Broj broj = (Broj)(intKarte[i] % 13 + 1);
         spilKarata.Enqueue(new Karta(broj, boja));
     }
 }
Пример #15
0
 /// <summary>
 /// Vэstavba bуje
 /// </summary>
 public void PostavBoju() {
     Spolocnost spol = Hra.DajInstanciu().Spolocnost;
     if(!aPevnina && aZastavane == null && aVyroba == null){
         Boja boj = new Boja(aPoloha);
         if (spol.UpravFinancie(-boj.Cena)) 
         {
             aZastavane = boj;
         }
     }
 }
Пример #16
0
        public async Task <IActionResult> JoinPublicGame(Boja boja)
        {
            Igra game = await GameProvider.NadjiJavnuIgru(db, boja, _config);

            if (game == null)
            {
                return(await this.NovaIgra(boja, false));
            }
            return(await this.PridruziSeIgri(boja, game.accessCode));
        }
Пример #17
0
        public async Task <IActionResult> OdigrajPotez(int figuraIndex)
        {
            string igraId     = User.FindFirstValue("sub");
            Boja   bojaIgraca = Enum.Parse <Boja>(User.FindFirstValue("Boja"));
            Igra   game       = await GameProvider.NadjiIgruFigure(db, igraId);

            if (game == null)
            {
                return(NotFound());
            }

            if (game.status != statusIgre.uToku || game.naPotezu != bojaIgraca || !game.aleaIactaEst)
            {
                return(Forbid());
            }

            Potez poslednjiPotez = await GameProvider.getPoslednjiPotezIgre(db, game);

            if (poslednjiPotez.potezOdigrao != bojaIgraca)
            {
                return(NotFound());
            }
            Figura izabranaFigura = game.figure.Where(Figura => Figura.index == figuraIndex && Figura.boja == bojaIgraca).FirstOrDefault();

            poslednjiPotez.izabranaFigura = izabranaFigura;
            if (izabranaFigura == null)
            {
                return(NotFound());
            }
            List <Tuple <int, int> > potezi = game.odigrajPotez(izabranaFigura, poslednjiPotez.vrKocke, bojaIgraca);

            if (potezi == null)
            {
                return(NotFound());
            }
            game.aleaIactaEst = !game.aleaIactaEst;
            if (poslednjiPotez.vrKocke != 6)
            {
                game.naPotezu = (Igra.redosledPoteza.Find(bojaIgraca).Next ?? Igra.redosledPoteza.First).Value;
            }


            await GameProvider.AzurirajIgru(db, game);

            await GameProvider.AzurirajPotez(db, poslednjiPotez);

            await GameHubHelper.figuraPomerenaNotifyAsync(_gameHub, game.groupNameGUID, potezi, poslednjiPotez.vrKocke != 6);

            if (game.kraj() != null)
            {
                await GameHubHelper.krajIgreNotifyAsync(_gameHub, game.groupNameGUID, game.kraj());
            }

            return(Ok());
        }
Пример #18
0
        public bool slobodnaBoja(Boja boja)
        {
            string username = (string)this.GetType().GetProperty(boja.ToString() + "Username").GetValue(this);
            int    id       = (int)this.GetType().GetProperty(boja.ToString() + "IgracId").GetValue(this);

            if (username == null && id == 0)
            {
                return(true);
            }
            return(false);
        }
Пример #19
0
      public static string GenerateGameToken(Korisnik korisnik, Igra igra, Boja boja)
      {
          Claim[] claims = new Claim[] {
              new Claim(JwtRegisteredClaimNames.Email, korisnik.email),
              new Claim(JwtRegisteredClaimNames.Sub, igra.groupNameGUID),
              new Claim("Boja", boja.ToString())
              //new Claim("kreatorIgre?",(igra.kreatorIgre.ID==korisnik.ID).ToString(), ClaimValueTypes.Boolean/*na klijentu se ocitava kao bool*/)
          };

          return(GenerateToken(claims));
      }
Пример #20
0
 public void manualPlay(int cardNumber, TipPoteza moveType, Boja suit)
 {
     BestMove.Karte.Clear();
     BestMove.Tip      = moveType;
     BestMove.NovaBoja = suit;
     if ((moveType & TipPoteza.BacaKartu) == TipPoteza.BacaKartu)
     {
         BestMove.Karte.Add(hand[cardNumber]);
         hand.RemoveAt(cardNumber);
     }
 }
Пример #21
0
        static void Main()
        {
            Console.WriteLine(Opis1(Boja.Crvena));
            Console.WriteLine(Opis1(Boja.Zelena));
            Console.WriteLine(Opis1(Boja.Plava));
            Console.WriteLine("---");

            Boja b = Boja.Crvena;

            Console.WriteLine(b.Opis2());
            Console.WriteLine(Boja.Zelena.Opis2());
        }
Пример #22
0
        public void SkakacBacaIznimkuZaZauzetoPolje()
        {
            Ploca    ploca        = new Ploca();
            Pozicija novaPozicija = new Pozicija();

            novaPozicija.PostaviHorizontalno(1).PostaviVertikalno(3);
            Boja   boja   = Boja.Bijeli;
            Skakac skakac = new Skakac(boja, 1);

            skakac.Pozicija.PostaviHorizontalno(0).PostaviVertikalno(1);
            bool nelegalno = skakac.LegalanPotez(novaPozicija, ploca);
        }
Пример #23
0
        public bool imaLiSeStaOdigrati(Boja boja, int kocka)
        {
            List <Figura> isteBoje = figure.Where(Figura => Figura.boja == boja).ToList <Figura>();

            foreach (Figura figura in isteBoje)
            {
                if (racunajPomeranje(figura, kocka) != 0)
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #24
0
        public void KonstruktorSaFiguramaOk()
        {
            List <Figura> lista = new List <Figura>();
            Boja          boja  = Boja.Bijeli;
            Figura        lovac = new Lovac(boja, 1);

            lovac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(3).PostaviVertikalno(4));
            lista.Add(lovac);
            Figura skakac = new Skakac(boja, 2);

            skakac.PostaviPoziciju(new Pozicija().PostaviHorizontalno(4).PostaviVertikalno(5));
            lista.Add(skakac);
            Ploca ploca = new Ploca(lista);
        }
Пример #25
0
        public static string SkracenaBoja(Boja boja)
        {
            switch (boja)
            {
            case Boja.Crni:
                return("c");

            case Boja.Bijeli:
                return("b");

            default:
                break;
            }
            return("");
        }
Пример #26
0
        static string Opis1(Boja c)
        {
            switch (c)
            {
            case Boja.Crvena:
                return(String.Format("Crvena = {0}", (int)c));

            case Boja.Zelena:
                return(String.Format("Zelena = {0}", (int)c));

            case Boja.Plava:
                return(String.Format("Plava = {0}", (int)c));

            default:
                return("Nepostojeca boja");
            }
        }
Пример #27
0
        public Move(TipPoteza noviTip, Boja novaBoja)
        {
            Tip   = noviTip;
            Karte = new List <Karta>();
            if (Tip == TipPoteza.PromeniBoju)
            {
                Karta pom = new Karta();
                pom.Broj = "J";

                Karte.Add(pom);
            }
            else
            {
                Karte = null;
            }
            NovaBoja = novaBoja;
        }
Пример #28
0
        public IActionResult Snimi(Boja vm)
        {
            Boja novi;

            if (vm.BojaId == 0)
            {
                novi = new Boja();
                db.Boja.Add(novi);
            }
            else
            {
                novi = db.Boja.Where(x => x.BojaId == vm.BojaId).FirstOrDefault();
            }
            novi.Naziv = vm.Naziv;

            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #29
0
        public static BojaList UcitajBojeProizvoda(int idProizvoda)
        {
            Konekcija     konekcija = new Konekcija();
            SqlCommand    objComm   = new SqlCommand("SELECT boja.idBoje, nazivBoje, url FROM boja INNER JOIN proizvodBoja ON boja.idBoje=proizvodBoja.idBoje WHERE idProizvoda=@idProizvoda");
            SqlDataReader reader    = null;
            BojaList      boje      = new BojaList();

            try
            {
                konekcija.otvoriKonekciju();
                objComm.Connection = konekcija.objConn;
                objComm.Parameters.Add("@idProizvoda", SqlDbType.Int).Value = idProizvoda;
                reader = objComm.ExecuteReader();
                Boja boja;
                while (reader.Read())
                {
                    boja           = new Boja();
                    boja.IdBoje    = reader.GetInt32(0);
                    boja.NazivBoje = reader.GetString(1);
                    boja.Url       = "/images/boja/" + reader.GetString(2) + ".jpg";

                    boje.Add(boja);
                }
            }
            catch (Error e)
            {
                throw new Error(e.Type, e.Message);
            }
            catch (Exception ex)
            {
                throw new Error(ErrorType.Stop, "Greška prilikom učitavanja boje" + " " + ex.Message);
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                konekcija.zatvoriKonekciju();
            }
            return(boje);
        }
Пример #30
0
 public void Bacenekarte(List <Karta> karte, Boja boja, int BrojKarataProtivnika)
 {
     if (karte != null && karte.Count > 0)
     {
         talon = karte.Last();
         remainingCards.remove(karte);
     }
     novaBoja        = boja;
     brojKarataEnemy = BrojKarataProtivnika;
     BestMove        = new Move();
     kupio           = false;
     if (karte != null && karte.Count > 0)
     {
         kupioKaznene = false;
     }
     else
     {
         kupioKaznene = true;
     }
 }
Пример #31
0
 // metoda koja vraća Color boju za zadanu enum (hrv) boju
 public static Color Daj(Boja boja)
 {
     return d[boja];
 }