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 817795817215f13c7fce23d90ef0886cfeee0ac0
parent f3393ef5e78986a0f1ed3e416a33486d14e3f047
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Tue, 28 Jan 2025 19:04:14 +0100

Début de l'affichage avec des boiti boites

Diffstat:
Minterface.c | 41+++++++++++++++++++++++++----------------
1 file changed, 25 insertions(+), 16 deletions(-)

diff --git a/interface.c b/interface.c @@ -29,18 +29,18 @@ int nblines(char *str) { return l; } -int hr(int rowoffset, int lineoffset, int length) { +int hr(int coloffset, int lineoffset, int length) { char ruler[length+1]; for(int i=0;i<length;i++) ruler[i]='-'; ruler[length]='\0'; - tb_printf(rowoffset, lineoffset, TB_DEFAULT, TB_DEFAULT, ruler); + tb_printf(coloffset, lineoffset, TB_DEFAULT, TB_DEFAULT, ruler); return lineoffset+1; } -void vr(int rowoffset, int lineoffset, int length) { +void vr(int coloffset, int lineoffset, int length) { for (int i=0;i<length;i++) - tb_printf(rowoffset,lineoffset+i,TB_DEFAULT, TB_DEFAULT, "|"); + tb_printf(coloffset,lineoffset+i,TB_DEFAULT, TB_DEFAULT, "|"); } pile createpile(char *name) { @@ -154,26 +154,39 @@ void file2pile(FILE* fp, pile *p, pile **piles) { p->curline=0; } -int displaypile(pile p, pile curmenu, int rowoffset, int lineoffset, bool selection) { +void displaybox(int coloffset, int lineoffset, int width, int length) { + hr(coloffset+1,lineoffset,width-1); + hr(coloffset+1,lineoffset+length,width-1); + vr(coloffset,lineoffset+1,length-1); + vr(coloffset+width,lineoffset+1,length-1); + tb_print(coloffset,lineoffset,TB_DEFAULT,TB_DEFAULT,"+"); + tb_print(coloffset+width,lineoffset,TB_DEFAULT,TB_DEFAULT,"+"); + tb_print(coloffset,lineoffset+length,TB_DEFAULT,TB_DEFAULT,"+"); + tb_print(coloffset+width,lineoffset+length,TB_DEFAULT,TB_DEFAULT,"+"); +} + +int displaypile(pile p, pile curmenu, int coloffset, int lineoffset, bool selection) { int newlineoffset=lineoffset; + int maxwidth=CARD_NAME_SIZE+2; int maxlen=p.cardCount+1; + displaybox(coloffset,lineoffset,maxwidth,maxlen); + coloffset++;lineoffset++; for (int i=0;i<p.cardCount;i++) { char *name = strcmp(p.cards[i],"none")==0 ? " " : p.cards[i] ; if (i==p.curline && p.name == curmenu.name ) { int background = selection ? TB_BLUE : TB_WHITE ; - tb_printf(rowoffset, lineoffset+i, TB_BLACK, background, name); + tb_printf(coloffset, lineoffset+i, TB_BLACK, background, name); } else - tb_printf(rowoffset, lineoffset+i, TB_DEFAULT, TB_DEFAULT, name); + tb_printf(coloffset, lineoffset+i, TB_DEFAULT, TB_DEFAULT, name); newlineoffset++; } - hr(rowoffset,newlineoffset,7); return newlineoffset+1; } -int displaytextblock(char *text, int rowoffset, int lineoffset) { - tb_printf(rowoffset, lineoffset, TB_DEFAULT, TB_DEFAULT, text); +int displaytextblock(char *text, int coloffset, int lineoffset) { + tb_printf(coloffset, lineoffset, TB_DEFAULT, TB_DEFAULT, text); int nbl=nblines(text)+lineoffset; - hr(rowoffset,nbl,2); + hr(coloffset,nbl,2); return nbl+1; } @@ -195,15 +208,11 @@ int display(pile** piles, pile curmenu, bool selection, char* cmd, char* res, ch displaypile(*piles[PLAYEDARGS], curmenu, 0, 0, selection); displaypile(*piles[PLAYED], curmenu, CARD_NAME_SIZE+2, 0, selection); - lineoffset1=displaypile(*piles[HAND], curmenu, CARD_NAME_SIZE*2+2, 0, selection); + lineoffset1=displaypile(*piles[HAND], curmenu, CARD_NAME_SIZE*2+2, 0, selection); lineoffset1=displaypile(*piles[ARGS], curmenu, CARD_NAME_SIZE*2+2, lineoffset1, selection); lineoffset2=displaypile(*piles[PLAYEDENNEMY], curmenu, CARD_NAME_SIZE*3+2, 0, selection); displaypile(*piles[PLAYEDENNEMYARGS], curmenu, CARD_NAME_SIZE*4+2, 0, selection); - vr(CARD_NAME_SIZE,0,lineoffset1); - vr(CARD_NAME_SIZE*2,0,max(lineoffset1,lineoffset2)); - vr(CARD_NAME_SIZE*3,0,max(lineoffset1,lineoffset2)); - vr(CARD_NAME_SIZE*4,0,max(lineoffset1,lineoffset2)); lineoffset1=hr(0,max(lineoffset1,lineoffset2),CARD_NAME_SIZE*5); int lo=lineoffset1;