pipe-game

Un jeu de cartes à piper les une dans les autres - retour accueil

git clone git://bebou.netlib.re/pipe-game
Log | Files | Refs | README |

commit 46d494ff1d7fb9df02c517454785a1be403f8c4b
parent a2a6cbb656d5e0bc719f78ac5ce2da91bdb9c626
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Wed, 22 Jan 2025 21:11:20 +0100

Correction du bug du précédent commit

Je pense que l'on retirait trop ou pas assez de cartes à la création des
arguments / on changeait prématurément de menu courant.
Maintenant on détecte si au moins une création d'argument a eu lieu et
si oui on retire tout et on change de menu une seule fois une fois les
arguments gérés.

Sinon, comment est que strtok fonctionne ? Les appels successifs après
le premier sont magiques non ??

Diffstat:
Minterface.c | 12+++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/interface.c b/interface.c @@ -295,15 +295,17 @@ int main(int argc, char **argv) { quit=true; break; case 109: + bool created=false; char *token=strtok(res,"\n"); while(token != NULL) { - if(addcardtopile(token,&args,piles)>0) { - for(int i=0;i<=played.cardCount;i++) - removecardofpile(i,&played,piles); - curmenu=&hand; - } + if(addcardtopile(token,&args,piles)>0) created=true; token=strtok(NULL,"\n"); } + if(created) { + for(int i=0;i<=played.cardCount;i++) + removecardofpile(i,&played,piles); + curmenu=&hand; + } break; default: break;