Bataille navale

Fermé
tianoado Messages postés 1 Date d'inscription mardi 16 avril 2019 Statut Membre Dernière intervention 16 avril 2019 - 16 avril 2019 à 14:17
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 16 avril 2019 à 17:56
bonjour a tous j'ai un projet a faire en programmation système en C sous Unix , je suis un peu perdu si vous pouvez m"aider sa serai cool merci :)
Le projet consiste en l’implémentation d’une bataille navale. Un nombre donné de joueurs,
chacun représenté par un navire, doivent parcourir un océan à la recherche des autres pour
être le dernier survivant. La vie du navire est symbolisée par une valeur C appelée coque,
et son endurance par une valeur K appelée kerosene. Chaque action effectuée par le navire
aura une incidence sur sa coque et son kerosene. Si l’une de ces ressources vient à manquer,
le navire coule. Le jeu fonctionne en tour par tour : durant un tour, (1) chaque joueur dé-
termine la prochaine action à effectuer puis en informe le serveur ; (2) ce dernier effectue
les actions en fonction de différents critères (priorité par exemple) ; (3) puis il informe les
joueurs de leur nouvel état (nouvelles coordonnées, perte de points de coque ou de kerosene,
etc.). Le jeu se termine lorsqu’il ne reste plus qu’un seul survivant, ou si un nombre de tours
prédéfini a été atteint.
Dans une première version, vous devez implémenter de manière simple le serveur de
jeu. Prenant en argument un fichier d’entrée, son rôle est de créer la carte navale fournie
dans le fichier d’entrée et d’effectuer un nombre donné de tours de jeu, constitué d’actions
pré-définies dans votre programme. Un exemple est donné dans la sous-section 2.1.2. Pour
l’affichage du déroulement de la partie, vous pouvez opter pour un affichage en forme de log
(cf figure 1a), soit un affichage de carte dynamique (cf figure 1b).
AT K. Il est aussi possible de n’effectuer aucune action.
La gestion de la carte navale est fournie avec le projet dans l’archive navalmap.tar.gz.
Cette archive est composée d’un fichier d’en-tête, de fichiers sources, d’un Makefile et d’un
Readme. Les informations nécessaires à son utilisation sont décrites dans le fichier Readme.
2.1.1
Fichier d’entrée du programme
Le programme prend en entrée un fichier constitué de deux lignes :

1/ la caractérisation de la carte, avec son type, sa taille en longueur et en hauteur.
1 #t y p e C a r t e ; t a i l l e X ; t a i l l e Y
2 rectangle ;10;10

1 réponse

[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
16 avril 2019 à 17:56
Salut tianoado,

Bienvenue sur le forum.

https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

Les membres du forum ne vont pas faire l'exercice à ta place, par contre, si tu as des questions spécifiques, un problème sur un code que tu as programmé et que tu postes, il y aura certainement quelqu'un pour t'aider, en fonction des compétences, motivation et temps des uns et des autres.

Qu'est-ce qui, exactement, te pose problème ?

Si tu n'as rien fait, tu peux commencer par créer un programme qui lit la carte navale fournie sous la forme de fichier texte, et l'insère dans une structure de données gérée en mémoire par ton programme à laquelle tu peux réfléchir en fonction de ce que tu dois y mettre, compte tenu du jeu à mettre en place.

Par exemple, un tableau à deux dimensions de pointeurs sur
struct
, contenant
NULL
si l'emplacement est vide (il y a de l'eau), et un pointeur sur une
struct navire
contenant les informations de numéro de joueur, de la valeur de santé de la coque et de la valeur du niveau de kérosène attachée au navire.

La flotte de navires peut être stockée dans un tableau de
struct navire
permettant une itération aisée.

Dal
0