예제 #1
0
        public void TestCreateAReSpinWheel()
        {
            // Arrange
            var strips = new List <IReadOnlyList <int> > {
                new List <int> {
                    1, 1, 1
                },
                new List <int> {
                    -2, -2, -2
                },
                new List <int> {
                    3, 3, 3
                },
                new List <int> {
                    -1, -1, -1
                },
                new List <int> {
                    5, 5, 5
                }
            };

            // Action
            var wheel = ParSheet.CreateReSpinWheel(strips, new int[] { 0, 0, 0, 0, 0 }, new List <int[]> {
                new int[] { 1, 2, 3 }, new int[0], new int[] { 4, 5, 6 }, new int[0], new int[] { 7, 8, 9 }
            });

            //Assert
            Assert.NotNull(wheel);
            Assert.AreEqual(wheel[0], new[] { 1, 2, 3 });
            Assert.AreEqual(wheel[1], new[] { -2, -2, -2 });
            Assert.AreEqual(wheel[2], new[] { 4, 5, 6 });
            Assert.AreEqual(wheel[3], new[] { -1, -1, -1 });
            Assert.AreEqual(wheel[4], new[] { 7, 8, 9 });
        }
예제 #2
0
        private static SummaryData ExecuteFreeSpin(int level, RequestContext <BonusArgs> bonusRequestcontext, FuDaoLeResult result)
        {
            var bonus         = module.CreateBonus(result);
            var summData      = new SummaryData();
            var freeSpinBonus = bonus.Value as FreeSpinBonus;

            do
            {
                summData.FSpinCounter++;
                var mystery        = ParSheet.GetFreeGameMysteryIndex(RandomNumberEngine.NextDouble());
                var wheel          = ParSheet.CreateWheelForFreeSpin(level, mystery);
                var freeSpinResult = Engine.ClaimBonus(level, freeSpinBonus, bonusRequestcontext, wheel) as FuDaoLeFreeSpinResult;
                summData.FSTotalWin += freeSpinResult.Win;
                if (freeSpinResult.SpinResult.HasBonus)
                {
                    summData.FgFHit++;
                }

                if (freeSpinResult.IsCompleted)
                {
                    break;
                }
            } while (true);
            return(summData);
        }
예제 #3
0
        public void TestWheelForFreeGame()
        {
            // arrange

            var reel1 = new List <int> {
                1, 1, 1
            };
            var reel2 = new List <int> {
                2, 2, 2
            };
            var reel3 = new List <int> {
                3, 3, 3
            };
            var reel4 = new List <int> {
                4, 4, 4
            };
            var reel5 = new List <int> {
                5, 5, 5
            };
            var reels = new List <IReadOnlyList <int> > {
                reel1, reel2, reel3, reel4, reel5
            };

            // action
            var wheel = ParSheet.CreateWheel(reels, Config.FreeGameCoinWeighted);

            //assert
            Assert.AreEqual(string.Join(',', wheel.Reels[0]), "1,1,1");
            Assert.AreEqual(string.Join(',', wheel.Reels[1]), "2,2,2");
            Assert.AreEqual(string.Join(',', wheel.Reels[2]), "3,3,3");
            Assert.AreEqual(string.Join(',', wheel.Reels[3]), "4,4,4");
            Assert.AreEqual(string.Join(',', wheel.Reels[4]), "5,5,5");
        }
예제 #4
0
        public void TestCreateAWheel()
        {
            // Arrange
            var strips = new List <IReadOnlyList <int> > {
                new List <int> {
                    1, 1, 1
                },
                new List <int> {
                    2, 2, 2
                },
                new List <int> {
                    3, 3, 3
                },
                new List <int> {
                    4, 4, 4
                },
                new List <int> {
                    5, 5, 5
                }
            };

            // Action
            var wheel = ParSheet.CreateWheel(strips);

            //Assert
            Assert.NotNull(wheel);
            Assert.AreEqual(wheel[0], new[] { 1, 1, 1 });
            Assert.AreEqual(wheel[1], new[] { 2, 2, 2 });
            Assert.AreEqual(wheel[2], new[] { 3, 3, 3 });
            Assert.AreEqual(wheel[3], new[] { 4, 4, 4 });
            Assert.AreEqual(wheel[4], new[] { 5, 5, 5 });
        }
예제 #5
0
        public void TestGetAReelStrip()
        {
            // action
            var reelStrips = ParSheet.GetStrips(1);

            //assert
            Assert.NotNull(reelStrips);
        }
예제 #6
0
        public void TestHasWildInReel()
        {
            // Arrange
            var reel1 = new[] { 1, 2, 4 };
            var reel2 = new[] { 1, 7, 4 };

            //Assert
            Assert.IsTrue(!ParSheet.HasWild(reel1));
            Assert.IsTrue(ParSheet.HasWild(reel2));
        }
예제 #7
0
        public void TestGetAReel()
        {
            // arrange
            var strip = new List <int> {
                1, 2, 3, 4, 5
            };
            // action
            var reel = ParSheet.GetReel(strip);

            //assert
            Assert.AreEqual(reel.Length, 3);
        }
예제 #8
0
        public void TestGetCardAtPosition()
        {
            // arrange
            var strip = new List <int> {
                1, 2, 3, 4, 5
            };
            // action
            var card = ParSheet.GetCard(strip);

            //assert
            Assert.AreEqual(card > 0 && card < 6, true);
        }
예제 #9
0
        public void TestCreateAFreeSpinWheel()
        {
            // Arrange
            var strips = new List <IReadOnlyList <int> > {
                new List <int> {
                    1, 1, 1
                },
                new List <int> {
                    2, 2, 2, 2
                },
                new List <int> {
                    3, 3, 3, 3
                },
                new List <int> {
                    4, 4, 4, 4
                },
                new List <int> {
                    5, 5, 5
                }
            };

            // Action
            var wheel1 = ParSheet.CreateExpandWheel(strips, 1);
            var wheel2 = ParSheet.CreateExpandWheel(strips, 2);
            var wheel3 = ParSheet.CreateExpandWheel(strips, 3);

            //Assert
            Assert.NotNull(wheel1);
            Assert.NotNull(wheel2);
            Assert.NotNull(wheel3);

            Assert.AreEqual(wheel1[0], new[] { 1, 1, 1 });
            Assert.AreEqual(wheel1[1], new[] { 10, 10, 10 });
            Assert.AreEqual(wheel1[2], new[] { 3, 3, 3 });
            Assert.AreEqual(wheel1[3], new[] { 4, 4, 4 });
            Assert.AreEqual(wheel1[4], new[] { 5, 5, 5 });

            Assert.AreEqual(wheel2[0], new[] { 1, 1, 1 });
            Assert.AreEqual(wheel2[1], new[] { 2, 2, 2 });
            Assert.AreEqual(wheel2[2], new[] { 10, 10, 10 });
            Assert.AreEqual(wheel2[3], new[] { 4, 4, 4 });
            Assert.AreEqual(wheel2[4], new[] { 5, 5, 5 });

            Assert.AreEqual(wheel3[0], new[] { 1, 1, 1 });
            Assert.AreEqual(wheel3[1], new[] { 2, 2, 2 });
            Assert.AreEqual(wheel3[2], new[] { 3, 3, 3 });
            Assert.AreEqual(wheel3[3], new[] { 10, 10, 10 });
            Assert.AreEqual(wheel3[4], new[] { 5, 5, 5 });
        }
예제 #10
0
        public void TestGetAReel()
        {
            // Arrange
            var strips = new List <int> {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 0
            };

            // Action
            var reel = ParSheet.CascadeReel(strips, 2, 3);

            //Assert
            Assert.NotNull(reel);
            Assert.AreEqual(reel.strip, new[] { 0, 1, 2 });
            Assert.AreEqual(reel.indexSelected, 9);
        }
예제 #11
0
        public void TestWheelForMainGame()
        {
            // arrange

            var reel1 = new[] { 1, 1, 1 };
            var reel2 = new[] { 2, 2, 2 };
            var reel3 = new[] { 3, 3, 3 };
            var reel4 = new[] { 4, 4, 4 };
            var reel5 = new[] { 5, 5, 5 };
            var reels = new int[][] { reel1, reel2, reel3, reel4, reel5 };

            // action
            var wheel = ParSheet.wheelForMainGame(reels);

            //assert
            Assert.AreEqual(string.Join(',', wheel.Reels[0]), "1,1,1");
            Assert.AreEqual(string.Join(',', wheel.Reels[1]), "2,2,2");
            Assert.AreEqual(string.Join(',', wheel.Reels[2]), "3,3,3");
            Assert.AreEqual(string.Join(',', wheel.Reels[3]), "4,4,4");
            Assert.AreEqual(string.Join(',', wheel.Reels[4]), "5,5,5");
        }
예제 #12
0
        public void TestCreateAReSpinWheel()
        {
            // Arrange
            var strips = new List <IReadOnlyList <int> > {
                new List <int> {
                    1, 1, 1
                },
                new List <int> {
                    2, 2, 2, 2
                },
                new List <int> {
                    3, 3, 3, 3
                },
                new List <int> {
                    4, 4, 4, 4
                },
                new List <int> {
                    11, 11, 11
                }
            };

            // Action
            var wheel = ParSheet.CreateReSpinWheel(strips, new List <int[]> {
                new int[] { 9, 9, 9 },
                new int[] { 9, -1, -1, -1 },
                new int[] { 9, 9, 9, -1 },
                new int[] { -1, 11, -1, -1 },
                new int[] { -1, 1, -1 },
            });

            //Assert
            Assert.NotNull(wheel);
            Assert.AreEqual(wheel[0], new[] { 9, 9, 9 });
            Assert.AreEqual(wheel[1], new[] { 9, 2, 2, 2 });
            Assert.AreEqual(wheel[2], new[] { 9, 9, 9, 3 });
            Assert.AreEqual(wheel[3], new[] { 4, 11, 4, 4 });
            Assert.AreEqual(wheel[4], new[] { 11, 11, 11 });
        }
예제 #13
0
        public void TestWildxpand()
        {
            // arrange
            var wheel = new List <int[]> {
                new[] { 0, 2, 3 },
                new[] { 0, 2, 3 },
                new[] { 1, 2, 3 },
                new[] { 0, 2, 3 },
                new[] { 0, 2, 3 }
            };
            // action
            var wheel1 = ParSheet.Expand(new[] { false, false, true, false, false }, wheel);
            var wheel2 = ParSheet.Expand(new[] { false, true, true, false, false }, wheel);
            var wheel3 = ParSheet.Expand(new[] { false, true, true, true, false }, wheel);

            //assert
            Assert.AreEqual(wheel1[0], wheel[0]);
            Assert.AreEqual(wheel2[0], wheel[0]);
            Assert.AreEqual(wheel3[0], wheel[0]);

            Assert.AreEqual(wheel1[1], wheel[1]);
            Assert.AreEqual(wheel2[1], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel3[1], new[] { 7, 7, 7 });

            Assert.AreEqual(wheel1[2], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel2[2], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel3[2], new[] { 7, 7, 7 });

            Assert.AreEqual(wheel1[3], wheel[3]);
            Assert.AreEqual(wheel2[3], wheel[3]);
            Assert.AreEqual(wheel3[3], new[] { 7, 7, 7 });

            Assert.AreEqual(wheel1[4], wheel[4]);
            Assert.AreEqual(wheel2[4], wheel[4]);
            Assert.AreEqual(wheel3[4], wheel[4]);
        }
예제 #14
0
 public int TestGetMysteryIndex(int level, double ratio) => ParSheet.GetMainGameMysteryIndex(ratio);
예제 #15
0
        public decimal TestGetEnvelopeIndex(string reelString)
        {
            var reelStrips = reelString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();

            return(ParSheet.GetEnvelopeIndex(reelStrips));
        }
예제 #16
0
 public bool TestCardIsEnvelope(int card) => ParSheet.IsEnvelopeCard(card);
예제 #17
0
        public string TestExpandingWild(string reelString)
        {
            var reelStrips = reelString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();

            return(string.Join(',', ParSheet.ExpandWild(reelStrips)));
        }
