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 179aebe31f71f6e77ad7d5d3c7b2a34fb60d32d3
parent 17272ab530f49e4a674f2012c748f15c8aec427f
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Wed, 29 Jan 2025 21:49:19 +0100

enum pour les directions

C'est beauuuucoup mieux que de faire des strcmp etc, berk
Bug connu : ça semble avoir cassé la plupart des passages de pile en
pile, oups

Diffstat:
Minterface.c | 29+++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/interface.c b/interface.c @@ -28,6 +28,7 @@ struct pile { }; enum pileid { HAND, PLAYED, ARGS, PLAYEDARGS, PLAYEDENNEMY, PLAYEDENNEMYARGS }; +enum directions { UP, DOWN, LEFT, RIGHT }; int max(int a, int b) { return a > b ? a : b; } int min(int a, int b) { return a < b ? a : b; } @@ -103,8 +104,8 @@ void removecardofpile(int cardposition, struct pile* p, struct pile **piles) { p->curline--; } -struct pile* mvcardup(struct pile* p, struct pile** piles, char* direction, bool selection) { - int step = strcmp(direction,"up")==0 ? -1 : 1 ; +struct pile* mvcardup(struct pile* p, struct pile** piles, int direction, bool selection) { + int step = direction==UP ? -1 : 1 ; if (p->curline+step >= 0 && p->curline+step < p->cardCount) { if (selection) { char* tmp; @@ -115,9 +116,9 @@ struct pile* mvcardup(struct pile* p, struct pile** piles, char* direction, bool p->curline=p->curline+step; return p; } - if (strcmp(p->name,"hand")==0 && strcmp(direction,"down")==0 && piles[ARGS]->cardCount>0) + if (strcmp(p->name,"hand")==0 && direction==DOWN && piles[ARGS]->cardCount>0) return piles[ARGS]; - else if (strcmp(p->name,"args")==0 && strcmp(direction,"up")==0 && piles[HAND]->cardCount>0) + else if (strcmp(p->name,"args")==0 && direction==UP && piles[HAND]->cardCount>0) return piles[HAND]; return p; } @@ -328,19 +329,19 @@ int main(int argc, char **argv) { switch(ev.key) { /* up */ case 65517: - curmenu=mvcardup(curmenu,piles,"up",selection); + curmenu=mvcardup(curmenu,piles,UP,selection); break; /* down */ case 65516: - curmenu=mvcardup(curmenu,piles,"down",selection); + curmenu=mvcardup(curmenu,piles,DOWN,selection); break; /* -> */ case 65514: - curmenu=mvcardlr(curmenu, piles, &selection, 0); + curmenu=mvcardlr(curmenu, piles, &selection, RIGHT); break; /* <- */ case 65515: - curmenu=mvcardlr(curmenu, piles, &selection, 1); + curmenu=mvcardlr(curmenu, piles, &selection, LEFT); break; case 13: selection=!selection; @@ -384,13 +385,13 @@ int main(int argc, char **argv) { selection=true; curmenu=piles[i]; if(curmenu!=prevcurmenu) if(ev.x<prevpos.x) - curmenu=mvcardlr(prevcurmenu, piles, &selection, 1); + curmenu=mvcardlr(prevcurmenu, piles, &selection, LEFT); else if (ev.x>prevpos.x) - curmenu=mvcardlr(prevcurmenu, piles, &selection, 0); + curmenu=mvcardlr(prevcurmenu, piles, &selection, RIGHT); if(ev.y>prevpos.y) - curmenu=mvcardup(curmenu,piles,"down",selection); + curmenu=mvcardup(curmenu,piles,DOWN,selection); else if (ev.y<prevpos.y) - curmenu=mvcardup(curmenu,piles,"up",selection); + curmenu=mvcardup(curmenu,piles,UP,selection); } else { if(piles[i]->cardCount>0) { curmenu=piles[i]; } if(curmenu==piles[HAND] && piles[ARGS]->begin.y < ev.y && ev.y < piles[ARGS]->end.y ) { curmenu=piles[ARGS]; } @@ -407,10 +408,10 @@ int main(int argc, char **argv) { selection=false; break; case 65508: /*MouseWheelUp*/ - curmenu=mvcardup(curmenu,piles,"up",selection); + curmenu=mvcardup(curmenu,piles,UP,selection); break; case 65507: /*MouseWheelDown*/ - curmenu=mvcardup(curmenu,piles,"down",selection); + curmenu=mvcardup(curmenu,piles,DOWN,selection); break; } }