CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] Aide pour jeu du pendu

BaroudKelp
BaroudKelp
Niveau 10
21 octobre 2013 à 01:38:18

Bonsoir(ou bonjour),

Je me suis mis en tête de réaliser un petit jeu de pendu en console. Au début tout va bien, puis arrive le moment où, une fois que le joueur a entré une lettre, comment faire pour:
- si la lettre est contenu dans le mot, indiquer la combientième lettre du mot est-ce
?
Je sais pas si je dois utiliser un vector, ou si en passant directement par un tableau string il y a moyen de le faire.

Merci de votre aide!

[denshaotoko]
[denshaotoko]
Niveau 25
21 octobre 2013 à 02:41:52

- si la lettre est contenu dans le mot, indiquer la combientième lettre du mot est-ce
?
Je sais pas si je dois utiliser un vector, ou si en passant directement par un tableau string il y a moyen de le faire.
__
-> En partant de ton idée, tu peux parcourir ton mot une fois, et si tu tombes sur la lettre en question lors de ton parcours, tu y stockes l'indice "i" de la case contenant la lettre en question dans une variable "tmp" par exemple
et ta lettre sera positionné à la tmp+1 ème lettre du mot
Par contre, si la lettre est présente plusieurs fois dans le mot, tu peux utiliser un vector et y inserer au fur et à mesure du parcours du mot l'indice de l'occurence

Après, je pense que tu peux voir par là, il peut y avoir des choses qui peuvent te plaire dans la classe <string> :
http://www.cplusplus.com/reference/string/string/
http://www.cplusplus.com//reference/string/string/find/
Histoire de voir s'il n'y a pas des méthodes bien faite qui te vont bien etc...

BaroudKelp
BaroudKelp
Niveau 10
21 octobre 2013 à 11:09:46

J'ai trouvé
Find content in string (public member function )
rfind :d) Find last occurrence of content in string (public member function )
find_first_of :d)Find character in string (public member function )
find_last_of :d)Find character in string from the end (public member function )
find_first_not_of :d)Find absence of character in string (public member function )
find_last_not_of :d)Find non-matching character in string from the end (public member function )

Mais le nom des operations ne correspondent pas vraiment avec ce que ça fait du coup je pense qu'ils se sont gourée quelque part. Mais supposons que un de ceux là permet de chercher une lettre dans le string, comment dire la combientième est-ce?

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 11:54:11

find :d) find characters in the string
find_first_of :d) find first occurrence of characters
find_first_not_of :d) find first absence of characters
find_last_of :d) find last occurrence of characters
find_last_not_of :d) find last absence of characters

Tes fonctions renvoient un size_t, qui indique j'imagine à quelle position se trouve le caractère qui t'intéresse. J'ai trouvé un exemple qui indique comment utiliser la fonction et stocker la valeur dans une variable :

http://pastebin.com/79p4Bjxa

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 11:57:06

Et vu qu'il peut y avoir plusieurs fois une même lettre dans ton mot mystère, faudra pas utiliser first ou last mais bien find ou rfind. J'viens de voir que j'ai confondu ces deux fonctions d'ailleurs, regarder sur internet si l'une est mieux que l'autre.

BaroudKelp
BaroudKelp
Niveau 10
21 octobre 2013 à 12:00:50

Je vois, j'ai fais un test en cherchant "e" dans le mot "test" justement. Et il m'a dit "1" sauf que c'est la deuxième,vu que la 1ère est considéré comme 0 comment faire +1 au résultat du find?

Et c'est quoi "unsigned found"

BaroudKelp
BaroudKelp
Niveau 10
21 octobre 2013 à 12:04:25

En fait j'ai trouvé, par contre avec rfind il m'indique pas si il y a plusieurs fois la même lettre.

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 13:24:29

Ouais, j'avais un doute, c'est pour ça qu'il fallait vérifier si find était mieux que rfind. Et c'est visiblement le cas, comme le montre l'exemple de mamiemando sur ce lien :
http://www.commentcamarche.net/forum/affich-5483247-c-fonction-de-recherche-dans-un-string

T'as une chaine déclarée en string (ton mot à trouver) et une variable qui contient la lettre à trouver. Et avec la boucle for de l'exemple, tu peux trouver toutes les occurrences de ladite lettre.

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 13:32:31

http://pastebin.com/uRyJ6iC0 >> 0 2 4 9 12

BaroudKelp
BaroudKelp
Niveau 10
21 octobre 2013 à 14:29:20

c'est bien plus compliqué que ce que je croyais en fait :(
Tu penses que je devrais faire une fonction pour identifier la position de la lettre? :(

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 14:35:44

http://pastebin.com/uRyJ6iC0 >> 0 2 4 9 12

??? :(

Chocolayte
Chocolayte
Niveau 73
21 octobre 2013 à 14:37:29

(Et tu peux en faire une fonction oui, mais ce n'est pas bien compliqué. T'as juste à faire un copier/coller du code et à le mettre correctement en place. ^^)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware