/// <summary>
 /// Set the current playing mode. Defined as a method so it can be called by a delegate
 /// </summary>
 /// <param name="ePlayingMode"> Playing mode</param>
 private void SetPlayingMode(PlayingModeE ePlayingMode) {
     PlayingMode = ePlayingMode;
 }
 /// <summary>
 /// Let's the computer play against itself
 /// </summary>
 /// <param name="bFlash">           true to flash pieces whem moving</param>
 private void PlayComputerAgainstComputer(bool bFlash) {
     bool    bMultipleThread;
     
     bMultipleThread     = (m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.DifferentThreadForSearch ||
                            m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.OnePerProcessorForSearch);
     PlayingMode         = PlayingModeE.ComputerAgainstComputer;
     StartAsyncComputing();
     if (bMultipleThread) {
         Task.Factory.StartNew(() => PlayComputerAgainstComputerAsync(bFlash, m_searchMode));
     } else {
         PlayComputerAgainstComputerAsync(bFlash, m_searchMode);
     }
 }
 /// <summary>
 /// Cancel the auto-play
 /// </summary>
 private void CancelAutoPlay() {
     if (PlayingMode == PlayingModeE.ComputerAgainstComputer) {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
     } else {
         m_chessCtl.CancelSearch();
     }
 }
 /// <summary>
 /// Toggle the player vs player mode.
 /// </summary>
 private void TogglePlayerAgainstPlayer() {
     if (mnuEditPlayerAgainstPlayer.IsChecked) {
         PlayingMode = PlayingModeE.PlayerAgainstComputer;
         if (frmGameParameter.AskGameParameter(this)) {
             CheckIfComputerMustPlay();
         } else {
             PlayingMode = PlayingModeE.PlayerAgainstPlayer;
         }
     } else {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
     }
     mnuEditPlayerAgainstPlayer.IsChecked = (PlayingMode == PlayingModeE.PlayerAgainstPlayer);
 }
 /// <summary>
 /// Toggle the design mode. In design mode, the user can create its own board
 /// </summary>
 private void ToggleDesignMode() {
     if (PlayingMode == PlayingModeE.DesignMode) {
         PlayingMode                     = PlayingModeE.PlayerAgainstPlayer;
         mnuEditDesignMode.IsCheckable   = false;
         if (frmGameParameter.AskGameParameter(this)) {
             m_chessCtl.BoardDesignMode = false;
             if (m_chessCtl.BoardDesignMode) {
                 PlayingMode = PlayingModeE.DesignMode;
                 MessageBox.Show("Invalid board configuration. Correct or reset.");
             } else {
                 m_lostPieceBlack.BoardDesignMode    = false;
                 m_lostPieceWhite.Visibility         = System.Windows.Visibility.Visible;
                 CheckIfComputerMustPlay();
             }
         } else {
             PlayingMode = PlayingModeE.DesignMode;
         }
     } else {
         PlayingMode                         = PlayingModeE.DesignMode;
         mnuEditDesignMode.IsCheckable       = true;
         m_lostPieceBlack.BoardDesignMode    = true;
         m_lostPieceWhite.Visibility         = System.Windows.Visibility.Hidden;
         m_chessCtl.BoardDesignMode          = true;
     }
     mnuEditDesignMode.IsChecked = (PlayingMode == PlayingModeE.DesignMode);
     SetCmdState();
 }
 /// <summary>
 /// Creates a game from a PGN text
 /// </summary>
 private void CreateGame() {
     if (m_chessCtl.CreateFromPGNText()) {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
     }
 }
Exemple #7
0
 //*********************************************************     
 //
 /// <summary>
 /// Let's the computer play against itself
 /// </summary>
 /// <param name="bFlash">           true to flash pieces whem moving</param>
 //  
 //*********************************************************     
 private void PlayComputerAgainstComputerBegin(bool bFlash) {
     PlayComputerAgainstComputerAsyncDel del;
     bool                                bMultipleThread;
     
     bMultipleThread     = (m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.DifferentThreadForSearch ||
                            m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.OnePerProcessorForSearch);
     PlayingMode         = PlayingModeE.ComputerAgainstComputer;
     StartAsyncComputing();
     if (bMultipleThread) {
         del = new PlayComputerAgainstComputerAsyncDel(PlayComputerAgainstComputerAsync);
         del.BeginInvoke(bFlash,
                         m_searchMode,
                         PlayComputerAgainstComputerEndCallback,
                         del);
     } else {
         PlayComputerAgainstComputerAsync(bFlash, m_searchMode);
     }
 }
 /// <summary>
 /// Test the computer play against itself
 /// </summary>
 /// <param name="iGameCount">   Number of games to play</param>
 /// <param name="searchMode">   Searching mode</param>
 private void TestComputerAgainstComputer(int iGameCount, SearchEngine.SearchMode searchMode) {
     bool    bMultipleThread;
     
     bMultipleThread = (m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.DifferentThreadForSearch ||
                        m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.OnePerProcessorForSearch);
     PlayingMode     = PlayingModeE.ComputerAgainstComputer;
     StartAsyncComputing();
     if (bMultipleThread) {
         Task.Factory.StartNew(() => TestComputerAgainstComputerAsync(iGameCount, searchMode));
     } else {
         TestComputerAgainstComputerAsync(iGameCount, searchMode);
     }
 }
