Posez votre question Signaler

[C#] Le Pendu [Résolu]

flocoplus 111Messages postés 11 janvier 2008Date d'inscription 16 juin 2010Dernière intervention - Dernière réponse le 11 oct. 2009 à 15:16
Bonjour,
Je suis actuellement sur un projet personnel de réalisation d'un pendu en C# en console.
Voici mes problème :
1) Comment vérifier que la variable "lettre" est compris dans la variable "mot" ?
En gros comment savoir si la lettre saisie par l'utilisateur est dans le mot à deviner.
2) Est-ce possible de charger une liste de mots qui sont dans un fichier texte et d'en choisir 1 aléatoirement?
Si oui, comment faire?
3) Comment compter le nombre de lettre que contient le mot choisie par l'ordinateur pour afficher le nombre exact de _ _ _ _ _ _ ?
Merci beaucoup d'avance ;)
Lire la suite 

[C#] Le Pendu »

9 réponses
Réponse
+0
moins plus
Salut,
si j'ai bien compris..:
1) Comment vérifier que la variable "lettre" est compris dans la variable "mot" ?
En gros comment savoir si la lettre saisie par l'utilisateur est dans le mot à deviner.

tu utilise la methode Contains() sur un objet string
2) Est-ce possible de charger une liste de mots qui sont dans un fichier texte et d'en choisir 1 aléatoirement?
Si oui, comment faire?

Tu crées un reader de la classe streamreader avec le chemin de ton fichier:
StreamReader reader=new StreamReader("Ton_chemin_vers_ton_fichier");
string test=reader.ReadToEnd();
//tu recupreres tous les mot dans un tableau....il faut que chaque mot soit séparé par une virgule dans mon exemple (mais cela peut etre un autre caractère....
string[] m=test.Split(';');
//pour l'aleatoire....y' peut-etre mieux....
Random ra=new Random ();
int a=ra.Next(m.Length);
3) Comment compter le nombre de lettre que contient le mot choisie par l'ordinateur pour afficher le nombre exact de _ _ _ _ _ _ ?
m[a].Length();

J'espere ca pourra t'aider!!
@+
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup :)
Oui ça va m'aider car maintenant je sais quelle fonction utiliser grâce à toi :D

Je vais étudier la MSDN de chaque fonction que je ne connais pas et je vais réussir à faire ce que je veux (j'espère :P).

Merci encore :)
Ajouter un commentaire
Réponse
+0
moins plus
Ah il y a aussi une autre que je ne sais pas comment faire ^^

Comment je peux faire pour dire que la lettre entrer va se mettre dans les _ _ _ _ _ _ à la 5ème position par exemple?
Je ne vois pas comment faire :S
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
peux etre un truc du style....apres je te laisse chercher...y'a surement mieux!!;-)))
string m = "test";
int cmpt=0;
if (m.Contains("e"))
{
int index = 0;
do
{
try
{
index = m.IndexOf("e", cmpt);
//traiter l'affichage à l'index retourné

cmpt = index;
}
catch
{
cmpt=m.lenght();
}

}
while(cmpt<m.lenght());
}
@+
Ajouter un commentaire
Réponse
+0
moins plus
Lol encore merci je vais me pencher sur ton bout de code car là je comprend rien ^^
(Je commence mon année de BTS Informatique de Gestion et je n'ai presque rien appris en C# :P)

Mais je suis assoiffé de savoir sur ce langage alors je vais étudier ton code pour le comprendre puis le modifier si besoin :)

Bonne journée et encore merci :)
Ajouter un commentaire
Réponse
+0
moins plus
Grâce à toi, j'ai fini la moitié de mon programme :P mais je n'arrive pas du tout à comprendre ton dernier code :S
Pourrais-tu juste me mettre un commentaire en face des lignes essentiels? Ça serait vraiment gentil de t'as part. Et je ne vois pas où il faut que je mette le code pour dire qu'il a trouvé une bonne lettre par exemple ^^

Merci beaucoup de ton aide :)
Ajouter un commentaire
Réponse
+0
moins plus
//objet string pour faire un test...
string m = "test";
//compteur d'index car une lettre peut apparaitre 2 fois dans "test" 't' apparait 2 fois
int cmpt=0;
//si le mot contient la lettre 'e' dans mon exemple
if (m.Contains("e"))
{
//variable interne
int index = 0;
//debut de la boucle pour trouver les differentes positions de la lettre dans le mot
do
{
//gestion des exception pour la fonction Indexof si on trouve plus de position dans le mot pour la lettre
try
{
//index est la position de la lettre dans le mot test
index = m.IndexOf("e", cmpt);
//traiter l'affichage à l'index retourné--mettre ton code pour afficher au bon endroit la lettre

//au prochain tour on recherchera à partir de la dernière position trouvée
cmpt = index;//c'est peut-etre cmpt= index++
}
//si on a depassé la longueur on met cmpt à la longueur du mot pour sortir de la boucle
catch
{
cmpt=m.lenght();
}

}
//tant qu'on est pas arrivé au bout du mot...
while(cmpt<m.lenght());
}
}
j'espere ca pourra t'éclairer!!!
@+
Ajouter un commentaire
Réponse
+0
moins plus
Merci énormément ! J'ai tout pigé :D
Ajouter un commentaire
Réponse
+0
moins plus
C'est bon j'ai réussi :)
Programme fini :)


J'ai même fait un menu avec "Jouer Solo" "Jouer à deux" "Score Solo" "Score à deux" "Quitter" :)

Merci encore pour ton aide :) sinon j'y serais encore :P
Ajouter un commentaire
Ce document intitulé « [C#] Le Pendu » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?