Partage
  • Partager sur Facebook
  • Partager sur Twitter

ISN Java's cool

    25 mai 2016 à 21:53:16

    Bonjour, 
    Nous avons un projet en ISN (Informatique et Science du Numérique) en Terminale S. Nous voulons coder le jeu Bataille navale.

    Alors j'ai un soucis par rapport a l'affichage de la grille joueur et ordi qu'il ne s'affiche pas en même temps et est séparé par une ligne verte.

    Pouvez-vous m'aider svp? Merci

    // affiche une grille d'entier sous forme de tableau
    void affichageGrille(int[][] grille, int taille) {
       for (int i =0; i < taille; i ++) {
          for (int j =0; j < taille; j ++) {
             print(grille[j][i]);
             print(" ");
          }
          println(" ");
       }
    }
    
    /*
     * Fonction qui affiche la grille finale 
     * grille du joueur à gauche, un trait vertical vert de séparation
     * grille de l'ordinateur à droite
     * la fonction est à modifier pour que les bateaux de l'ordinateur ne soient pas visibles
     * s'ils n'ont pas été touchés
     */
    void affichageGrilleFinale(int[][] grillejoueur, int[][] grilleordi, int taille) {
    
    	// affichage de la grille du joueur 
       for (int i =0; i < taille; i ++) {
          for (int j =0; j < taille; j ++) {
             if (grillejoueur[i][j] ==0) {
                setPixel(i, j, "blue");
             }
             if (grillejoueur[i][j] ==2) {
                setPixel(i, j, "black");
             }
             if (grillejoueur[i][j] ==1) {
                setPixel(i, j, "white");
             }
             if (grillejoueur[i][j] ==3) {
                setPixel(i, j, "red");
             }
          }
       }
    
    for(int j=0;j<taille;j++)
    {
    	setPixel(taille,j,"green");
    }
       	// affichage de la grille de l'ordinateur 
       	// à modifier pour que les bateaux n'apparaissent pas
    for ( int i =taille; i < 2*taille; i ++) {
          for (int j =0; j < taille; j ++) {
             if (grilleordi[i-taille][j] ==0) {
                setPixel(i+1, j, "blue");
             }
             if (grilleordi[i-taille][j] ==2) {
                setPixel(i+1, j, "blue");
             }
             if (grilleordi[i-taille][j] ==1) {
                setPixel(i+1, j, "white");
             }
             if (grilleordi[i-taille][j] ==3) {
                setPixel(i+1, j, "red");
             }
          }
       }
       	
    }
    
    int sommeGrille(int[][] grille, int taille) {
       int somme =0;
       for (int i =0; i < taille; i ++) {
          for (int j =0; j < taille; j ++) {
             somme = somme+grille[j][i];
          }
       }
       return  somme;
    }
    
    // affiche une grille sous forme d'image
    // les 0 sont en bleu (eau)
    // les 1 en noir (ils représentent les bateaux)
    void affichageImage(int [][]grille, int taille) {
       for (int i =0; i < taille; i ++) {
          for (int j =0; j < taille; j ++) {
             if (grille[i][j] ==0) {
                setPixel(i, j, "blue");
             }
             if (grille[i][j] ==2) {
                setPixel(i, j, "black");
             }
             if (grille[i][j] ==1) {
                setPixel(i, j, "white");
             }
             if (grille[i][j] ==3) {
                setPixel(i, j, "red");
             }
          }
       }
    }
    
    void main() {
       println(" Le jeu auquel vous allez jouer est la Bataille Navale : ");
       println("Le but du jeu est de couler les deux bateaux de votre adversaire.");
       println("Les bateaux occupent deux et trois cases et sont positionés verticalement ou horizontalement, sur une grille de 25 cases.");
       boolean fin = false;
       reset(11, 5, false);
       int[][]grille_joueur = new int[5][5];
       int[][]grille_ordi = new int[5][5];
       for (int x =0; x <5; x ++) {
          for (int y =0; y <5; y ++) {
             grille_joueur[x][y] =0;
             grille_ordi[x][y] =0;
          }
       }
    
       
      
       
       // PLACEMENT par le joueur des bateaux
      //premier bateau
       int m =0;
       int v_joueur = 0;
       int x_joueur =0;
       int y_joueur =0;
       reset(5, 5, false);
     
     int somme=0;
      	while(somme!=10){
      		
      	
      x_joueur= readInteger("Donnez la position en abscisse de votre premier bateau ");
       y_joueur = readInteger("Donnez la position en ordonnée de votre premier bateau ");
       grille_joueur[x_joueur][y_joueur] =2;
      
    	 m = readInteger("choisir un chiffre entre 1 et 4 pour connaitre la direction de votre bateau sachant que 1 c'est vers le bas,2 vers le haut,3vers la droite,4 vers la gauche");
       if (m ==1) {
          for (int T = 0; T <= 2; T = T + 1) {
             grille_joueur[x_joueur ][y_joueur + T] = 2;
          }}
          if (m ==2) {
             for (int T = 0; T <= 2; T = T + 1) {
                grille_joueur[x_joueur ][y_joueur - T] = 2;
             }}
             if (m ==3) {
                for (int T = 0; T <= 2; T = T + 1) {
                  grille_joueur[x_joueur + T][y_joueur] = 2;
                }}
                if (m ==4) {
                   for (int T = 0; T <= 2; T = T + 1) {
                      grille_joueur[x_joueur - T][y_joueur] = 2;
                   }
             }
               
    
             //placement du deuxieme bateau
    
       x_joueur = readInteger("Donnez la position en abscisse de votre deuxième bateau ");
       y_joueur = readInteger("Donnez la position en ordonnée de votre deuxieme bateau ");
       grille_joueur[x_joueur][y_joueur] =2;
      
    	 m = readInteger("choisir un chiffre entre 1 et 4 pour connaitre la direction de votre bateau sachant que 1 c'est vers le bas,2 vers le haut,3vers la droite,4 vers la gauche");
       if (m ==1) {
          for (int T = 0; T <= 1; T = T + 1) {
             grille_joueur [x_joueur ][y_joueur + T] = 2;
          }}
          if (m ==2) {
             for (int T = 0; T <= 1; T = T + 1) {
              grille_joueur[x_joueur ][y_joueur - T] = 2;
             }}
             if (m ==3) {
                for (int T = 0; T <= 1; T = T + 1) {
                   grille_joueur[x_joueur + T][y_joueur] = 2;
                }}
                if (m ==4) {
                   for (int T = 0; T <= 1; T = T + 1) {
                      grille_joueur[x_joueur - T][y_joueur] = 2;
                   }
                }
                somme=sommeGrille(grille_joueur,5);
      }
    
    
       // PLACEMENT aléatoire des bateaux
       int somme_ordi =0;
       while (somme_ordi !=10) {
          int a1 = random(1, 3);
          int t1 = random(1, 4);
          int x1;
          int y1;
          int a2 = random(1, 3);
          int t2 = random(1, 4);
          int x2;
          int y2;
          if (a1 == 1) {
             //le bateau est ici placé horizontalement de taille x1+T
              x1 = random(0, 2);
             y1 = random(1, 4);
             for (int T = 0; T <= 2; T = (T + 1)) {
                grille_ordi [x1 + T][y1] = 2;
             }
          } else {
             //le bateau est ici placé verticalement de taiile y1+T
              x1 = random(0, 4);
             y1 = random(0, 2);
             for (int T = 0; T <= 2; T = T + 1) {
                grille_ordi [x1][y1 + T] = 2;
                //les bateaux sont sous forme du chiffre 2
              }
          }
          if (a2 == 1) {
             y2 = random(0, 4);
             x2 = random(0, 3);
             for (int T = 0; T <= 1; T = T + 1) {
                grille_ordi [x2 + T][y2] = 2;
             }
          } else {
             x2 = random(0, 4);
             y2 = random(0, 3);
             for (int T = 0; T <= 1; T = T + 1) {
                grille_ordi [x2][y2 + T] = 2;
             }
          }
          somme_ordi = sommeGrille(grille_ordi, 5);
       }
       affichageGrilleFinale(grille_joueur,grille_ordi,5);
    int x_tirjoueur=0;
    int y_tirjoueur=0;
    while (fin==false)
     {
     
     	x_tirjoueur=readInteger ("Donnez la position en abscisse à l'endroit où vous voulez tirer");
     	y_tirjoueur=readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
     	while (x_tirjoueur<0 || x_tirjoueur>5 || y_tirjoueur<0 || y_tirjoueur>5) {
     		println ("les coordonnées entrées ne sont pas valables");
     		x_tirjoueur=readInteger ("Donnez la position en abscisse à l'endroit où vous voulez tirer");
     	     y_tirjoueur=readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
              
     	}
     
    	
    	
    	if (grille_ordi[x_tirjoueur][y_tirjoueur] == 3) {
    	  grille_ordi[x_tirjoueur][y_tirjoueur] = 3;
    	  println("déjà touché");
    	}
    	if (grille_ordi[x_tirjoueur][y_tirjoueur] == 2) {
    	  println("touché !");
    	  v_joueur = v_joueur + 1;
    	  print("");
    	  println("vous avez touché "+ v_joueur +" fois les bateaux !");
    	  grille_ordi[x_tirjoueur][y_tirjoueur] = 3;
    	}
    	if (grille_ordi[x_tirjoueur][y_tirjoueur] == 0 || grille_ordi[x_tirjoueur][y_tirjoueur] == 1) {
    	  println("dans l'eau");
    	  grille_ordi[x_tirjoueur][y_tirjoueur] = 1;
    	}
    	
     	affichageGrille(grille_ordi,5);
    	if(v_joueur==5)
    	{
    		fin=true;
    	}
    	   affichageGrilleFinale(grille_joueur,grille_ordi,5);
     }
    	
      print("");
      println("Gagné ! Vous avez coulé tous les bateaux.");
    
       
       /*
       affichageGrille(grille, 5);
       affichageImage(grille, 5);
       println("Votre adversaire a placé ses bateaux.");
       //Les bateaux sont placés de manière aléatoire verticalement ou horizontalement de taille aléatoire rendant la tache plus difficile
       println("Voici la taille de chaque bateau : le premier bateau a une taille de 3 et l'autre de 2");
       println(sommeGrille(grille, 5));
       // Boucle de jeu
        while (fin == false) {
          x = readInteger("Donnez la position en abscisse à l'endroit où vous voulez tirer");
          y = readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
          while (x <0 || x >5 || y <0 || y >5) {
             println("les coordonnées entrées ne sont pas valables");
             x = readInteger("Donnez la position en abscisse à l'endroit où vous voulez tirer");
             y = readInteger("Donnez la position en ordonnée à l'endroit où vous voulez tirer");
          }
          if (grille[x][y] == 3) {
             grille[x][y] = 3;
             println("déjà touché");
          }
          if (grille[x][y] == 2) {
             println("touché !");
             v = v + 1;
             print("");
             println("vous avez touché " + v + " fois les bateaux !");
             grille[x][y] = 3;
          }
          if (grille[x][y] == 0 || grille[x][y] == 1) {
             println("dans l'eau");
             grille[x][y] = 1;
          }
          affichageImage(grille, 5);
          affichageGrille(grille, 5);
          if (v ==5) {
             fin = true;
          }
       }
       print("");
       println("Gagné ! Vous avez coulé tous les bateaux.");*/
    }
    


    • Partager sur Facebook
    • Partager sur Twitter

    ISN Java's cool

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown