private void DistributeCards(SchafkopfGame game, GameObject CardPrefab, GameObject[] playerPositions, Dictionary <CardValues, Sprite> ValueToSprite, List <List <GameObject> > CardLists)
 {
     for (int i = 0; i < game.PlayerList.Count(); i++)
     {
         StartCoroutine(CreatePlayerStack(game.PlayerList[i], playerPositions[i].transform));
     }
 }
        public void TestPassColorCorrect()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EO), new Card(CardValues.G7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.S8)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.S7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.GA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[3].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[0],
                players[1].Cards[0],
                players[2].Cards[0],
                players[3].Cards[0]
            };

            // When / Then
            Assert.That(Sauspiel.CheckSchlagFarbePassed(spielKarten, spielKarten[0]));
        }
        public void TestPassTrumpFalse()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.G7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.GO), new Card(CardValues.G9)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.S7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.GA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[3].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[0],
                players[1].Cards[0],
                players[2].Cards[0],
                players[3].Cards[0]
            };

            // When / Then
            Assert.That(Sauspiel.CheckSchlagFarbePassed(spielKarten, spielKarten[0]) == false);
            Assert.Throws <ArgumentException>(() => Sauspiel.CardComparison(spielKarten, spielKarten[0]));
        }
        public void TestHighestPoints()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E7), new Card(CardValues.S7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EA), new Card(CardValues.S10)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[1].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[1],
                players[1].Cards[1]
            };
            // When
            var hoechsteKarte = Sauspiel.HighestPoints(spielKarten);

            Assert.That(hoechsteKarte.CardValue, Is.EqualTo(CardValues.S10));
            Assert.That(hoechsteKarte.Owner, Is.EqualTo(players[1]));
        }
Esempio n. 5
0
        public void TestCountPoints()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EO)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.H7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[3].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[0],
                players[1].Cards[0],
                players[2].Cards[0],
                players[3].Cards[0]
            };

            // When / Then
            Assert.That(game.CountPoints(spielKarten.ToList()), Is.EqualTo(3 + 0 + 0 + 11));
        }
Esempio n. 6
0
        public void TestGetPlayerIndex()
        {
            // Given
            var game = new SchafkopfGame();

            // When // Then
            Assert.That(game.GetPlayerIndex(game.PlayerList[3]), Is.EqualTo(3));
        }
Esempio n. 7
0
        public void TestNumberOfPlayers()
        {
            //Given // When
            var game = new SchafkopfGame();

            //Then
            Assert.That(game.PlayerList.Count, Is.EqualTo(4));
        }
Esempio n. 8
0
        public void TestNumberOfCards()
        {
            //Given
            var game = new SchafkopfGame();

            //Then
            foreach (var player in game.PlayerList)
            {
                Assert.That(player.Cards.Count(), Is.EqualTo(8));
            }
        }
Esempio n. 9
0
        public void TestGetCardByValue()
        {
            //Given
            var game = new SchafkopfGame();
            // When
            var card = game.GetCardbyValue(CardValues.E10);

            // Then
            Assert.That(card.CardValue, Is.EqualTo(CardValues.E10));
            Assert.That(card.Owner, Is.Not.Null);
        }
Esempio n. 10
0
        public void TestRedistributeStich()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EO)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.H7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[3].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[0],
                players[1].Cards[0],
                players[2].Cards[0],
                players[3].Cards[0]
            };

            var hoechsteKarte = Sauspiel.CardComparison(spielKarten, players[0].Cards[0]);

            // When
            game.RedistributeStich(spielKarten, hoechsteKarte);

            // Then
            Assert.That(hoechsteKarte.CardValue, Is.EqualTo(CardValues.EO));
            Assert.That(hoechsteKarte.Owner, Is.EqualTo(players[0]));
            Assert.That(players[0].Stiche.Count(), Is.EqualTo(1));

            foreach (var player in game.PlayerList)
            {
                Assert.That(player.Cards.Count(), Is.EqualTo(0));
            }

            for (int i = 1; i <= 3; i++)
            {
                Assert.That(players[i].Stiche.Count(), Is.EqualTo(0));
            }
        }
Esempio n. 11
0
        public void CheckIfCardDuplicated()
        {
            // Given
            var game = new SchafkopfGame();
            // When
            var allCards = game.PlayerList.SelectMany(d => d.Cards).ToList();

            // Then
            foreach (var card in allCards)
            {
                var h = new HashSet <int>();
                Assert.That(h.Any(x => !h.Add(x)), Is.EqualTo(false));
            }
        }
    // Start is called before the first frame update
    public void Start()
    {
        _currentPlayerIndex = 0;

        Game = new SchafkopfGame();
        Table.GetComponent <Table>().SchafkopfController = this;

        ValueToSprite = new Dictionary <CardValues, Sprite>();
        SetCardValueToSprite(CardFaces, ValueToSprite);

        DestroyOldCards();
        CardLists = new List <List <GameObject> >();
        CardLists.Add(new List <GameObject>()); //Tabe list
        DistributeCards(Game, CardPrefab, PlayerStackPositions, ValueToSprite, CardLists);
    }
        public void TestIfAss()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E10),
                new Card(CardValues.H7),
                new Card(CardValues.HA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            // When / Then
            Assert.Throws <ArgumentException>(() => new Sauspiel(game, players[0], CardValues.H7));
        }
        public void TestIfPlayerHasAssHimself()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E10),
                new Card(CardValues.H7),
                new Card(CardValues.HA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            // When / Then
            Assert.Throws <InvalidOperationException>(() => new Sauspiel(game, players[0], CardValues.EA));
        }
Esempio n. 15
0
        public void TestCountPointsByPlayer()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EO)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.H7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[3].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[0],
                players[1].Cards[0],
                players[2].Cards[0],
                players[3].Cards[0]
            };
            // When
            var highestCard = Sauspiel.CardComparison(spielKarten, spielKarten[0]);

            game.RedistributeStich(spielKarten, highestCard);
            var pointsByPlayer = game.CountStichPointsByPlayers();

            // Then
            Assert.That(pointsByPlayer[players[0]], Is.EqualTo(3 + 0 + 0 + 11));
            for (int i = 1; i < players.Count(); i++)
            {
                Assert.That(pointsByPlayer[players[i]], Is.EqualTo(0));
            }
        }
        public void TestConstruction()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E10), new Card(CardValues.H7), new Card(CardValues.H9), new Card(CardValues.EO)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E9), new Card(CardValues.E7), new Card(CardValues.E7), new Card(CardValues.EA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);
            // When
            Sauspiel saupspiel = new Sauspiel(game, players[0], players[1].Cards[3].CardValue);

            // Then
            Assert.That(saupspiel.ChiefPlayer, Is.EqualTo(players[0]));
            Assert.That(saupspiel.ChiefPlayerPartner, Is.EqualTo(players[1]));
            Assert.That(saupspiel.SearchedAss.CardValue, Is.EqualTo(CardValues.EA));
        }
        public void TestHighestColor()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.E7), new Card(CardValues.HO)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.EA), new Card(CardValues.EO)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[1].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[1],
                players[1].Cards[1]
            };

            // When
            Assert.That(Sauspiel.HighestColor(spielKarten).CardValue, Is.EqualTo(CardValues.EO));
        }
        public void TestErsteFarbeGespielt()
        {
            // Given
            List <Player> players = new List <Player>();

            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.G7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.S8)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.S7)
            }));
            players.Add(new Player(new List <Card>()
            {
                new Card(CardValues.GA)
            }));
            SchafkopfGame game = new SchafkopfGame(players);

            Sauspiel saupspiel   = new Sauspiel(game, players[0], players[3].Cards[0].CardValue);
            var      spielKarten = new Card[] {
                players[0].Cards[0],
                players[1].Cards[0],
                players[2].Cards[0],
                players[3].Cards[0]
            };
            // When
            var hoechsteKarte = Sauspiel.CardComparison(spielKarten, players[1].Cards[0]);

            Assert.That(hoechsteKarte.CardValue, Is.EqualTo(CardValues.S8));
            Assert.That(hoechsteKarte.Owner, Is.EqualTo(players[1]));
        }