Exemple #1
0
 public static void UpdateBoardBasedOnMove(UvsChess.Framework.ChessState selectedItem, ChessMove move, bool isWhiteChecked)
 {
     lock (_updateGuiDataLockObject)
     {
         _guiEvents.Add(new GuiEvent(Actually_UpdateBoardBasedOnMove, selectedItem, move, isWhiteChecked));
     }
 }
Exemple #2
0
        private static void Actually_UpdateBoardBasedOnMove(params object[] eventArgs)
        {
            UvsChess.Framework.ChessState selectedItem = (UvsChess.Framework.ChessState)eventArgs[0];
            ChessMove move           = (ChessMove)eventArgs[1];
            bool      isWhiteChecked = (bool)eventArgs[2];

            //ChessState tmpState = new ChessState(item.fenboard);
            selectedItem.MakeMove(move);
            selectedItem.PreviousMove  = null;
            selectedItem.PreviousBoard = null;

            if (isWhiteChecked)
            {
                selectedItem.CurrentPlayerColor = ChessColor.White;
            }
            else
            {
                selectedItem.CurrentPlayerColor = ChessColor.Black;
            }

            //item.fenboard = tmpState.ToFenBoard();

            // This causes the "selected index changed event"
            //lstHistory.Items[lstHistory.SelectedIndex] = tmpState;
            MainForm.lstHistory.SelectedItem = selectedItem;

            // Force update the lstHistory and the GuiChessBoard
            Actually_UpdateBoardBasedOnLstHistory(selectedItem);
        }
Exemple #3
0
 public static void UpdateBoardBasedOnLstHistory(UvsChess.Framework.ChessState selectedItem)
 {
     lock (_updateGuiDataLockObject)
     {
         _guiEvents.Add(new GuiEvent(Actually_UpdateBoardBasedOnLstHistory, selectedItem));
     }
 }
Exemple #4
0
        private static void Actually_AddToHistory(params object[] eventArgs)
        {
            UvsChess.Framework.ChessState state = (UvsChess.Framework.ChessState)eventArgs[0];

            MainForm.lstHistory.Items.Add(state);
            MainForm.lstHistory.SelectedIndex = MainForm.lstHistory.Items.Count - 1;
        }
Exemple #5
0
        private static void Actually_ResetHistory(params object[] eventArgs)
        {
            UvsChess.Framework.ChessState newState = (UvsChess.Framework.ChessState)eventArgs[0];

            MainForm.lstHistory.Items.Clear();
            Actually_AddToHistory(new object[] { newState });
        }
Exemple #6
0
 public static void ResetHistory(UvsChess.Framework.ChessState newState)
 {
     lock (_updateGuiDataLockObject)
     {
         _guiEvents.Add(new GuiEvent(Actually_ResetHistory, newState.Clone()));
     }
 }
Exemple #7
0
 public static void AddToHistory(UvsChess.Framework.ChessState state)
 {
     lock (_updateGuiDataLockObject)
     {
         _guiEvents.Add(new GuiEvent(Actually_AddToHistory, state.Clone()));
         _wasHistoryUpdated = true;
     }
 }
Exemple #8
0
        private static UvsChess.Framework.ChessState Actually_GetUpdated_LstHistory_SelectedItem()
        {
            UvsChess.Framework.ChessState selectedState = (UvsChess.Framework.ChessState)MainForm.lstHistory.SelectedItem;
            if (MainForm.radWhite.Checked)
            {
                selectedState.CurrentPlayerColor = ChessColor.White;
            }
            else
            {
                selectedState.CurrentPlayerColor = ChessColor.Black;
            }

            selectedState.HalfMoves = Convert.ToInt32(MainForm.numHalfMoves.Value);
            selectedState.FullMoves = Convert.ToInt32(MainForm.numFullMoves.Value);

            return(selectedState);
        }
Exemple #9
0
        private static void Actually_UpdateBoardBasedOnLstHistory(params object[] eventArgs)
        {
            UvsChess.Framework.ChessState selectedItem = (UvsChess.Framework.ChessState)eventArgs[0];

            if (selectedItem.CurrentPlayerColor == ChessColor.White)
            {
                MainForm.radWhite.Checked = true;
            }
            else
            {
                MainForm.radBlack.Checked = true;
            }

            MainForm.numFullMoves.Value = selectedItem.FullMoves;
            MainForm.numHalfMoves.Value = selectedItem.HalfMoves;

            MainForm.chessBoardControl.ResetBoard(selectedItem.CurrentBoard, selectedItem.PreviousMove);
        }
Exemple #10
0
        private static void Actually_SaveSelectedStateToDisk(params object[] eventArgs)
        {
            MainForm.saveFileDialog1.Filter = "FEN files (*.fen) | *.fen";
            System.Windows.Forms.DialogResult result = MainForm.saveFileDialog1.ShowDialog();
            if (result == System.Windows.Forms.DialogResult.OK)
            {
                StreamWriter writer = new StreamWriter(MainForm.saveFileDialog1.FileName);

                AddToMainLog("Saving board to: " + MainForm.saveFileDialog1.FileName);


                UvsChess.Framework.ChessState item = Actually_GetUpdated_LstHistory_SelectedItem();
                string fenboard = item.ToFenBoard();

                writer.WriteLine(fenboard);
                writer.Close();
            }
        }
Exemple #11
0
        private static void Actually_StartGame(params object[] eventArgs)
        {
            if (!_isInGameMode)
            {
                _isInGameMode = true;

                UvsChess.Framework.ChessState item = Actually_GetUpdated_LstHistory_SelectedItem();

                _mainGame = new UvsChess.Framework.ChessGame(item, GuiEventLoop.WhitePlayerName, GuiEventLoop.BlackPlayerName);

                // Remove WinGui from the GuiChessBoard updates
                MainForm.chessBoardControl.PieceMovedByHuman -= MainForm.PieceMovedByHuman_Changed;

                // Add the ChessGame to the GuiChessBoard updates
                MainForm.chessBoardControl.PieceMovedByHuman += _mainGame.WhitePlayer_HumanMovedPieceEvent;
                MainForm.chessBoardControl.PieceMovedByHuman += _mainGame.BlackPlayer_HumanMovedPieceEvent;

                // Add WinGui to the ChessGame updates event
                _mainGame.UpdatedState += GuiEventLoop.AddToHistory;

                _mainGame.SetGuiChessBoard_IsLocked += GuiEventLoop.SetGuiChessBoard_IsLocked;

                // Add WinGui to the DeclareResults event
                _mainGame.DeclareResults += GuiEventLoop.DeclareResults;

                _mainGame.SetDecisionTree += GuiEventLoop.SetDecisionTree;

                Actually_RemoveHistoryAfterSelected();

                Actually_DisableMenuItemsDuringPlay();
                Actually_DisableRadioBtnsAndComboBoxes();
                Actually_DisableHistoryWindowClicking();
                GuiEventLoop.Actually_SetGuiChessBoard_IsLocked(new object[] { true });

                _mainGame.StartGame();
            }
        }