public void Extract() { var extractor = new TetrisExtractor(_config); var screenshot = new EmguScreenshot("Screenshots/tetris_play_1.png", DateTime.Now.Subtract(DateTime.MinValue)); var stopwatch = new Stopwatch(); stopwatch.Start(); var gameState = extractor.Extract(screenshot, null); stopwatch.Stop(); Debug.Write($"Extraction in {stopwatch.ElapsedMilliseconds} ms"); Assert.NotNull(gameState); Assert.NotNull(gameState.Board); Assert.NotNull(gameState.Piece); Assert.NotNull(gameState.NextPiece); _logger.Info(gameState.Piece); _logger.Info(gameState.NextPiece); _logger.Info(gameState); _logger.Info(gameState.Board); }
public void GetPieceMask(int x, int y, int expected) { var extractor = new TetrisExtractor(_config); var screenshot = new EmguScreenshot("Screenshots/tetris_play_2.png", DateTime.Now.Subtract(DateTime.MinValue)); var mask = extractor.GetPieceMask(screenshot, x, y); Assert.AreEqual(expected, mask); }
public void ExtractPieceSpawnedFalledPieceIsInOrigin() { var extractor = new TetrisExtractor(_config); var screenshot = new EmguScreenshot("Screenshots/tetris_play_1.png", DateTime.Now.Subtract(DateTime.MinValue)); var piece = extractor.ExtractSpawnedPiece(screenshot, 10); Assert.NotNull(piece); Assert.AreEqual(Tetrimino.S, piece.Tetrimino); Assert.AreEqual(0, piece.Orientation); Assert.AreEqual(0, piece.X); Assert.AreEqual(0, piece.Y); }
public void GetProbability(Tetrimino tetrimino, int x, int y, double expectedProbability) { var extractor = new TetrisExtractor(_config); var screenshot = new EmguScreenshot("Screenshots/tetris_play_2.png", DateTime.Now.Subtract(DateTime.MinValue)); var piece = new Piece(tetrimino, 0, x, y); var probability = extractor.GetProbability(screenshot, piece); Assert.LessOrEqual(probability, 1.0); Assert.GreaterOrEqual(probability, 0.0); Assert.AreEqual(expectedProbability, probability); }
public void ConfirmPieceMovement() { var extractor = new TetrisExtractor(_config); var screenshot = new EmguScreenshot("Screenshots/tetris_play_2.png", DateTime.Now.Subtract(DateTime.MinValue)); var lastPosition = new Piece(Tetrimino.Z, 0, 1, -6); var newPosition = extractor.ExtractMovedPieceWithoutErrorTolerance(screenshot, lastPosition, Move.Left, 0); Assert.NotNull(newPosition); Assert.AreEqual(Tetrimino.Z, newPosition.Tetrimino); Assert.AreEqual(0, newPosition.Orientation); Assert.AreEqual(0, newPosition.X); Assert.AreEqual(-6, newPosition.Y); }
public void Constructor() { var extractor = new TetrisExtractor(_config); }
public BlockBasedExtractor(IConfig config) { _tetrisExtractor = new TetrisExtractor(config); }
public void Init() { var config = TestHelper.GetFakeConfig().Object; _extractor = new TetrisExtractor(config); }