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 67f6127295ad7ce923ff5450fdf85c85bbc94919
parent fcf3ff7cfee340a11d3a91a5b95038ae15505e87
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Wed, 19 Feb 2025 21:42:36 +0100

Introduction du joueur et l'adversaire

Ca zigouille le clique clique sur les cartes et y'a pleins de +1 +2 qui
trainent mais soit, on verra plus tard

Diffstat:
Aennemy | 5+++++
Minterface.c | 51++++++++++++++++++++++++++++++++++-----------------
Aplayer | 7+++++++
3 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/ennemy b/ennemy @@ -0,0 +1,5 @@ +health: 40 +block: 0 + + o-- + diff --git a/interface.c b/interface.c @@ -5,6 +5,7 @@ #include <stdbool.h> #define LIST_SIZE 1000 +#define DISPLAY_SIZE 1000 #define CMD_LINE_SIZE 100 /* Le chiffre c'est des octets. Les caractères sont encodés sur un octet chacun ? * Donc si on met 5 la taille max serait 4 caractères ? */ @@ -243,9 +244,10 @@ coord displaypile(struct pile *p, struct pile *curmenu, int coloffset, int lineo return end; } -coord displaytextblock(char* title, char *text, int coloffset, int lineoffset) { +coord displaytextblock(char* title, char *text, int coloffset, int lineoffset, int entity) { coloffset++;lineoffset++; - coord p; int nbl=nblines(text), w=CARD_NAME_SIZE+2; + coord p; int nbl=nblines(text); + int w=entity ? (CARD_NAME_SIZE+2)*2+1:CARD_NAME_SIZE+2; p.y=nbl+lineoffset; p.x=w+coloffset; p=displaybox(title,coloffset,lineoffset,w,nbl,false); coloffset++; lineoffset++; @@ -267,31 +269,34 @@ int debug(int l, struct pile curmenu,struct tb_event ev) { } int display(struct pile** piles, struct pile *curmenu, bool selection, char* cmd, char* res, - char* intern, char* cmdennemy, char* resennemy, char* internennemy) { - coord p; + char* intern, char* cmdennemy, char* resennemy, char* internennemy, char *player, char *ennemy) { tb_clear(); - p=displaypile(piles[PLAYEDARGS], curmenu, 0, 0, selection); - coord p2=displaypile(piles[PLAYED], curmenu, p.x, 0, selection); - coord p3=displaypile(piles[HAND], curmenu, p2.x, 0, selection); + coord pplayer=displaytextblock(NULL,player,0,0,1); + coord pennemy=displaytextblock(NULL,ennemy,pplayer.x+CARD_NAME_SIZE+3,0,1); + int y=max(pplayer.y,pennemy.y)+1; + + coord p=displaypile(piles[PLAYEDARGS], curmenu, 0, y, selection); + coord p2=displaypile(piles[PLAYED], curmenu, p.x, y, selection); + coord p3=displaypile(piles[HAND], curmenu, p2.x, y, selection); coord p4=displaypile(piles[ARGS], curmenu, p2.x, p3.y, selection); - coord p5=displaypile(piles[PLAYEDENNEMY], curmenu, p3.x, 0, selection); - coord p6=displaypile(piles[PLAYEDENNEMYARGS], curmenu, p5.x, 0, selection); + coord p5=displaypile(piles[PLAYEDENNEMY], curmenu, p3.x, y, selection); + coord p6=displaypile(piles[PLAYEDENNEMYARGS], curmenu, p5.x, y, selection); int m=max(max(p2.y,p4.y),p5.y); - p=displaytextblock("result",res,CARD_NAME_SIZE/2,m+2); - p=displaytextblock("sh commands",intern,CARD_NAME_SIZE/2,p.y); - p=displaytextblock("command",cmd,CARD_NAME_SIZE/2,p.y); + p=displaytextblock("result",res,CARD_NAME_SIZE/2,m+2,0); + p=displaytextblock("sh commands",intern,CARD_NAME_SIZE/2,p.y,0); + p=displaytextblock("command",cmd,CARD_NAME_SIZE/2,p.y,0); p=displaytextblock(NULL,"\ * enter to select card\n\ * arrows to move selection\n\ * m to create arg \n\ -* e to end turn\n",p2.x+1,m+2); +* e to end turn\n",p2.x+1,m+2,0); - coord p7=displaytextblock("result",resennemy,p3.x+CARD_NAME_SIZE/2,m+2); - p=displaytextblock("sh commands",internennemy,p3.x+CARD_NAME_SIZE/2,p7.y); - p=displaytextblock("command",cmdennemy,p3.x+CARD_NAME_SIZE/2,p.y); + coord p7=displaytextblock("result",resennemy,p3.x+CARD_NAME_SIZE/2,m+2,0); + p=displaytextblock("sh commands",internennemy,p3.x+CARD_NAME_SIZE/2,p7.y,0); + p=displaytextblock("command",cmdennemy,p3.x+CARD_NAME_SIZE/2,p.y,0); return p.y+4; } @@ -309,6 +314,18 @@ int main(int argc, char **argv) { char res[LIST_SIZE]; char resennemy[LIST_SIZE]; char intern[LIST_SIZE]; char internennemy[LIST_SIZE]; + char player[DISPLAY_SIZE]; char ennemy[DISPLAY_SIZE]; + + char line[100]; + FILE *fp=fopen("player","r"); + while (fgets(line, sizeof(line), fp)) { + strcat(player,line); + } + fp=fopen("ennemy","r"); + while (fgets(line, sizeof(line), fp)) { + strcat(ennemy,line); + } + FILE *fp2, *fp3; struct pile *piles[NB_PILES]; @@ -346,7 +363,7 @@ int main(int argc, char **argv) { updateinterncmd(intern, played); updateinterncmd(internennemy, playedennemy); - int l=display(piles,curmenu,selection,cmd,res,intern,cmdennemy,resennemy,internennemy); + int l=display(piles,curmenu,selection,cmd,res,intern,cmdennemy,resennemy,internennemy,player,ennemy); debug(l++,*curmenu,ev); tb_present(); tb_poll_event(&ev); diff --git a/player b/player @@ -0,0 +1,7 @@ +health: 80 +block: 0 + + o +/|\ +/ \ +