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] Comparaison d'adresses

darkhendrik
darkhendrik
Niveau 10
10 mars 2012 à 22:13:09

Bonsoir à tous,

Dans le cadre d'un de mes cours, je dois réaliser un jeu du type "mastermind" : combinaison de 5 pions (je sais dans le vrai jeu c'est 4... :) )avec 8 couleurs différentes.

J'essaie de créer une fonction qui me permet de savoir si les couleurs entrées sont correctes (j'y suis arrivé) mais je n'arrive pas à savoir si elles sont à la bonne place! :-(

J'utilise la fonction strchr et la fonction strrchr qui me donnent deux pointeurs de type char* et ainsi j'ai l'addresse du caractère mentionné en argument.

Je sais que cette méthode ne fonctionne pas dans le cas très rare où j'ai plus de deux fois la même couleur... :ange:

Cependant le programme fonctionne bien pour savoir si la combinaison entrée contient les bons pions... Par contre pour leur place c'est autre chose : j'ai inséré les lignes de codes suivantes :

if(pointeurPremierePosition==&entree[i])//si les deux adresses sont identiques cf pg 158 cours
{
printf(" et il est a la bonne position");
}
afin de savoir s'ils pointent vers la même position et ainsi savoir si le pion est à la bonne place et de bonne couleur.
entree est le tableau de combinaison que l'utilisateur a entré et le pointeurPremierePosition est l'affectation suivante :
pointeurPremierePosition=strchr(solution, entree[i]);[solution est un tableau de char généré "aléatoirement" par le compilateur en début de programme]

Cependant lors de mes tests, je n'entre JAMAIS dans la boucle...

Malgré cela, je ne vois pas en quoi comparer mes deux adresses ne fonctionne pas :pf:

Si vous aviez une idée ce serait sympa de la faire partager, je vous remercie d'avance :)

TurkMemleket
TurkMemleket
Niveau 10
13 mars 2012 à 11:07:34

"Cependant lors de mes tests, je n'entre JAMAIS dans la boucle... "

Où est-ce que tu vois une boucle ?

Et sinon, je trouve que ta méthode est un peu casse-gueule, pourquoi n'essaierais-tu pas de comparer tes couleurs à l'aide d'un tableau d'énumérations ?

le-chocolat
le-chocolat
Niveau 9
14 mars 2012 à 13:12:06

si tu veux je l'ai fait en java
je vérifie le nombre de couleur bien placé comme ça :

private void genererCombi(int nb) // tout rouge pour tester
{
secret[0]=Color.red;
secret[1]=Color.red;
secret[2]=Color.red;
secret[3]=Color.red;
}

public int getNbBienPlaces(Color uneCombi[])
{
int resu,i;
resu=0;
for(i=0;i<nbcolor;i++)
{
if (uneCombi[i]==secret[i]) resu++;
}
if (resu==nbcolor) gagne=true;
return resu;
}

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