Bon voila j´ai fais ça vite fait, mais apperement ça marche et j´ai essayé de pas trop changer ton code pour que tu comprennes, ça donne ça :
using namespace std;
int main()
{
int gagnant=0;
int a,b,c;
c=10;
cout < < " il y a 10 battonets et vous pouvez en enlever 1, 2 ou 3" < <endl;
while(c>1)
{
for(;;)
{
cout < < " joueur 1 entrez le nombre de batonnets que vous voulez enlever" < <endl;
cin > > a;
if ( a>4)
{
cout < < " vous ne pouvez pas enlever plus de 3 batonnets" < <endl;
cout < < " joueur 1 entrez le nombre de batonnets que vous voulez enlever" < <endl;
cin > > a;
}
if ( a<1)
{
cout < < " vous ne pouvez pas enlever moins d´un battonet" < <endl;
cout < < " joueur 1 entrez le nombre de batonnets que vous voulez enlever" < <endl;
cin > > a;
}
if ( (a>0)&&(a<4)) / / les else ne peuvent s´utiliser que avec if, pas avec while ! !!!!
{
c-=a;
cout < < " il reste " < < c < < " battonnets"<<endl;
if(c==1)
gagnant=1;
break;
}
}
for(;gagnant!=1;)
{
cout < < " joueur 2 entrez le nombre de batonnets que vous voulez enlever" < <endl;
cin > >b;
if ( b>3)
{
cout < < " vous ne pouvez pas enlever plus de 3 batonnets" < < endl;
cout < < " joueur 2 entrez le nombre de batonnets que vous voulez enlever" < <endl;
cin > > b;
}
if ( b<1)
{
cout < < " vous ne pouvez pas enlever moins d´un battonet " < < endl;
cout < < " joueur 2 entrez le nombre de batonnets que vous voulez enlever" < <endl;
cin > > b;
}
if ( (b>0)&&(b<4))
{
c-=b;// veut dire : c = c-b, comme 1+=2 signifie 1 = 1+2 = 3
cout < < " il reste " < < c < < " battonnets " < < endl;
if(c==1)
gagnant=2;
break;
}
}
}
if(gagnant==1) / / quand on teste une valeur ( est ce que c = 1) dans une boucle,
/ / on met 2 =, soit == . .. == test, et = on modifie la variable
{
cout < < " joueur 1 gagne" < <endl;
}
if(gagnant==2)
{
cout < < " joueur 2 gagne" < <endl;
}
system("PAUSE");
return 0;
}
Sinon, ton premier code était pas mal, t´avait a peu près compris...
Si tu connais pas le for, c´est pas grave, tu l´apprendras plus tard
Bon maintenant faut que j´y aille dsl...
mes parents sont en train de me gueuler dessus parcque...
enfin bref
salut!
et ++
merci hebuskiller, le for , je connais pour afficher les nombres de 1 à 100 mais je sais pas m´en servir pour ce genre de programme,
désolé si je t´ai déçu ^^
encore merci & a + !
Mais nan taurux, au contraire, c´est très bien!
Attend, en deux jours moi je savais pas faire ça...
et surtout, en géneral il faut pas mal de temps pour acquérir la logique du programmeur, mais toi, t´a tout compris tout de suite
. ..
Ton programme était très bien construit, sauf que tu l´a repété plusieurs fois... c´est tout,
en fait il suffisait de savoir le répeter avec while...
c´est tout ![]()
Moi il m´a fallu deux semaines pour lire les vingt premières pages de mon livre de programmation
En tout cas bonne chance, t´est bien parti!
d´ailleurs j´aimerais savoir sur quel site t´a appris ça . ..
Et sinon oublie pas que t´as http://www.fvirtman.fr
et sache qu´un programmeur digne de ce nom ne réussi jamais ses codes du premier coup ![]()
D´abord, parcqu´il y a toujours des choses à changer pour améliorer...
Et ensuite, parcque des ; oubliés, quand on écrit vite c´est fréquent...
merci hebuskiller, tu veux savoir sur quel site j´ai apris quoi ?
j´ai juste survolé les tuto des JYY ( les 10 premier fichiers)...
merci bcp de tes encouragements :D
je suis vraiment impatient d´acheter mon livre C++ ! !!
tu va acheté quoi finalement comme livre ? ![]()
je sais pas, peut etre " programmer en c++ pour les nuls" . ..
il a l´air pas mal, je peut commencer par ça :D
bon , hebuskiller , je pense te poser quelques questions...
1)déjà, j´ai jamais utilisé < cstdio>
a quoi il sert ?
2)la j´ai pas pigé ! " for ( ;;) " c´est quoa ça ? ? j´ai tjrs utilisé for comme ça :
" for(i=1;i<=12;i=i+1)"
la je comprend pas...
3) bon voila, la tu met :
for(;gagnant!=1;)
déja je comprend pas les points virgules, a quoi servent-t-ils ?
et le truc quand je le lis , je lis " tant que le gagnant n´est pas le joueur 1, faire l´action qui suit"
mais on utilise tant que avec " while" et pas " for" ( enfin je croi...) donc ça doit pas etre ça, explique moi steuplait...
et aussi, peut etre me suis-je trompé et " 1" = " il reste 1 battonnets"ou autre.. en tout cas explique moi la parce que...
4) " break;"
la je connais pas . .. peut etre devraije continuer les tuto de JYY pour comprendre . ..
explique moi juste ce qu´il fout la...
bon le && , dans les tuto il dit que c´est que pour les habituers , mais je pense avoir compris, en tout cas quand il s´utilise avec if...
le == je l´avais oublié, ça c ok !
et j´ai pas compris mais t´a créé une variable " gagnant" ?
rectification :
dans le paragraphe qui commence par " bon le &&" :
" S´"il s´utilise avec if...
c´est un bon livre pour les débutants ou pas svp ? je vais commandé un livre aujourd´hui et j´aimerais etre sur de ce que j´achete :/
je répete je suis débutant je suis encore au cour de jyy juste avant les cours sur la SDL
http://www.amazon.fr/exec/obidos/ASIN/2212115024/qid=1109240870/sr=2-1/ref=sr_2_3_1/402-0530278-2867316
je peux pas te répondre...
si on te répond que c un bon livre je prendrai ptetre le meme :D
ce n´est pas le fait que l´ont dise que sa sois un bon livre mais du fait qu´il nous explique les bases, le debut m´enfin ont ce comprend ! ![]()
ouaip, mais la aujourd´hui ça me fait chier j´etait pas la et ce soir non plus je peux pas ! !
J´ai pas touché le C++ aujourd´hui
, esperons que j´ai rien oublié, me reste plus que demain car dimanche je suis pas la, mais il me reste pas mal de devoir
(((( , c´est la fin des haricots^^
surtout qu´apré les vacances je n´aurai qu´une demi heure pas jour et encore...
bon @+
oubliez pas de répondre a mes questions ( voir plus haut)
![]()
en fait j´ai pu travailler la programmation que jeudi et vendredi..
dimanche et samedi je pouvais pas et la c cho pendant les cours...
c´est pour ça que j´ai commandé un livre de claude delannoy sur le C ( et non le c++) pour que quand j´apprendrais le c++ ça passe mieux...
j´ai une question, est-ce que dans les fonctions :
int, for, echange, struct, if, else, while, cout, cin, void et puiss; il y en a qui n´existent pas dans le C ?
up up up
![]()
up
up
up
up :up
if ( a>4)
{
cout < < " vous ne pouvez pas enlever plus de 3 batonnets" < < endl;
cout < < " joueur 1 entrez le nombre de batonnets que vous voulez enlever" < < endl;
cin > > a;
}
regard bien , la si le joueur prend 4 batonné il y aura peut etre un bug!!!!
sonic66 > > ah ouaip, jai été vite en le tapant, il est possible que j´ai fait des erreurs....
taurux > > Dsl de pas t´avoir répondu plus tot, j´étais parti en ptite semaine de vacance pépère ![]()
Donc voila, si t´es encore là :
1) en fait ça fait longtemps que j´ai oublié quel fichier sert a quoi
, donc je met tous les principaux ( ces trois là) voila
2)for est a peu près l´equivalent de while, mais il est plus précis et plus pratique, c´est d´ailleurs pour ça que je préfère l´utiliser lui.
Voila comment se construit le for :
for( initialisation de départ ; test ; initialisation de re départ)
exemple:
int voiture;
for(voiture=1 ; voiture<4 ; voiture = voiture+1);
{
/ /programme
}
voila ce petit(mais alors très petit)programme
met tout dabord, au premier passage(seulement) voiture à 1, dans la deuxième partie il vérifie si voiture est plus petit que 4, et une fois le programme terminé il augmentera voiture de 1
Voila
j´espère que tu as compris, en fait for possède 3 fonctions, alors que while une seule ( test)...
Et donc for(;;), c´est un for vide, sans condition testée, donc il se répète a l´infini
voili voila
3)
eh ben si justement
while() / /vide
{
/ /programme
}
est égal à
for(;;) / /vide
{
/ /programme
}
voila
et 4) justement, je t´ai dit plus haut que
for(;;), cela se répetera a l´infini, donc pour casser cet infini on utilise break qui casse, soit un for, soit un while, mais pas un if
Car un if ne s´execute qu´une fois, alors que tant que la condition est bonne, avec while ou for et ben on ré-execute
voila hésite pas à me redemander des trucs si t´a pas compris certains...
++