Exemple #9
0
 //*********************************************************     
 //
 /// <summary>
 /// Toggle the player vs player mode.
 /// </summary>
 /// <param name="sender">   Sender object</param>
 /// <param name="e">        Event handler</param>
 //  
 //*********************************************************     
 private void playerAgainstPlayerToolStripMenuItem_Click(object sender, EventArgs e) {
     if (playerAgainstPlayerToolStripMenuItem.Checked) {
         PlayingMode = PlayingModeE.PlayerAgainstComputer;
         if (frmGameParameter.AskGameParameter(this)) {
             CheckIfComputerMustPlay();
         }
     } else {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
     }
 }
Exemple #10
0
 //*********************************************************     
 //
 /// <summary>
 /// Cancel the auto-play
 /// </summary>
 /// <param name="sender">   Sender object</param>
 /// <param name="e">        Event handler</param>
 //  
 //*********************************************************     
 private void cancelAutomaticPlayToolStripMenuItem_Click(object sender, EventArgs e) {
     if (PlayingMode == PlayingModeE.ComputerAgainstComputer) {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
     } else {
         m_chessCtl.CancelSearch();
     }
 }
Exemple #11
0
 //*********************************************************     
 //
 /// <summary>
 /// Creates a game from a PGN text
 /// </summary>
 /// <param name="sender">   Sender object</param>
 /// <param name="e">        Event handler</param>
 //  
 //*********************************************************     
 private void createAGameFromPGNToolStripMenuItem_Click(object sender, EventArgs e) {
     if (m_chessCtl.CreateFromPGNText()) {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
     }
 }
Exemple #12
0
 //*********************************************************     
 //
 /// <summary>
 /// Toggle the design mode. In design mode, the user can create its own board
 /// </summary>
 //  
 //*********************************************************
 private void ToggleDesignMode() {
     if (PlayingMode == PlayingModeE.DesignMode) {
         PlayingMode = PlayingModeE.PlayerAgainstPlayer;
         if (frmGameParameter.AskGameParameter(this)) {
             m_chessCtl.BoardDesignMode = false;
             if (m_chessCtl.BoardDesignMode) {
                 PlayingMode = PlayingModeE.DesignMode;
                 MessageBox.Show("Invalid board configuration. Correct or reset.");
             } else {
                 m_lostPieceBlack.BoardDesignMode = false;
                 panelWhiteLostPiece.Visible      = true;
                 CheckIfComputerMustPlay();
             }
         } else {
             PlayingMode = PlayingModeE.DesignMode;
         }
     } else {
         PlayingMode                      = PlayingModeE.DesignMode;
         m_lostPieceBlack.BoardDesignMode = true;
         panelWhiteLostPiece.Visible      = false;
         m_chessCtl.BoardDesignMode       = true;
     }
     SetCmdState();
 }
Exemple #13
0
 //*********************************************************     
 //
 /// <summary>
 /// Test the computer play against itself
 /// </summary>
 /// <param name="iGameCount">   Number of games to play</param>
 /// <param name="searchMode">   Searching mode</param>
 //  
 //*********************************************************     
 private void TestComputerAgainstComputerBegin(int iGameCount, SearchEngine.SearchMode searchMode) {
     TestComputerAgainstComputerAsyncDel del;
     bool                                bMultipleThread;
     
     bMultipleThread     = (m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.DifferentThreadForSearch ||
                            m_searchMode.m_eThreadingMode == SearchEngine.SearchMode.ThreadingModeE.OnePerProcessorForSearch);
     PlayingMode         = PlayingModeE.ComputerAgainstComputer;
     StartAsyncComputing();
     if (bMultipleThread) {
         del = new TestComputerAgainstComputerAsyncDel(TestComputerAgainstComputerAsync);
         del.BeginInvoke(iGameCount,
                         searchMode,
                         TestComputerAgainstComputerEndCallback,
                         del);
     } else {
         TestComputerAgainstComputerAsync(iGameCount, searchMode);
     }
 }