IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Compte à rebours


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut Compte à rebours
    Bonjour ,

    Je souhaiterai faire un compte à rebours pour un petit programme en mode console et en fait je souhaiterai avoir un compte à rebours de 2 min allant jusqu'a 0 , j'ai chercher un peu sur le net et j'ai pu voir qui fallait un "Timer" mais le soucis j'ai trouvé que des exemples qui me présente de quelle façon il faut faire pour l'utiliser en interface graphique mais en mode console rien , je vois pas vraiment comment l'utiliser et si c'est possible d'utiliser Timer en console à moins qu'il y'a autre une autre facon de faire, si quelqu'un pourrait m'expliquer se serait vraiment sympa

    Merci

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonjour,

    une solution très simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            static void Main(string[] args)
            {
                int secondsToWait = 20; // Attendre 20 secondes
     
                while (secondsToWait != 0)
                {
                    Console.WriteLine("Temps: " + secondsToWait--);
                    Thread.Sleep(1000);
                }
     
                Console.Read();
            }
    Attention cependant , Thread.Sleep n'est pas un exemple de précision donc si c'est pour un décompte banale , ça fonctionne très bien , par contre si c'est pour une mesure de temps exacte , c'est catastrophique , et je te recommanderai plutôt d'utiliser Stopwatch. Mais si c'est le premier cas , pas de soucis

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut
    Oui c'est pour un compte à rebours des plus basiques , je vais essayer ce que tu me proposes . Merci pour ton aide et je te tiens au courant

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut
    Alors j'ai essayé ton code c'est ça qui me faut pour faire ce que j'ai à faire , le soucis que je rencontre c'est que ce que je voudrais que la suite de mon programme s'execute en meme temps que le compte à rebours continue de tourne car la quand je fais sa lance le compte à rebours et ensuite sa lance le reste de mon programme comme tu va le voir dans mon programme sa me parait logique que sa fasse celà mais je souhaiterai faire les deux simultanément ça par contre et en plus dans mon cas là sa fait planter le programme car quand le timer est fini y faut que j'appuie entrée pour passer à la saisie et le programme comprend qu'il y'a eu aucune saisie donc tout plante , Une solution? Quel est facon de s'y prendre ? En esperant que sa je suis pas trop chiant mais en faite j'aime bien savoir comment sa fonctionne et pas et pas copier du code pour juste que sa marche voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     static void Timer()
            {
                int secondsToWait = 20; // Attendre 20 secondes
     
                while (secondsToWait != 0)
                {
                    Console.WriteLine("Temps: " + secondsToWait--);
                    Thread.Sleep(1000);
                }
     
                Console.Read();
            }
            static void Main(string[] args)
            {
     
     
     
     
                //const
                const int maxValue = 100;
                const int minValue = 0;
                //var
                int saisieNombre;
                int chiffreGenerator;
                string rep;
                Random chiffreAleatoire = new Random();
     
                Console.WriteLine("==============================================");
                Console.WriteLine("           LE JEU DU PLUS OU MOINS            ");
                Console.WriteLine("==============================================");
                //saisie
                do
                {
                    Timer(); 
     
                    chiffreGenerator = chiffreAleatoire.Next(0,100);
                    Console.Write(Environment.NewLine+"Saisir un chiffre compris entre 0 et 100:");
                    saisieNombre = Convert.ToInt32(Console.ReadLine());
                    while (saisieNombre < minValue || saisieNombre > maxValue)
                    {
                        Console.Write(Environment.NewLine+"Erreur , Veuillez reeffectuer votre saisie:");
                        saisieNombre = Convert.ToInt32(Console.ReadLine());
                    }
     
     
     
                    //traitement 
                    while (saisieNombre != chiffreGenerator)
                    {
     
                        if (saisieNombre < chiffreGenerator)
                        {
                            Console.WriteLine("C'est plus !");
                        }
                        if (saisieNombre > chiffreGenerator)
                        {
                            Console.WriteLine("C'est moins !");
                        }
     
                        if(saisieNombre == chiffreGenerator) 
                        {
                            Console.WriteLine("Bien Joué !");
                        }
     
                        Console.Write(Environment.NewLine+"Saisir un chiffre compris entre 0 et 100:");
                        saisieNombre = Convert.ToInt32(Console.ReadLine());
                        while (saisieNombre < minValue || saisieNombre > maxValue)
                        {
                            Console.Write(Environment.NewLine+"Erreur , Veuillez reeffectuer votre saisie:");
                            saisieNombre = Convert.ToInt32(Console.ReadLine());
                        }
     
     
     
                    }
     
                    Console.Write("Voulez vous reeffectuer une partie: ");
                    rep = Console.ReadLine();
                    while (rep.ToUpper() != "O" && rep.ToUpper() != "N")
                    {
                        Console.WriteLine("Nous n'avons pas compris votre reponse , resaissir");
                        rep = Console.ReadLine();
                    }
     
                } while (rep.ToUpper() == "O");
            }
     
        }
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut
    avec un Thread en créant une fonction celà lance le compte à rebours simultanément que le reste du programme mais le compte à rebours se retrouve sur ma ligne de saisie et ensuite je souhaiterai savoir comment mettre fin au programme dés que le décompte est fini sachant que ma fonction est de type void ?

Discussions similaires

  1. [timer] Compte à rebours pour redirection !
    Par Raideman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2005, 20h07
  2. Compte à rebours
    Par Anduriel dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/12/2005, 20h12
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo