Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1045 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Mon jeu en langage C [Help]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mon jeu en langage C [Help]

n°2223503
maxbagou
Posté le 30-03-2014 à 11:38:34  profilanswer
 

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
mood
Publicité
Posté le 30-03-2014 à 11:38:34  profilanswer
 

n°2223511
Sve@r
Posté le 30-03-2014 à 14:52:15  profilanswer
 

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.
n°2223524
maxbagou
Posté le 30-03-2014 à 22:47:45  profilanswer
 

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 !

n°2223544
Tangrim
Des bisous et des nounours !
Posté le 31-03-2014 à 10:50:41  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Mon jeu en langage C [Help]

 

Sujets relatifs
Tableau Statique en C++Exercice C++ méthode de jacobi
Qt & C++help script VBS
[C] redirection gauche[HELP] Programme en C !
Language C Polynome[C++] manipulation de tableau a l'aide des references ?
Visual C++ 2010 Express et SDL Novice en langage C ! HELP!
Plus de sujets relatifs à : Mon jeu en langage C [Help]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR