Hello, tu es débutant en c ou en c++ ? (cad, connais-tu la STL ou pas ?)
Si tu ne la connais pas :
- Creation d'une matrice à 2 dimension de caractere (tu vas voir pour quoi) (char Bataille[Dimension][Dimension]={0};)
- Puis tu créés fait 2 randoms pour récupérer une coordonée X et une Y (donc 0<=X<=Dimension et 0<=Y<=Dimension)
- ensuite, tu choisis une direction (un autre random de 1 à 4 fera l'affaire)
- Tu regardes si tu peux poser le bateau (cad si il ne va pas dépasser du bord et si il ne va pas se placer sur une case ayant une valeur différente de 0)
- Si la voie est libre, alors il faut definir un code pour chaque bateau (5 pour le destroyer par exemple) et puis à chaque case du plateau ou il se trouve, tu dois marquer le code du bateau à poser
- Pour le jeu à proprement parlé, quand le joueur choisis une case, alors toi tu testes si elle est vide (=0) --> c'est dans l'eau, si c'est une case d'une autre valeur et qu'elle n'a pas déja été marquée (tu vas voir comment) alors on marque
Une case est marquée lorsque son numero est > 20 (par exemple), en fait pour marquer une case, on fait Bataille[X][Y]+=20;
Ce qui veut donc dire que l'on garde l'info du bateau qui est touché (suffit d'enlever 20 ou de faire un modulo 20) et qu'on sait qu'il a été marqué.
- Un bateau coule quand toutes ses cases sont marquées
(Il faut obligatoirement stocker les cases du bateau en plus car il ne suffit pas de tester que toutes les cases adjacentes correspondant au même bateau soient marquée (par récursivité) car si 2 destroyer sont à coté, alors ça va chier (à moins que tu attribue un ID unique à chaque bateau, comme tu veux, à toi de voir)).
- tu connais la suite
Avec le c++, c'est bien plus propre, je te déconseillerai fortement le c pour ça car ça ne peut t'apporter que des bugs et puis une énorme lourdeur à coder. Mieux vaut garder le c pour les algorithmes et le c++ pour tout ce qui ne nécéssite pas de vitesse particulierement rapide (tout est relatif) et un code clair/maintenable.
Vila, bonne soirée

/* MuPuF®