예제 #1
0
        public void TestCheckFilledLines()
        {
            var t = new Tetris(@"C:\Users\Meow\Desktop\git\ShporaTetris\ShporaTetris\bin\Debug\tests\smallest.json");
            var points = 0;
            var field = new List<Point>()
            {
                new Point(0,0,0,3),
                new Point(0,0,1,3),
                new Point(0,0,1,4),
                new Point(0,0,2,0),
                new Point(0,0,2,1),
                new Point(0,0,2,3),
                new Point(0,0,3,3),
                new Point(0,0,4,1),
                new Point(0,0,4,3),
                new Point(0,0,5,3),

            }.ToImmutableHashSet();
            var result = t.CheckFilledLines(field, 6, out points);
            var expected = new List<Point>()
            {
                new Point(0,0,1,4),
                new Point(0,0,2,1),
                new Point(0,0,2,2),
                new Point(0,0,4,2)
            }.ToImmutableHashSet();
            var isCorrect = expected.SetEquals(result);
            Assert.AreEqual(true, isCorrect, result.ElementAt(3).AbsX +" " + result.ElementAt(3).AbsY);
            Assert.AreEqual(1, points);
        }
예제 #2
0
        public void TestCheckCollisions()
        {
            var piece = new Piece(new List<Point>()
            {
                new Point(0,0,3,0),
                new Point(0,1,3,1),
                new Point(0,2,3,2),
                new Point(1,2,4,2)
            }.ToImmutableArray());

            var field = new List<Point>()
            {
                new Point(0,0,2,0),
                new Point(0,0,2,1),
                new Point(0,0,4,2),
                new Point(0,0,3,2)
            }.ToImmutableHashSet();
            var field2 = new List<Point>()
            {
                new Point(0,0,2,0),
                new Point(0,0,2,1),
                new Point(0,0,4,0),
                new Point(0,0,3,3)
            }.ToImmutableHashSet();
            var t = new Tetris(@"C:\Users\Meow\Desktop\git\ShporaTetris\ShporaTetris\bin\Debug\tests\smallest.json");
            Assert.AreEqual(true, t.CheckCollisions(piece, field, 6, 5));
            Assert.AreEqual(false, t.CheckCollisions(piece, field2,6,5));
        }
예제 #3
0
		static void Main(string[] args)
		{
			var t = new Stopwatch();
			t.Start();
			//var tetris = new Tetris(@"tests/cubes-w1000-h1000-c1000000.json");
			var tetris = new Tetris(@"tests/clever-w20-h25-c100000.json");
			
			tetris.Play();
			Console.WriteLine(t.Elapsed);
			t.Stop();
		}
예제 #4
0
        public void TestPlacePiece()
        {
            var field = new List<Point>()
            {
                new Point(0,0,0,3),
                new Point(0,0,1,3),
                new Point(0,0,1,4),
                new Point(0,0,2,0),
                new Point(0,0,2,1),
                new Point(0,0,2,3),
                new Point(0,0,3,3),
                new Point(0,0,4,1),
                new Point(0,0,4,3),
                new Point(0,0,5,4),

            }.ToImmutableHashSet();
            var piece = new Piece(new List<Point>()
            {
                new Point(0,0,3,0),
                new Point(0,1,3,1),
                new Point(0,2,3,2),
                new Point(1,2,4,2)
            }.ToImmutableArray());
            var t = new Tetris(@"C:\Users\Meow\Desktop\git\ShporaTetris\ShporaTetris\bin\Debug\tests\smallest.json");
            var expected = new List<Point>()
            {
                new Point(0,0,0,3),
                new Point(0,0,1,3),
                new Point(0,0,1,4),
                new Point(0,0,2,0),
                new Point(0,0,2,1),
                new Point(0,0,2,3),
                new Point(0,0,3,3),
                new Point(0,0,4,1),
                new Point(0,0,4,3),
                new Point(0,0,5,4),
                new Point(0,0,3,0),
                new Point(0,1,3,1),
                new Point(0,2,3,2),
                new Point(1,2,4,2)

            }.ToImmutableHashSet();
            var isTrue = expected.SetEquals(t.PlacePiece(piece, field));
            Assert.AreEqual(true, isTrue);
        }