Ah j'ai trouvé
http://pastebin.com/pMB6gy5j
J'ai juste rendu ton code plus propre niveau indentations/espaces et j'ai mis toutes tes variables en dehors de la boucle pour éviter les problèmes de scope
J'ai compris pour tous les "cout << endl;" que tu fais en mode 2 joueurs. Je t'ai mis un exemple pour faire pareil en plus propre avec une boucle. Bon, c'est pas très jolie cette méthode, mais c'est un exercice d'entraînement hein, on va dire que ça passe. Un manière un peu plus propre (mais qui en même temps ne l'est pas vraiment
) sous Windows, tu peux utiliser :
system("cls");
pour effacer la console. Mais attention, ça ne marche que sous Windows. Ce genre d'appels sytème ne sont pas portables (ici la commande cls par exemple ne fonctionnera pas sous Linux) et donc en général c'est à proscrire. Mais dans le cadre d'un exercice, on va pas s'embêter avec ce genre de détails...
Ton erreur était qu'au lieu d'écrire:
if(rejouers == stop)
{
rejouer = 1;
}
Tu as écris :
if(rejouers == stop)
{
rejouer == 1;
}
(rejouer == 1) ça ne fait que tester si rejouer vaut 1. Ici ça retourne 0 (faux) car à ce moment là rejouer vaut 0, mais ça n'affecte pas 1 à rejouer. Donc rejouer valait toujours 0, ce qui explique pourquoi ça ne s'arrêtait pas
Ton programme fonctionnait, à cette petite erreur près
Après, j'ajouterai que tu dois penser à indenter correctement ton code pour qu'il soit plus beau. Autant prendre les bonnes habitudes tout de suite
Et pense aussi à t'entraîner à vérifier ce que l'utilisateur entre. Simple exemple : quand tu demandes la difficulté, si je rentre une lettre, ton programme fait n'importe quoi
Une amélioration utile serait de vérifier que l'utilisateur rentre bien un chiffre et que c'est ente 1 et 4.
Voilà, bonne continuation !