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:
M | interface.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;