gravgun

Bataille navale

Jan 17th, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. int lire_nombre(int longueur) {
  2.     char format[32]; sprintf(format, " %%%ds", longueur+1);
  3.     char lu[longueur]; int nb;
  4.     do {
  5.         scanf(format, lu);
  6.     } while (sscanf(lu, " %d", &nb) <= 0);
  7.     return nb;
  8. }
  9. char lire_lettre() {
  10.     char lu;
  11.     scanf(" %c", &lu);
  12.     return lu;
  13. }
  14.  
  15.  
  16. /* Placer la flotte du joueur humain */
  17. void init_joueur(grille c){
  18.     char lettre;
  19.     int ligne;
  20.     int colonne;
  21.     char sens;
  22.     for(int nb = 0; nb < 5; nb++){
  23.         bool d, pleine;
  24.         do {
  25.             printf(" Position première case du bateau\n");
  26.             do {
  27.                 lettre = lire_lettre();
  28.                 ligne = lettre - 'A';
  29.             } while (ligne < 0 || ligne > 9);
  30.             do {
  31.                 colonne = lire_nombre(2)-1; // La colonne 1 est la colonne 0 de c
  32.             } while (colonne < 0 || colonne > 9);
  33.             printf("Choisir une orientation\n");
  34.             do {
  35.                 sens = lire_lettre();
  36.             } while (sens != 'h' || sens != 'H' ||
  37.                      sens != 'b' || sens != 'B' ||
  38.                      sens != 'g' || sens != 'G' ||
  39.                      sens != 'd' || sens != 'D');
  40.  
  41.             d = depasser(c, ligne, colonne, sens, nb);
  42.             pleine = est_pleine(c, ligne, colonne, nb, sens);
  43.         } while (pleine && d);
  44.  
  45.         placer_bateau(c, ligne, colonne, sens, nb);
  46.         afficher(c);
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment