Mon jeu en langage C [Help]

Mon jeu en langage C [Help] - C - Programmation

Marsh Posté le 30-03-2014 à 11:38:34    

Bonjour,  :hello:  
je poste ce message car j'ai un jeu a créer en langage C, une bataille navale.
Le problème c'est que je suis complètement bloqué étant donné le peu de cours et d'explications qui nous a été apportés sur ce sujet.  :(  
 
J'ai créé deux matrices, l'une secrète avec les positions de mes bateaux et l'autre s'affichant au joueur. J'ai ensuite réussit à faire en sorte que le joueur rentre les coordonnées souhaitées sans dépasser le nombre de colonnes et de lignes (10X10)
 
J'aimerais que lorsque le joueur rentre une coordonnée que celle ci affiche sur la matrice un "-" si la torpille touche la mer ou un "#" si la torpille touche un bateau.  
Et dans la grille du joueur :
La valeur 0 qui représentera la mer!
La valeur -1 qui représentera une torpille tirée dans l'eau!
La valeur 1 qui représentera une torpille ayant touché un bateau!
 
Je ne sais pas comment afficher une matrice vide devant le joueur pour ensuite la remplir en temps réel, car la mienne est remplis de "0" qui représente la mer.  :??:  
 
 
Voici mon programmes :
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. #include <time.h>
  5. int main()
  6. {
  7. int matsecret [10][10] = {{6, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  8.      {6, 0, 0, 0, 0, 0, 0, 0, 1, 1},
  9.      {6, 0, 9, 9, 9, 9, 9, 0, 0, 0},
  10.      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  11.      {0, 0, 0, 0, 4, 0, 0, 0, 8, 0},
  12.      {5, 5, 5, 0, 4, 0, 0, 0, 8, 0},
  13.      {0, 0, 0, 0, 4, 0, 0, 0, 8, 0},
  14.      {0, 0, 0, 0, 0, 2, 2, 0, 8, 0},
  15.      {0, 0, 0, 0, 0, 0, 0, 3, 0, 0},
  16.      {0, 7, 7, 7, 7, 0, 0, 3, 0, 0}};
  17. int mataffiche [10][10] = {{ ,  ,  ,  ,  ,  ,  ,  ,  ,  },
  18.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  19.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  20.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  21.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  22.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  23.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  24.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  25.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  26.             {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
  27. int l, c;
  28. printf ("\n\n             0    1    2    3    4    5    6    7    8    9     \n\n" );
  29. for (l = 0; l < 10; l++)
  30. {
  31.  if (l < 10)
  32.  {
  33.   printf("       %d  ", l);
  34.  }
  35.  else
  36.  {
  37.   printf("       %d  ", l);
  38.  }
  39.  for (c = 0; c < 10; c++)
  40.  {
  41.   printf("  |%d|", mataffiche[l][c] );
  42.  }
  43.  printf("\n\n" );
  44.  int matrice [10] [10], cpt, c, l;
  45.  printf("\n\nBienvenue a cette bataille spatiale, les vaisseaux sont en position Commandant\n" );
  46.  printf("Donner un numero de colonne compris entre 0 et 9\n" );
  47.  scanf("%d", &c);
  48.  while ((c > 9) || (c < 0))
  49.  {
  50.   printf("\nLa position est hors de portee, recommencez" );
  51.   scanf("%d", &c);
  52.  }
  53.   printf("Donner un numero de ligne compris entre 0 et 9\n" );
  54.   scanf ("%d", &l);
  55.   while ((l > 9) || (l < 0))
  56.  {
  57.   printf("\nLa position est hors de portee, recommencez\n" );
  58.   scanf ("%d", &l);
  59.  }
  60.  printf("%d\nLa torpille est envoyee Commandant" );
  61.  while (matsecret [l][c] = 0)
  62.  {
  63.   mataffiche [l][c] == -;
  64.   printf("  |%d|", mataffiche[l][c]);
  65.  }
  66.  return 0;
  67. }
  68. }


 
 
 
Merci pour votre attention!  :love:

Message cité 1 fois
Message édité par gilou le 30-03-2014 à 19:17:24
Reply

Marsh Posté le 30-03-2014 à 11:38:34   

Reply

Marsh Posté le 30-03-2014 à 14:52:15    

maxbagou a écrit :

Je ne sais pas comment afficher une matrice vide devant le joueur pour ensuite la remplir en temps réel, car la mienne est remplis de "0" qui représente la mer.  :??:


Bonjour
Il ne faut pas confondre "données" et "affichage".
Les données c'est ce qui te sert à traiter/calculer tes informations. L'affichage c'est la représentation que tu montres à l'écran de ces infomations. Rien ne t'empêche donc d'afficher des "0" pour la mer sauf si la case est occupée par un navire.
Perso je n'aurais qu'une seule matrice que j'afficherais quand il faut mais en n'affichant de celle-ci que ce qui est autorisé...
 
 
PS: t'as une balise "cpp" pour encadre ton code


Message édité par Sve@r le 30-03-2014 à 14:53:15

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-03-2014 à 22:47:45    

Tout d'abord, merci de ta réponse
 
Un professeur m'a dit que pour réussir à faire mon jeu, je devais stocker les 0 (qui représentent la mer) et les remplacer par des espaces.
 
En gros les 0 vont me servir à donner d'autres instructions plus tard, je dois donc les conserver, cependant, mon but est qu'à l'affichage de  ma matrice, on ne voit pas des 0 mais des cases vides (matérialisées par un espace)
 
Mais je ne sais absolument pas comment m'y prendre ! :??:
Help please !

Reply

Marsh Posté le 31-03-2014 à 10:50:41    

Quelque chose comme ça ?

Code :
  1. if  (mataffiche[l][c] == 0)
  2.   printf("  | |" );
  3. else if (mataffiche[l][c] == 1)
  4.   printf("  |X|" );


---------------
Des Bisous et des nounours ! | Internet 2025 | Dungeon-Generator
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed