Esempio n. 1
0
        public async Task <IActionResult> FreeCard([FromBody] Items.Player player)
        {
            if (player != null)
            {
                // Autorizacia hraca pomocou generovaneho tokenu
                var playerDb = await context.Players.Where(p => p.Nickname == player.Nickname && p.Token == player.Token)
                               .Include(p => p.Cards)
                               .ToArrayAsync();

                // Ak existuje
                if (playerDb[0] != null)
                {
                    foreach (var card in playerDb[0].Cards)
                    {
                        card.PlayerId = null;
                    }

                    // Prida zaznam do Db
                    await context.SaveChangesAsync();

                    // Bez obsahu v odpovedi
                    return(NoContent());
                }

                return(NotFound());
            }

            // Zla poziadavka
            return(BadRequest());
        }
Esempio n. 2
0
        private async Task CroupierGame(Items.Player croupier)
        {
            // Hra krupiera (asynchronna uloha)
            await Task.Run(async() =>
            {
                // Krupier si taha karty do suctu 17 a viac
                do
                {
                    // Tahaj karty dokym nemas aspon 17
                    var Csum = croupier.CardSum;
                    if (Csum >= 17)
                    {
                        // Krupier ukoncil hru idu sa vyplacat vyhry
                        croupier.Action = Items.Player.EActions.STAND;

                        // Prida zaznam do Db
                        await context.SaveChangesAsync();

                        // Koniec
                        break;
                    }

                    // Prirad nahodnu kartu
                    await RandomCard(croupier);

                    // Krupier ukoncil hru idu sa vyplacat vyhry
                    croupier.Action = Items.Player.EActions.HIT;

                    // Uloz do Db
                    await context.SaveChangesAsync();
                } while (true);
            });
        }
Esempio n. 3
0
        public async Task <IActionResult> UpdatePlayer([FromBody] Items.Player player)
        {
            if (player != null)
            {
                var playerDb = await context.Players.Where(p => p.Nickname == player.Nickname)
                               .Include(p => p.Cards)
                               .ToArrayAsync();

                // Autorizacia hraca pomocou generovaneho tokenu
                if (playerDb[0] != null && playerDb[0].Token == player.Token)
                {
                    // Aktualizuje nasledovne polozky
                    playerDb[0].Action = player.Action;
                    playerDb[0].Bet    = player.Bet;
                    playerDb[0].GameId = player.GameId;
                    playerDb[0].State  = player.State;
                    playerDb[0].Wallet = player.Wallet;

                    // Prida zaznam do Db
                    await context.SaveChangesAsync();

                    // Bez obsahu v odpovedi
                    return(NoContent());
                }

                return(NotFound());
            }


            // Zla poziadavka
            return(BadRequest());
        }
Esempio n. 4
0
        public async Task <IActionResult> GetPlayer([FromBody] Items.Player player)
        {
            if (player != null)
            {
                var playerDb = await context.Players.Where(p => p.Nickname == player.Nickname)
                               .Include(p => p.Cards)
                               .ToArrayAsync();

                // Autorizacia hraca pomocou generovaneho tokenu
                if (playerDb[0] != null && playerDb[0].Token == player.Token)
                {
                    return(Ok(playerDb[0]));
                }

                return(NotFound());
            }

            return(BadRequest());
        }
Esempio n. 5
0
        // Vyber nahodnu kartu
        private async Task RandomCard(Items.Player player)
        {
            // Nahodny vyber volnej karty z balicku
            var randGen      = new Random((int)DateTime.Now.Ticks);
            var CardsNotUsed = await context.Cards.Where(c => (c.PlayerId == null)).ToArrayAsync();

            if (CardsNotUsed.Length > 0)
            {
                var cardId = randGen.Next(0, CardsNotUsed.Length);

                // Prirad karte ID hraca
                CardsNotUsed[cardId].PlayerId = player.Nickname;

                Console.WriteLine($"Zostalo {CardsNotUsed.Length} volnych kariet");
            }
            else
            {
                Console.WriteLine("No cards in deck.");
            }

            Console.WriteLine($"Player cards = {player.CardSum}");
        }
