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 fdf888ea996c0fd1652ca7c164fe7ea5c4b7c460 parent fd7c4a4c02a01e07d1f20c415bcd65ab994d96c1 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Tue, 21 Jan 2025 17:33:29 +0100 Correction crash en dépassant le max d'une pile Et + de messages de debug Mais on peut dépasser hand de 1 ? Diffstat:
M | interface.c | | | 13 | ++++++++----- |
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/interface.c b/interface.c @@ -52,7 +52,7 @@ void removecardofpile(int cardposition, pile* p) { if (p->curline>0) { p->curline--; } } -char* moveselection(pile* p, pile** piles, char* direction, bool selection) { +pile* moveselection(pile* p, pile** piles, char* direction, bool selection) { int step; if (direction == "up") { step = -1; } else { step = 1; } @@ -65,9 +65,10 @@ char* moveselection(pile* p, pile** piles, char* direction, bool selection) { } p->curline=p->curline+step; } else { - if(p->name=="hand" && direction == "down") { return "args"; } - else if (p->name=="args" && direction == "up") { return "hand"; } + if (p->name=="hand" && direction == "down") { return piles[2]; } + else if (p->name=="args" && direction == "up") { return piles[0]; } } + return p; } void updatecmd(char* cmd, const pile p) { @@ -160,6 +161,8 @@ void display(pile* h, pile* p, pile* a, pile* curmenu, bool selection, char* cmd hr(biggestpile+1+a->cardCount+p->cardCount+1+a->cardCount+l); tb_printf(0, biggestpile+1+a->cardCount+p->cardCount+2+l, TB_DEFAULT, TB_BLACK, intern); tb_printf(0,30,TB_DEFAULT,TB_DEFAULT,curmenu->name); + char str[100];sprintf(str,"%d",curmenu->cardCount); + tb_printf(0,31,TB_DEFAULT,TB_DEFAULT,str); tb_present(); } @@ -196,11 +199,11 @@ int main(int argc, char **argv) { switch(ev.key) { /* up */ case 65517: - moveselection(curmenu,piles,"up",selection); + curmenu=moveselection(curmenu,piles,"up",selection); break; /* down */ case 65516: - moveselection(curmenu,piles,"down",selection); + curmenu=moveselection(curmenu,piles,"down",selection); break; /* <- */ case 65515: