Ejemplo n.º 1
0
        private NetworkPlayer CalculateHandResult(List <Card> otherDroppedCards)
        {
            Card winCard = RoundRules.CalculateWinnerCard(otherDroppedCards.ToArray(), _trump);

            NetworkPlayer winPlayer = _playerMoveOrderList.First(player => player.PlayerMoveCard.Equals(winCard));

            winPlayer.WinHandsCount++;
            Debug.Log($"CalculateHandResult: winPlayer: {winPlayer.name} winRate:{winPlayer.WinHandsCount}");

            return(winPlayer);
        }
Ejemplo n.º 2
0
        public bool TryToDropCard(CardBehaviour card, NetworkPlayerView player)
        {
            Card[] cardsOnTable = droppedCards.Keys.Select(behaviour => behaviour.Card).ToArray();

            bool isCardValid = RoundRules.IsDroppedCardValid(card.Card, player.NetworkPlayer.PlayerCards, player.NetworkPlayer.RoundTrump, cardsOnTable);

            Debug.Log($"TryToDropCard: isCardValid{isCardValid} _isCardInDropZone{_isCardInDropZone} card:{card.Card} PlayerCards:{player.NetworkPlayer.PlayerCards.ToStringAll()} Trump:{player.NetworkPlayer.RoundTrump} cardsOnTable:{cardsOnTable.ToStringAll()}");


            if (isCardValid && _isCardInDropZone)
            {
                Drop(card, player);
                LocalPlayerView.NetworkPlayer.EndMakeMove(card.Card);
                return(true);
            }



            return(false);
        }
Ejemplo n.º 3
0
        private Card SelectRandomMoveCard(NetworkPlayer player, Card[] otherDroppedCards)
        {
            var validToMoveCards = player.PlayerCards.Where(card => RoundRules.IsDroppedCardValid(card, player.PlayerCards, _trump, otherDroppedCards));

            return(validToMoveCards.ToArray().Shuffle().First());
        }