예제 #18
0
        public void TestCreateAReSpinWheel()
        {
            // Arrange
            var previousWheel = new List <int[]> {
                new int[] { },
                new int[] { 7, 7, 7 },
                new int[] { },
                new int[] { 7, 7, 7 },
                new int[] { }
            };
            var expandReels = new bool[] { false, true, false, true, false };
            var strips      = new List <IReadOnlyList <int> > {
                new List <int> {
                    1, 1, 1
                },
                new List <int> {
                    2, 2, 2
                },
                new List <int> {
                    3, 7, 3
                },
                new List <int> {
                    4, 4, 4
                },
                new List <int> {
                    5, 5, 5
                }
            };

            var strips2 = new List <IReadOnlyList <int> > {
                new List <int> {
                    1, 1, 1
                },
                new List <int> {
                    2, 2, 2
                },
                new List <int> {
                    3, 3, 3
                },
                new List <int> {
                    4, 4, 4
                },
                new List <int> {
                    5, 5, 5
                }
            };

            // Action
            var wheel  = ParSheet.CreateReSpinWheel(strips, previousWheel, expandReels);
            var wheel1 = ParSheet.CreateReSpinWheel(strips2, previousWheel, expandReels);

            //Assert
            Assert.NotNull(wheel);
            Assert.AreEqual(wheel[0], new[] { 1, 1, 1 });
            Assert.AreEqual(wheel[1], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel[2], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel[3], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel[4], new[] { 5, 5, 5 });
            Assert.AreEqual(wheel.ExpandReels, new bool[] { false, true, true, true, false });

            Assert.NotNull(wheel);
            Assert.AreEqual(wheel1[0], new[] { 1, 1, 1 });
            Assert.AreEqual(wheel1[1], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel1[2], new[] { 3, 3, 3 });
            Assert.AreEqual(wheel1[3], new[] { 7, 7, 7 });
            Assert.AreEqual(wheel1[4], new[] { 5, 5, 5 });
            Assert.AreEqual(wheel1.ExpandReels, new bool[] { false, true, false, true, false });
        }
예제 #19
0
        public void TestReelsExploding()
        {
            // Arrange
            var wheel = new List <int[]> {
                new int[] { 1, 1, 1 },
                new int[] { 2, 2, 2 },
                new int[] { 3, 3, 3 },
                new int[] { 4, 4, 4 },
                new int[] { 5, 5, 5 },
            };
            var winPositions1 = new List <WinPosition>
            {
                new WinPosition {
                    Line = 0, Symbol = 10, Count = 3, RowPositions = new List <int> {
                        0, 1, 2, 3, 0
                    }
                },
            };

            var winPositions2 = new List <WinPosition> {
                new WinPosition {
                    Line = 1, Count = 4, RowPositions = new List <int> {
                        1, 2, 3, 4, 0
                    }
                }
            };

            var winPositions3 = new List <WinPosition> {
                new WinPosition {
                    Line = 0, Count = 3, Symbol = 10, RowPositions = new List <int> {
                        0, 1, 2, 3, 0
                    }
                },
                new WinPosition {
                    Line = 1, Count = 3, RowPositions = new List <int> {
                        1, 2, 3, 0, 0
                    }
                }
            };

            var winPositions4 = new List <WinPosition> {
                new WinPosition {
                    Line = 0, Count = 3, Symbol = 10, RowPositions = new List <int> {
                        0, 1, 2, 3, 0
                    }
                },
                new WinPosition {
                    Line = 1, Count = 5, RowPositions = new List <int> {
                        1, 2, 3, 1, 2
                    }
                }
            };

            // Action
            var result1 = ParSheet.ExplodeReels(winPositions1, wheel);
            var result2 = ParSheet.ExplodeReels(winPositions2, wheel);
            var result3 = ParSheet.ExplodeReels(winPositions3, wheel);
            var result4 = ParSheet.ExplodeReels(winPositions4, wheel);

            //Assert
            Assert.NotNull(result1); Assert.AreEqual(result1, new List <int[]> {
                new int[] { 1, 1, 1 }, new int[0], new int[0], new int[0], new int[] { 5, 5, 5 }
            });
            Assert.NotNull(result2); Assert.AreEqual(result2, new List <int[]> {
                new int[0], new int[0], new int[0], new int[0], new int[] { 5, 5, 5 }
            });
            Assert.NotNull(result3); Assert.AreEqual(result3, new List <int[]> {
                new int[0], new int[0], new int[0], new int[0], new int[] { 5, 5, 5 }
            });
            Assert.NotNull(result4); Assert.AreEqual(result4, new List <int[]> {
                new int[0], new int[0], new int[0], new int[0], new int[0]
            });
        }