Esempio n. 6
0
        public async Task <IActionResult> CreatePlayer([FromBody] Items.Player player)
        {
            if (!await context.Players.ContainsAsync(player))
            {
                // Novy hrac nehra este ziadnu hru
                player.GameId = "Nothing";

                // Novy hraci dostanu 10.000$
                if (player.Wallet <= 0)
                {
                    player.Wallet = 10000;
                }

                // Prida zaznam do Db
                context.Players.Add(player);
                await context.SaveChangesAsync();

                // Vytvoreny uspesne, vrati profil
                return(CreatedAtAction(nameof(GetPlayer), player));
            }

            // Zla poziadavka
            return(BadRequest());
        }
Esempio n. 7
0
        // Vypis stolu na konzolu
        private void Print(List <Items.Player> players, Items.Player croupier)
        {
            const int MAX_WIDTH = 25;
            int       height;
            string    sumS;

            Console.Clear();

            Console.CursorLeft = ((players.Count * MAX_WIDTH) >> 1) + ((MAX_WIDTH >> 1) - (croupier.Nickname.Length >> 1));
            Console.WriteLine($"{croupier.Nickname}");

            // Sucet kariet hraca
            sumS = croupier.CardSum.ToString();
            Console.CursorLeft = ((players.Count * MAX_WIDTH) >> 1) + ((MAX_WIDTH >> 1) - (sumS.Length >> 1));
            Console.WriteLine(sumS);

            Console.CursorLeft = ((players.Count * MAX_WIDTH) >> 1) + ((MAX_WIDTH >> 1) - (croupier.Cards.Count() << 1));
            foreach (var c in croupier.Cards)
            {
                c.Print();
                Console.Write(" ");
            }
            Console.Write("\n\n\n\n\n\n\n");


            height = 0;
            for (int i = 0; i < players.Count; i++)
            {
                // Karty hraca
                if (players[i].Cards.Any())
                {
                    foreach (var c in players[i].Cards)
                    {
                        Console.CursorLeft = (i * MAX_WIDTH) + (MAX_WIDTH >> 1) - 1;
                        c.Print();
                        Console.WriteLine();
                        height++;
                    }
                }

                // Vyska stavky hraca
                var betS = $"{players[i].Bet}$";
                Console.CursorLeft = (i * MAX_WIDTH) + ((MAX_WIDTH >> 1) - (betS.Length >> 1));
                Console.WriteLine(betS);
                height++;

                // Ak ide o mojho hraca vypis stav penazenky
                if (players[i].Nickname == Program.myPlayer.Nickname)
                {
                    var walletS = $"{Program.myPlayer.Wallet}$";
                    Console.CursorLeft = (i * MAX_WIDTH) + ((MAX_WIDTH >> 1) - (walletS.Length >> 1));
                    Console.WriteLine(walletS);
                    height++;
                }

                // Meno hraca
                Console.CursorLeft = (i * MAX_WIDTH) + ((MAX_WIDTH >> 1) - (players[i].Nickname.Length >> 1));
                Console.WriteLine(players[i].Nickname);
                height++;

                // Sucet kariet hraca
                sumS = players[i].CardSum.ToString();
                Console.CursorLeft = (i * MAX_WIDTH) + ((MAX_WIDTH >> 1) - (sumS.Length >> 1));
                Console.WriteLine(sumS);
                height++;

                // Vysledny stav hry
                var stateS = players[i].State.ToString();
                Console.CursorLeft = (i * MAX_WIDTH) + ((MAX_WIDTH >> 1) - (stateS.Length >> 1));
                switch (players[i].State)
                {
                case Items.Player.EState.WIN:
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.Write(stateS);
                    Console.ResetColor();
                    Console.WriteLine();
                    break;
                }

                case Items.Player.EState.LOSE:
                {
                    Program.ShowError(stateS);
                    Console.WriteLine();
                    break;
                }

                case Items.Player.EState.DRAW:
                {
                    Program.ShowWarning(stateS);
                    Console.WriteLine();
                    break;
                }

                default:
                {
                    Console.WriteLine(stateS);
                    break;
                }
                }
                height++;

                if (i < (players.Count - 1))
                {
                    Console.CursorTop -= height;
                    height             = 0;
                }
            }

            Console.WriteLine("\n");
        }