tron

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:
Mtron.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;