le jeu des motos dans tron - retour accueil
git clone git://bebou.netlib.re/tron
Log | Files | Refs | README |
commit 86f1da0eea3bb4763ad7cc36a477ea84cca873a6 parent e985d1d03aefd5c29f76720ddcbbed3d3f4845a1 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Thu, 19 Jun 2025 19:10:14 +0200 Collision avec less bordures de l'arène Diffstat:
M | tron.c | | | 11 | +++++++---- |
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tron.c b/tron.c @@ -53,13 +53,16 @@ void update(struct car *car, coord *incs, int ticks) { car->position.y=car->position.y+incs[car->direction].y; } -int is_in_conflict(struct car *cars, int ticks, int tail) { - for (int i=0;i<2;i++) +int is_in_conflict(struct car *cars, int ticks, int tail, struct arena arena) { + for (int i=0;i<2;i++) { + if(cars[i].position.x==0 || cars[i].position.x==arena.width || cars[i].position.y==1 || cars[i].position.y==arena.height) + return i+1; for (int j=ticks-tail;j<ticks+1;j++) for (int k=0;k<2;k++) if (cars[i].position.x==cars[k].path[j].x && cars[i].position.y==cars[k].path[j].y) return i+1; + } return 0; } @@ -96,7 +99,7 @@ int main(int argc, char **argv) { while(1) { for(int i=0;i<2;i++) update(&cars[i],incs,ticknb); - dead_car=is_in_conflict(cars,ticknb,TAIL); + dead_car=is_in_conflict(cars,ticknb,TAIL,arena); if(dead_car>0) { printf("car %d is dead",dead_car); tb_shutdown(); @@ -105,7 +108,7 @@ int main(int argc, char **argv) { tb_clear(); display(cars,ticknb,TAIL,arena); tb_present(); - tb_peek_event(&ev, 50); + tb_peek_event(&ev, 1000); switch(ev.ch) { case 122: /*z*/ if(cars[1].direction!=DOWN) cars[1].direction=UP;