コード例 #1
0
        /// <summary>
        /// Frappe le clou quand la touche espace est enfoncée, c'est ici que les manches se calculent.
        /// </summary>
        public override async void PressKey(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space && !isKeyDown)
            {
                isKeyDown = true;

                #region Tour joueur
                //Ramène l'image de la table devant le clou.
                table.BringToFront();

                //Le joueur tape le clou
                player.Blow(nail, bar.CaptureCursorPower());

                //Vérifie si le joueur a gagné
                if (HasWin())
                {
                    //Stop l'éxecution de la méthode
                    return;
                }

                //C'est au tour de l'IA de jouer
                UpdateTurns(false);
                #endregion
                #region Tour UI
                //Update l'UI
                UpdateStatusLabel();

                //Simule le temps de réflexion de l'IA
                await Task.Delay(2000);

                //L'IA frappe le clou
                ia.Blow(nail, ia.CalculateBlowPower(nail, player));

                //Vérifie si l'IA a gagnée
                if (HasWin())
                {
                    //Stop l'éxecution de la méthode
                    return;
                }

                //C'est au tour du joueur de jouer
                UpdateTurns(true);
                UpdateStatusLabel();

                //Relance le curseur sur la barre d'énergie
                bar.StartCursor();
                #endregion

                isKeyDown = false;
            }
        }