NAVY
FRICKERT Jonathan
PROBST Yann


1/11
Objectif du projet:

2/11
- parsing
- génération de la map
- communication entre deux processus
- signaux

- gestion d'erreurs
Organisation:

3/11
- réflexion sur feuille
- étape par étape
- lire et relire les man
- helpitech
Problèmes et solutions

4/11

Découpage du projet

5/11
if (ac == 2)
give_me_my_pid();
wait_();
my_putstr("my navy:\n");
aff_all_map(av[1]);
else if (ac == 3)
kill_(my_getnbr(av[1]));
give_me_my_pid2();
navy.pid_enemy = my_getnbr(av[1]);
my_putstr("my navy:\n");
aff_all_map2(av[2]);Le nombre d'arguments
Découpage du projet

6/11
Une série d'instruction pour chaque terminal:
ennemy_map = create_ennemy_map(ennemy_map);
while (1)
{
my_map = create_my_map(my_map);
parse(boat, my_map);
my_begin_map();
aff_my_map(my_map);
my_putchar('\n');
my_putstr("enemy navy:\n");
my_begin_map();
aff_ennemy_map(ennemy_map);
get_coord(coord);
attack(coord);
hit_or_not(ennemy_map, coord);
usleep(1000);
my_putstr("\nwaiting for enemy's attack...\n");
wait_attack(coord);
if (my_map[coord[1]][coord[0] + 2] != '.')
kill(navy.pid_enemy, SIGUSR1);
else
kill(navy.pid_enemy, SIGUSR2);
my_putstr("\nmy navy:\n");
Gestion d'erreurs du fichier + parsing

7/11
if ((fp = open(boat, O_RDONLY)) == -1)
{
my_putstr("map doesn't exit\n");
exit(1);
}
while ((len = read(fp, buf, 8)) > 0)
{
verification(buf);
buf[len - 1] = '\0';
put_coord_map(my_map, buf);
}
Création de la map:

8/11

char ** =
Gestion des signaux:

9/11
Structure
SIGUSR2 --> STOP, position final
SIGUSR1 = position
pid_enemy
counter
finish
get_coord;
hit_or_not?
Points positifs et améliorations

10/11
- Projet difficile
- Nouvelles compétences
- Signaux, difficile à mettre en place
- Boucle d'arrêt
- moulinette?
- Merci au helpitech








before the demonstration :)
11/11
NAVY
By Yann Probst
NAVY
- 46