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 :

Aide pour programme sur C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Aide pour programme sur C#
    Bonjour,

    Voilà j'ai un petit projet à faire pour l'école, faut que je fasse un jeu de dés sous c# qui fonctionne avec l'invite de commandes (via visual studio 2005). Le problème c'est que je suis pas très doué en c#, je nage un peu.

    Faut que je réalise 3 phases du jeu via un menu:
    Jeu 1: 2 joueurs jouent à tour de rôle, le premier arrivé à 50 a gagné
    Jeu 2: 2 joueurs jouent à tour de rôle, le premier arrivé à 50 a gagné, un 6 permet de rejouer
    Jeu 3: 2 joueurs jouent des séries qui s'arrêtent avec un 1 ou par la demande du joueur ou par victoire de 100 points.

    J'ai commencé le premier jeu, et il marche, mais ma fonction random n'est pas si aléatoire que ça, j'aimerai l'améliorer.

    using System;

    public class jeu1
    {
    public static void Main()
    {
    int desjoueura, desjoueurb, sommea = 0, sommeb = 0, i, delay = 990000000;
    Console.WriteLine("Bienvenue dans le jeu 1");
    while (sommea <= 50 & sommeb <= 50)
    {
    for (i = 0; i < delay; i++) ;
    Console.WriteLine("Le joueur A lance le dé");
    Random rdmz = new Random();
    desjoueura = rdmz.Next() % 7;
    Console.WriteLine("Le joueur A a fait " + desjoueura);
    Console.WriteLine("Le joueur B lance le dé");
    desjoueurb = rdmz.Next() % 7;
    Console.WriteLine("Le joueur B a fait " + desjoueurb);
    sommea = sommea + desjoueura;
    sommeb = sommeb + desjoueurb;
    }
    if (sommea >= 50) { Console.WriteLine("Le joueur A a gagné avec " + sommea + " points"); }
    else
    { Console.WriteLine("Le joueur B a gagné avec " + sommeb + " points"); }
    }
    }


    J'ai commencé le jeu 2 mais ca marche pas vraiment car je sais pas où mettre la condition du 6, dans le tant que, le si?

    Help

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Bonjour,

    Random renvoie une séquence de nombres pseudo-aléatoires et non pas aléatoires. Il est par contre possible, en utilisant la surchage Random(int Seed) de spécifier un nombre utilisé pour calculer sa valeur initiale. Pour avoir quelque chose d'assez aléatoire, il suffit par exemple de prendre DateTime.Now.Ticks qui représente le nombre de ticks (intervalles de 100 ns depuis le 1er janvier 0001) de la date / heure actuelle.

    Pour gérer le 6, tu peux utiliser une boucle sur la phase de jeu de chaque joueur par exemple ici pour le joueur A:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    do {
       desjoueura = rdmz.Next() % 7;
       Console.WriteLine("Le joueur A a fait " + desjoueura);
    } while(desjoueura == 6);
    Ce code boucle tant que le dé joué par le joueur A est 6.

    Après, y'a pas mal d'autres trucs à revoir dans le code à mon avis, mais ce n'était pas l'objet de ta question

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tu peux toujours les dire, ca me ferait pas de mal.

  4. #4
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Après, y'a pas mal d'autres trucs à revoir dans le code à mon avis, mais ce n'était pas l'objet de ta question
    oui c'est clair, au moins change ça :


    for (i = 0; i < delay; i++) ;
    par un
    Thread.Sleep(nbMilliSeconde)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ah c'est parce que j'ai mis un & au lieu d'un || non?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Non, c'est moi qui me suis trompé... lol
    D'ailleurs, il faudrait remonter l'ajout à la somme dans la boucle do { } while(); dans le jeu 2.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Pourquoi est ce que le random peut générer la valeur 0?

Discussions similaires

  1. Aide pour programmer sur R
    Par youchlure dans le forum R
    Réponses: 2
    Dernier message: 17/09/2009, 11h38
  2. Réponses: 2
    Dernier message: 19/04/2008, 00h02
  3. [Dev-C++] Aide pour programmer avec Qt 4
    Par stone dans le forum EDI
    Réponses: 3
    Dernier message: 02/02/2006, 08h58
  4. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  5. aide pour requete sur 2 tables avec clé étranere
    Par richton95 dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/12/2005, 13h32

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