public void NoPiece() { var game = new TaikyokuShogi(); // empty board var loc = (17, 17); Assert.Null(game.GetPiece(loc)); Assert.False(game.MakeMove(loc, Movement.ComputeMove(loc, Movement.Up, 1).Value)); }
void ShowPieceInfo(object sender, MouseEventArgs e) { if (e.Source is MenuItem) { return; } var loc = gameBoard.GetBoardLoc(e.GetPosition(gameBoard)); if (loc == null) { _pieceInfoWindow?.Hide(); return; } var piece = Game.GetPiece(loc.Value); if (piece == null) { _pieceInfoWindow?.Hide(); return; } var mainWindow = Application.Current.MainWindow; var pos = e.GetPosition(mainWindow); _pieceInfoWindow ??= new PieceInfoWindow(); _pieceInfoWindow.SetPiece(Game, piece.Id); if (mainWindow.WindowState == WindowState.Normal) { _pieceInfoWindow.Left = pos.X + mainWindow.Left + 15; _pieceInfoWindow.Top = pos.Y + mainWindow.Top + 30; } else { // maximized _pieceInfoWindow.Left = pos.X + 15; _pieceInfoWindow.Top = pos.Y + 30; if (_pieceInfoWindow.Left > mainWindow.ActualWidth - (_pieceInfoWindow.Width * 2)) { _pieceInfoWindow.Left = pos.X - _pieceInfoWindow.Width; } if (_pieceInfoWindow.Top > mainWindow.ActualHeight - (_pieceInfoWindow.Height * 2)) { _pieceInfoWindow.Top = pos.Y - _pieceInfoWindow.Height; } } _pieceInfoWindow.Show(); }