programmation en c - C - Programmation
Marsh Posté le 05-06-2013 à 13:49:33
Citation : J'aimerais avoir la réponse le plutôt possible ( 4 jour maxi). |
Dix balles et un Mars aussi, pendant qu'on y est?
Le règlement de la section est clair, sur ce forum, on ne fait pas le boulot des étudiants à leur place, on ne fait que leur indiquer ou il y a des erreurs dans leur réponses!
A+,
Marsh Posté le 05-06-2013 à 13:08:15
salut ce sujet est très important pour moi,
car c'est un test de niveau pour un recrutement dans une entreprise.
je me nomme Guire, étudiant en deuxième année de statistique & informatique.
je reside présentement à Bobo-Dioulasso la capitale économique du BURKINA FASO.
Voici mon e-mail: papyrus.zak@gmail.com
ainsi que mon TEL:+226 76-72-17-97/79-94-11-19.
J'aimerais avoir la réponse le plutôt possible ( 4 jour maxi).
SUJET
Projet de programmation en C
On demande de réaliser le jeu de la bataille navale que l’on peut jouer en solitaire !!!
· 10 x 10 cases : de 1 à 10 horizontalement et de A à J verticalement.
· 1 bateau de 2 cases
· 2 bateaux de 3 cases
· 1 bateau de 4 cases
· 1 bateau de 5 cases
· Un compteur de coup permet de connaître la dextérité du joueur
· Les réponses aux coups joués seront :
o rate : un (X) s’affiche,
o touche : un (T) s’affiche,
o coule : les (T) de transforment en (C)
TAR 4
Etape 1 : initialisation
Construire une grille (tableau de caractères de 10 x 10 cases) et afficher cette grille
(au début vide !) avec une fonction d’affichage de tableaux
Par défaut le tableau est initialisé avec des caractères « espace » : ‘ ‘
Ce tableau se nommera « grille ». Par exemple on obtiendra :
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
A | | | | | | | | | | |
B | | | | | | | | | | |
C | | | | | | | | | | |
D | | | | | | | | | | |
E | | | | | | | | | | |
F | | | | | | | | | | |
G | | | | | | | | | | |
H | | | | | | | | | | |
I | | | | | | | | | | |
J | | | | | | | | | | |
Etape 2 : Fonction création de bateaux
Dans un premier temps les bateaux seront stockés en dur (pas fait de manière
automatique) dans un second tableau de int nommé « bateau » de 10 x 10
cases
· 1 pour une partie de bateau
· 0 sinon
Afficher la grille des bateaux (uniquement les 1). Par exemple :
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
A | | | | | | | | | | |
B | | | 1 | 1 | 1 | 1 | | | | |
C | | | | | | | | | | |
D | | | | | | 1 | 1 | | | |
E | | | | | | | | | | |
F | | | | | 1 | | | | 1 | |
G | | | | | 1 | | | | 1 | |
H | | | | | 1 | | | | 1 | |
I | 1 | 1 | 1 | | | | | | 1 | |
J | | | | | | | | | 1 | |
Etape 3 : Lecture et test des coups joués
Le joueur joue des coups : « C6 » (par exemple)
Les lettres devront aller de A à J et les nombres de 1 à 10 !
Sinon un message d’erreur apparaîtra et le coup sera redemandé.
Ces coups sont lus et testés par rapport au tableau « bateau »
Les réponses aux coups joués seront :
o Si rate : un (X) est stocké dans le tableau « grille »,
o Si touche : un (T) est stocké dans le tableau « grille »,
Affiche le tableau « grille » plus un message et le compteur (par exemple).
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
A | | | | | | | | | | |
B | | | | | | | | | | |
C | | | | | | X | | | | |
D | | | | | | | | | | |
E | | | | | | | | | | |
F | | | | | | | | | | |
G | | | | | | | | | | |
H | | | | | | | | | | |
I | | | | | | | | | | |
J | | | | | | | | | | |
C6 : Raté !
Compteur : 1 coup
Etape 4 : Boucle & Touché Coulé !
Effectuer maintenant une boucle qui permet de re-demander au joueur de nouveaux
coups
Si il a 17 (T) dans la grille afficher un message « GAGNE !!! »
Remarque : Afin de tester cette fonction vous pouvez réduire votre programme dans
une version light avec un seul bateau de 4 et donc tester que 4 (T) !
TAR 5
L’objectif est de créer les 5 bateaux de manière aléatoirement sur la grille « bateau »
Chaque bateau portera désormais un numéro spécifique de 1 à 5. cela vous servira
à les identifier pour les C : coulés !!!
Les contraintes sont simples dans le principe mais le principe de programmation est
compliqué :
- les bateaux ne doivent pas dépasser de la grille
- les bateaux ne doivent pas se croiser
Voila ce que vous devez obtenir à la fin du TAR mais réalisé de manière automatique
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
A | | | | | | | | | | |
B | | | 4 | 4 | 4 | 4 | | | | |
C | | | | | | | | | | |
D | | | | | | 1 | 1 | | | |
E | | | | | | | | | | |
F | | | | | 2 | | | | 5 | |
G | | | | | 2 | | | | 5 | |
H | | | | | 2 | | | | 5 | |
I | 3 | 3 | 3 | | | | | | 5 | |
J | | | | | | | | | 5 | |
Etape 5 : Créer une fonction qui génère 1 bateau de manière
aléatoire dans le tableau « bateau »
Vous pouvez utiliser le principe suivant :
- vous définissez aléatoirement un point de départ sur le tableau « bateau »
- puis une direction : haut / bas / gauche / droite aléatoirement
- puis vous vérifier la contrainte de dépassement du tableau en fonction de la taille de votre bateau
- si ok vous stockez dans le tableau « bateau » sinon vous recommencez au départ
Afficher la le tableau « bateau » obtenu pour vérifier la fonction
Etape 6 : 1 second bateau généré de manière aléatoire
Vous aller ajouter la contrainte suivante : les bateaux ne doivent pas se croiser
à il faut vérifier que les cases sont libres pour mettre le second bateau
Afficher la le tableau « bateau » obtenu pour vérifier la fonction
Etape 7 : Les 5 bateaux générés de manière aléatoire avec les bon numéros
Vous aller ajouter la contrainte suivante : les bateaux ne doivent pas se croiser
à il faut vérifier que les cases sont libres pour mettre le second bateau.
Etape 8 : Transformer les T en C (coulé)
Faire une fonction qui lorsque que toutes les cases du bateau sont touchées il remplace les T en C.
Principe de la fonction :
- comparer les deux tableaux « grille » et « bateau »
- si il n’y a que des T aux mêmes emplacements que le bateau testé (bateau 1, 2 , 3
, 4 ou 5) remplacer les C de ce bateau en T dans le tableau « grille »
TAR 6
L’objectif est de faire une partie contre l’ordinateur …
Etape 9 : Jouer contre l’ordinateur
- créer aléatoirement les deux grilles de bateaux
- organiser l’affichage de ces deux grilles à l’écran
- générer une boucle de jeu basique de l’ordinateur : il lance des bombes de manière aléatoire
Etape 10 : Améliorer la stratégie de l’ordinateur
- il lance des bombes de manière aléatoire sans retoucher deux fois la mêmecase.
- Si il touche un bateau, il choisit une direction du bateau (4 sens possibles)
faire par exemple toujours la même chose (Haut Bas Gauche Droite)
- Si il retouche de nouveau un bateau il continue la direction « direction 1 »
sinon il change de direction
Etape 11 : Encore mieux pour la stratégie de l’ordinateur (pour lesplus forts)
- L’ordi peut avoir touché au milieu du bateau il faut alors prévoir qu’il puisse
tirer dans la direction opposée à la « direction 1 » soit la direction « direction 2 »
- Il se peut que le bateau ne coule pas avec les directions « direction 1 » et
« direction 2 » en fait deux bateaux sont collé %2