Exemplo n.º 1
0
        // Creates a panel for the specified combination.
        private StackPanel CreateCombinationPanel(int pIndex, TileComboPivot combo)
        {
            StackPanel panel = new StackPanel
            {
                Orientation = (pIndex == 0 || pIndex == 2 ? Orientation.Horizontal : Orientation.Vertical)
            };

            WindPivot pWind = _game.GetPlayerCurrentWind(pIndex);

            int i = 0;
            List <Tuple <TilePivot, bool> > tileTuples = combo.GetSortedTilesForDisplay(pWind);

            if (pIndex > 0 && pIndex < 3)
            {
                tileTuples.Reverse();
            }

            foreach (Tuple <TilePivot, bool> tileTuple in tileTuples)
            {
                panel.Children.Add(tileTuple.Item1.GenerateTileButton(null,
                                                                      (AnglePivot)(tileTuple.Item2 ? pIndex.RelativePlayerIndex(1) : pIndex),
                                                                      combo.IsConcealedDisplay(i)));
                i++;
            }

            return(panel);
        }
Exemplo n.º 2
0
        public void IsComplete_WithDeclaredKan_ComplexMultiplePatterns()
        {
            List <TilePivot> tilesSet = TilePivot.GetCompleteSet(false);

            var concealedTiles = new List <TilePivot>
            {
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 1),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 1),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 2),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 2),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 3),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 3),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 4),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 4),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 4),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 5),
                TilePivot.GetTile(tilesSet, FamilyPivot.Circle, number: 6)
            };

            concealedTiles = concealedTiles.OrderBy(t => GlobalTools.Randomizer.NextDouble()).ToList();

            List <List <TileComboPivot> > result = HandPivot.IsCompleteBasic(concealedTiles, new List <TileComboPivot>
            {
                TileComboPivot.BuildSquare(TilePivot.GetTile(tilesSet, FamilyPivot.Dragon, dragon: DragonPivot.White))
            });

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);
            result.ForEach(cg => AssertFiveCombinationsIncludingOnePair(cg));
        }