コード例 #1
0
		public void Create_FromState_InitializedField()
		{
			var state = new GameState()
			{
				Player2 = new GameState.Player()
				{
					Combo = 12,
					Points = 10,
					Field = new int[,] 
					{ 
						{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 2, 2, 0 },
						{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
					},
				},
				Player1 = new GameState.Player()
				{
					Combo = 0,
					Points = 0,
					Field = new int[,]
					{
						{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 2, 2, 0 },
						{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
					},
				},
			};
			var act = Field.Create(state, PlayerName.Player2);
			FieldAssert.AreEqual("..........|........X.|.......XX.", 10, 12, 0, act);
		}
コード例 #2
0
		public void Create_Field_InitializedField()
		{
			var act = Field.Create(0, 0, 17, @"
..........
.......XX.
");
			FieldAssert.AreEqual("..........|.......XX.", 0, 0, 17, act);
		}
コード例 #3
0
		public void Apply_IClearRow_Added()
		{
			var field = Field.Create(0, 0, 2, "..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|........XX|.XX.....XX|XX......XX|XXXX....XX");

			var act = field.Apply(Block.I, new Position(4, 19));
			var exp = "..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|........XX|.XX.....XX|XX......XX";
			FieldAssert.AreEqual(exp, 0, 0, 2, act);
		}
コード例 #4
0
		public void SkipBlock_None_SkipOf3()
		{
			var exp = "..X..XX...|XXX...XXXX|XXXX.XXXXX";
			var field = Field.Create(1, 2, 4, exp);

			var act = field.SkipBlock();
			FieldAssert.AreEqual(exp, 1, 0, 3, act);
		}
コード例 #5
0
		public void LockRow_None_FieldWithLessRows()
		{
			var field = Field.Create(10, 3, 17, @"
..........
........X.
.......XX.");
			var act = field.LockRow();
			FieldAssert.AreEqual("........X.|.......XX.", 10, 3, 17, act);
		}
コード例 #6
0
		public void Apply_DoubleClear0_Adds3Points()
		{
			var field = Field.Create(7, 0, 17, @"
.........X
...XXXXXXX
.XXXXXXXXX");

			var act = field.Apply(Block.L[Block.RotationType.Uturn], new Position(0, 1));
			var exp = "..........|..........|.........X";
			FieldAssert.AreEqual(exp, 10, 1, 17, act);
		}
コード例 #7
0
		public void Apply_SingleClearWithCombo1_Adds0Points()
		{
			var field = Field.Create(8, 1, 17, @"
..........
....XXXXXX
.XXXXXXXXX");

			var act = field.Apply(Block.L[Block.RotationType.Uturn], new Position(0, 1));
			var exp = "..........|..........|XXX.XXXXXX";
			FieldAssert.AreEqual(exp, 8, 1, 17, act);
		}
コード例 #8
0
		public void Apply_FullClear_Adds18Points()
		{
			var field = Field.Create(6, 0, 17, @"
..........
...XXXXXXX
XX.XXXXXXX");

			var act = field.Apply(Block.J[Block.RotationType.Uturn], new Position(0, 1));
			var exp = "..........|..........|..........";
			FieldAssert.AreEqual(exp, 24, 1, 17, act);
		}
コード例 #9
0
		public void Apply_TripleClear_Adds6Points()
		{
			var field = Field.Create(4, 0, 17, @"
..........
.XXXXXXXXX
.XXXXXXXXX
.XXXXXXXXX");

			var act = field.Apply(Block.I[Block.RotationType.Left], new Position(0, 0));
			var exp = "..........|..........|..........|X.........";
			FieldAssert.AreEqual(exp, 10, 1, 17, act);
		}
コード例 #10
0
		public void Apply_I_Added()
		{
			var field = Field.Create(0, 0, 17, @"
..........
..........
..........
.......XX.
");
			var act = field.Apply(Block.I, new Position(0, 3));
			var exp = "..........|..........|..........|XXXX...XX.";
			FieldAssert.AreEqual(exp, 0, 0, 17, act);
		}
コード例 #11
0
		public void Apply_QuadrupleClear_Adds10Points()
		{
			var field = Field.Create(8, 0, 17, @"
XX.......X
XXXXX.XXXX
XXXXX.XXXX
XXXXX.XXXX
XXXXX.XXXX");

			var act = field.Apply(Block.I[Block.RotationType.Left], new Position(5, 1));
			var exp = "..........|..........|..........|..........|XX.......X";
			FieldAssert.AreEqual(exp, 18, 1, 18, act);
		}
コード例 #12
0
        public void Apply_DoubleTSpin_AddsPointsAndSkips()
        {
            var field = Field.Create(0, 0, 17, @"
..X..XX...
XXX...XXXX
XXXX.XXXXX");

            var act = field.Apply(Block.T[Block.RotationType.Uturn], new Position(3, 1));

            var exp = "..........|..........|..X..XX...";

            FieldAssert.AreEqual(exp, 10, 1, 18, act);
        }
コード例 #13
0
		public void Garbage_TwoRows_AppliedSuccessful()
		{
			var field = Field.Create(0, 0, 17, @"
..........
..........
......X..X
.XXXXXXXXX
XX.XXXXXXX");

			var act = field.Garbage(Row.Garbage[0], Row.Garbage[1]);
			var exp = "......X..X|.XXXXXXXXX|XX.XXXXXXX|.XXXXXXXXX|X.XXXXXXXX";
			FieldAssert.AreEqual(exp, 0, 0, 17, act);
		}
コード例 #14
0
        public void Apply_Move45Depth1_ShouldApplyALock()
        {
            var field = Field.Create(0, 0, 0, @"
				..........
				..X......."                );

            var actual = BlockNode.Apply(field, 1, new ApplyParameters(new MT19937Generator())
            {
                Round = 45
            });

            FieldAssert.AreEqual(@"
				..X......."                , 0, 0, 0, actual);
        }
コード例 #15
0
        public void Apply_Row1ToMuchSpaceToMuchSpaceOnHead_NoTSpin()
        {
            var field = Field.Create(0, 0, 0, @"
				..X..XX...
				XX....XXXX
				XXXX.XXXXX"                );

            var act = field.Apply(Block.T[Block.RotationType.Uturn], new Position(3, 1));

            FieldAssert.AreEqual(@"
				..........
				..X..XX...
				XX.XXXXXXX"                , 5, 1, 0, act);
        }
コード例 #16
0
		public void Apply_Ir_Added()
		{
			var field = Field.Create(12, 0, 17, @"
..........
..........
..........
XXXXXX.XXX
XXXXX..XX.
XXXXXX.XXX
XXXXXX.XX.
");
			var act = field.Apply(Block.I.Variations[1], new Position(6, 3));
			var exp = "..........|..........|..........|..........|..........|XXXXX.XXX.|XXXXXXXXX.";
			FieldAssert.AreEqual(exp, 15, 1, 17, act);
		}
コード例 #17
0
		public void Apply_WithNegativeColumnPosition_Successful()
		{
			var field = Field.Create(0, 0, 17, @"
..........
..........
......X..X
.XXXXXXXXX
XX.XXXXXXX");

			var block = Block.T[Block.RotationType.Right];
			var act = field.Apply(block, new Position(0, 1));
			Console.WriteLine(act);
			var exp = "..........|..........|X.........|XX....X..X|XX.XXXXXXX";
			FieldAssert.AreEqual(exp, 0, 0, 17, act);
		}
コード例 #18
0
        public void Apply_SingleTSpinNone_AddsPointsAndSkips()
        {
            var field = Field.Create(0, 0, 17, @"
				.....X....
				XXX...XXXX
				XXXX.XXXXX"                );

            var act = field.Apply(Block.T, new Position(3, 0));

            var exp = @"
				..........
				....XX....
				XXXX.XXXXX"                ;

            FieldAssert.AreEqual(exp, 5, 1, 17, act);
        }
コード例 #19
0
        public void Apply_SingleTSpinRight_AddsPointsAndSkips()
        {
            var field = Field.Create(0, 0, 17, @"
				.....X....
				XXX...XXXX
				XXXX.XXXXX"                );

            var act = field.Apply(Block.T[Block.RotationType.Right], new Position(4, 0));

            var exp = @"
				..........
				....XX....
				XXX.XXXXXX"                ;

            FieldAssert.AreEqual(exp, 5, 1, 17, act);
        }
コード例 #20
0
		public void Apply_TSingleClear_NoTSpin()
		{
			var field = Field.Create(0, 0, 0, @"
				X.........
				X..XX.....
				XXXXXX...X
				XXXX.X..XX
				XXXXXX.XXX");

			var act = field.Apply(Block.T[Block.RotationType.Right], new Position(6, 2));

			FieldAssert.AreEqual(@"
				..........
				X.........
				X..XX.....
				XXXXXXX..X
				XXXX.XXXXX", 0, 0, 0, act);
		}