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

  FORUM HardWare.fr
  Programmation
  Java

  Problème Processing Bataille Navale

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème Processing Bataille Navale

n°2281492
Viince06
Posté le 15-05-2016 à 12:43:08  profilanswer
 

Bonjour à tous,
 
J'ai un petit soucis pour ma bataille navale :
 
j'en suis à l'étape du placement des bateaux. Donc j'ai déclaré une variable, et à chaque fois que la variable change de valeur, on place un autre type de bateau (donc jusqu'à NombresDeBateaux=5)
Le problème étant que la programme reste bloqué au premier bateau, et que l'on ne peut donc placer que le premier type de bateau (celui à 2 de longueur).
 
Pouvez-vous m'aider ?
Merci
 
Voici le code :
 

Code :
  1. int[][] Tableau1;
  2. int[][] Tableau2;
  3. int Taille = 60;
  4. int NbrColonnes = 10;
  5. int NbrLignes = 10;
  6. int NombresDeBateaux = 0;
  7. PImage FondJeu;
  8. PImage FondAccueil;
  9. int MomentDuJeu;
  10. void setup() {
  11.   size (1300, 750);
  12.   MomentDuJeu = 0;
  13.   CreationDesTableaux();
  14. }
  15. void CreationDesTableaux() {
  16.   Tableau1 = new int[NbrColonnes][NbrLignes];
  17.   Tableau2 = new int[NbrColonnes][NbrLignes];
  18.   for (int Colonne = 0; Colonne < NbrColonnes; Colonne++) {
  19.     for (int Ligne = 0; Ligne < NbrLignes; Ligne++) {
  20.       Tableau1[Colonne][Ligne] = 0;
  21.       Tableau2[Colonne][Ligne] = 0;
  22.     }
  23.   }
  24. }
  25. void draw() {
  26.   PartieEnCours();
  27. }
  28. void PartieEnCours() {
  29.   if (MomentDuJeu == 0) { 
  30.     FondAccueil = loadImage("Bateau_fun.jpg" );
  31.     image(FondAccueil, 0, 0, width, height);
  32.     textSize(40);
  33.     fill(0);
  34.     text("Appuyez sur la barre d'espace pour lancer la partie !", 200, 560);
  35.     textSize(60);
  36.     fill(255, 255, 0);
  37.     text("BATAILLE NAVALE", 400, 100);
  38.     if (keyPressed && key == ' ') MomentDuJeu = 1;
  39.   }
  40.   if (MomentDuJeu == 1) {
  41.     AffichageImageDebut();
  42.     AffichageDesTableaux();
  43.     AffichageDesCoordonnees();
  44.     PlacementDesBateaux();
  45.   }
  46. }
  47. void AffichageImageDebut() {
  48.   FondJeu = loadImage("Eau.jpg" );
  49.   image(FondJeu, 0, 0, width/2, height);
  50.   image(FondJeu, width/2, 0, width/2, height);
  51. }
  52. void AffichageDesTableaux() {
  53.   textSize(Taille);
  54.   image(FondJeu, 0, 0, width/2, height);
  55.   image(FondJeu, width/2, 0, width/2, height);
  56.   for (int Colonne = 0; Colonne < NbrColonnes; Colonne++) {
  57.     for (int Ligne = 0; Ligne < NbrLignes; Ligne++) {
  58.       int ContenuCase1 = Tableau1[Colonne][Ligne];
  59.       int ContenuCase2 = Tableau2[Colonne][Ligne];
  60.       if (ContenuCase1 == 0) fill(0, 0, 255);
  61.       if (ContenuCase1 == 1) fill(0, 255, 0);
  62.       if (ContenuCase1 == 2) fill(255, 0, 0);
  63.       if (ContenuCase1 == 3) fill(0);
  64.       if (ContenuCase2 == 0) fill(0, 0, 255);
  65.       if (ContenuCase2 == 1) fill(0, 255, 0);
  66.       if (ContenuCase2 == 2) fill(255, 0, 0);
  67.       if (ContenuCase2 == 3) fill(0);
  68.       text(ContenuCase1, Taille * Colonne, Taille * (Ligne+1) ); //!\\
  69.       text(ContenuCase2, Taille * Colonne + ((width/2)+60), Taille * (Ligne+1) );
  70.     }
  71.   }
  72. }
  73. void AffichageDesCoordonnees() {
  74.   fill(0);
  75.   strokeWeight(3);
  76.   stroke(0);
  77.   text("A", 0, 670);
  78.   text("B", 60, 670);
  79.   text("C", 120, 670);
  80.   text("D", 180, 670);
  81.   text("E", 240, 670);
  82.   text("F", 300, 670);
  83.   text("G", 360, 670);
  84.   text("H", 420, 670);
  85.   text("I", 490, 670);
  86.   text("J", 550, 670);
  87.   text("1", 620, 60);
  88.   text("2", 620, 120);
  89.   text("3", 620, 180);
  90.   text("4", 620, 240);
  91.   text("5", 620, 300);
  92.   text("6", 620, 360);
  93.   text("7", 620, 420);
  94.   text("8", 620, 480);
  95.   text("9", 620, 540);
  96.   text("10", 600, 600);
  97.   text("A", 710, 670);
  98.   text("B", 770, 670);
  99.   text("C", 830, 670);
  100.   text("D", 890, 670);
  101.   text("E", 950, 670);
  102.   text("F", 1010, 670);
  103.   text("G", 1070, 670);
  104.   text("H", 1130, 670);
  105.   text("I", 1200, 670);
  106.   text("J", 1260, 670);
  107.   line(0, 615, 590, 615);
  108.   line(590, 0, 590, 615);
  109.   line(width, 615, 690, 615);
  110.   line(690, 0, 690, 615);
  111. }
  112. void PlacementDesBateaux() {
  113.   int Colonne = (int)(mouseX)/Taille; //on clique dans la colonne qui correspond à la postion de la souris divisée par la taille
  114.   int Ligne = (int)(mouseY)/Taille; //on clique dans la ligne qui correspond à la postion de la souris divisée par la taille
  115.   if (Colonne >= NbrColonnes-1) Colonne = NbrColonnes-1; //!\\
  116.   if (Ligne >= NbrLignes-1) Ligne = NbrLignes-1; //!\\
  117.   println("On place dans la colonne "+(Colonne+1));
  118.   println("On place dans la ligne "+(Ligne+1));
  119.   if (NombresDeBateaux == 0) {
  120.     for (int x = 0; x < NbrColonnes; x++) {
  121.       for (int y = 0; y < NbrLignes; y++) {
  122.         textSize(20);
  123.         fill(255, 0, 0);
  124.         text("Placez votre torpilleur grâce aux flêches directionnelles sur l'écran de gauche ! Le curseur de la souris définit l'origine du bateau.", 40, 700);
  125.         if (keyPressed && keyCode == LEFT) {
  126.           Tableau1[Colonne][Ligne] = 1;
  127.           Tableau1[Colonne - 1][Ligne] = 1;
  128.           NombresDeBateaux++;
  129.         }
  130.         if (keyPressed && keyCode == RIGHT) {
  131.           Tableau1[Colonne] [Ligne] = 1;
  132.           Tableau1[Colonne + 1] [Ligne] = 1;
  133.           NombresDeBateaux++;
  134.         }
  135.         if (keyPressed && keyCode == UP) {
  136.           Tableau1[Colonne][Ligne] = 1;
  137.           Tableau1[Colonne][Ligne - 1] = 1;
  138.           NombresDeBateaux++;
  139.         }
  140.         if (keyPressed && keyCode == DOWN) {
  141.           Tableau1[Colonne] [Ligne] = 1;
  142.           Tableau1[Colonne] [Ligne + 1] = 1;
  143.           NombresDeBateaux++;
  144.         }
  145.       }
  146.     }
  147.   }
  148.   if (NombresDeBateaux == 1) {
  149.     for (int x = 0; x < NbrColonnes; x++) {
  150.       for (int y = 0; y < NbrLignes; y++) {
  151.         textSize(20);
  152.         fill(255, 0, 0);
  153.         text("Placez votre sous-marin grâce aux flêches directionnelles sur l'écran de gauche ! Le curseur de la souris définit l'origine du bateau.", 40, 700);
  154.         if (keyPressed && keyCode == LEFT) {
  155.           Tableau1[Colonne][Ligne] = 1;
  156.           Tableau1[Colonne - 1][Ligne] = 1;
  157.           Tableau1[Colonne - 2][Ligne] = 1;
  158.           NombresDeBateaux++;
  159.         }
  160.         if (keyPressed && keyCode == RIGHT) {
  161.           Tableau1[Colonne] [Ligne] = 1;
  162.           Tableau1[Colonne + 1] [Ligne] = 1;
  163.           Tableau1[Colonne + 2] [Ligne] = 1;
  164.           NombresDeBateaux++;
  165.         }
  166.         if (keyPressed && keyCode == UP) {
  167.           Tableau1[Colonne][Ligne] = 1;
  168.           Tableau1[Colonne][Ligne - 1] = 1;
  169.           Tableau1[Colonne][Ligne - 2] = 1;
  170.           NombresDeBateaux++;
  171.         }
  172.         if (keyPressed && keyCode == DOWN) {
  173.           Tableau1[Colonne] [Ligne] = 1;
  174.           Tableau1[Colonne] [Ligne + 1] = 1;
  175.           Tableau1[Colonne][Ligne + 2] = 1;
  176.           NombresDeBateaux++;
  177.         }
  178.       }
  179.     }
  180.   }
  181.   if (NombresDeBateaux == 2) {
  182.     for (int x = 0; x < NbrColonnes; x++) {
  183.       for (int y = 0; y < NbrLignes; y++) {
  184.         textSize(20);
  185.         fill(255, 0, 0);
  186.         text("Placez votre contre-torpilleur grâce aux flêches directionnelles sur l'écran de gauche ! Le curseur de la souris définit l'origine du bateau.", 40, 700);
  187.         if (keyPressed && keyCode == LEFT) {
  188.           Tableau1[Colonne][Ligne] = 1;
  189.           Tableau1[Colonne - 1][Ligne] = 1;
  190.           Tableau1[Colonne - 2][Ligne] = 1;
  191.           NombresDeBateaux++;
  192.         }
  193.         if (keyPressed && keyCode == RIGHT) {
  194.           Tableau1[Colonne] [Ligne] = 1;
  195.           Tableau1[Colonne + 1] [Ligne] = 1;
  196.           Tableau1[Colonne + 2] [Ligne] = 1;
  197.           NombresDeBateaux++;
  198.         }
  199.         if (keyPressed && keyCode == UP) {
  200.           Tableau1[Colonne][Ligne] = 1;
  201.           Tableau1[Colonne][Ligne - 1] = 1;
  202.           Tableau1[Colonne][Ligne - 2] = 1;
  203.           NombresDeBateaux++;
  204.         }
  205.         if (keyPressed && keyCode == DOWN) {
  206.           Tableau1[Colonne] [Ligne] = 1;
  207.           Tableau1[Colonne] [Ligne + 1] = 1;
  208.           Tableau1[Colonne][Ligne + 2] = 1;
  209.         }
  210.       }
  211.     }
  212.   }
  213.   if (NombresDeBateaux == 3) {
  214.     for (int x = 0; x < NbrColonnes; x++) {
  215.       for (int y = 0; y < NbrLignes; y++) {
  216.         textSize(20);
  217.         fill(255, 0, 0);
  218.         text("Placez votre croiseur grâce aux flêches directionnelles sur l'écran de gauche ! Le curseur de la souris définit l'origine du bateau.", 40, 700);
  219.         if (keyPressed && keyCode == LEFT) {
  220.           Tableau1[Colonne][Ligne] = 1;
  221.           Tableau1[Colonne - 1][Ligne] = 1;
  222.           Tableau1[Colonne - 2][Ligne] = 1;
  223.           Tableau1[Colonne - 3][Ligne] = 1;
  224.           NombresDeBateaux++;
  225.         }
  226.         if (keyPressed && keyCode == RIGHT) {
  227.           Tableau1[Colonne] [Ligne] = 1;
  228.           Tableau1[Colonne + 1] [Ligne] = 1;
  229.           Tableau1[Colonne + 2] [Ligne] = 1;
  230.           Tableau1[Colonne + 3][Ligne] = 1;
  231.           NombresDeBateaux++;
  232.         }
  233.         if (keyPressed && keyCode == UP) {
  234.           Tableau1[Colonne][Ligne] = 1;
  235.           Tableau1[Colonne][Ligne - 1] = 1;
  236.           Tableau1[Colonne][Ligne - 2] = 1;
  237.           Tableau1[Colonne][Ligne - 3] = 1;
  238.           NombresDeBateaux++;
  239.         }
  240.         if (keyPressed && keyCode == DOWN) {
  241.           Tableau1[Colonne] [Ligne] = 1;
  242.           Tableau1[Colonne] [Ligne + 1] = 1;
  243.           Tableau1[Colonne][Ligne + 2] = 1;
  244.           Tableau1[Colonne][Ligne + 3] = 1;
  245.         }
  246.       }
  247.     }
  248.   }
  249.   if (NombresDeBateaux == 5) {
  250.     MomentDuJeu = 2;
  251.   }
  252. }
  253. void mouseMoved() {
  254. println(mouseX, mouseY);
  255. }

mood
Publicité
Posté le 15-05-2016 à 12:43:08  profilanswer
 

n°2281502
bistouille
Posté le 15-05-2016 à 17:17:16  profilanswer
 

J'y connais rien en java, mais le problème vient de ton incrémentation de NombresDeBateaux, là chaque fois que utilises une flèche clavier, tu incrémentes ta variable.
Pas très logique ça.
 
Pour ça à mon avis que tu rentres pas dans les autres conditions, ta variable doit valoir bien plus que 5.
 
Sinon, ton code est super répétitif, faudrait faire ça dans une boucle, ou fonction séparée pour éviter cette redondance de code.
 
Bon courage  :o  
 


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.

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

  Problème Processing Bataille Navale

 

Sujets relatifs
PYGAME python problème labyrinthe URGENTProblème ordre d'exécution - Processing
probleme dans le resultats d'un script qui cherche de motsProblème requête SQL: command not properly ended
[Vb.Net] Problème téléchargement + décompressionProblème responsiv adobe MUSE
Problème de lenteur Visual Studio.[C#]Problème de droit d'accès, Outil de recherche
[Ada][cybernetic] intégrer le système : approche neurale du problème. 
Plus de sujets relatifs à : Problème Processing Bataille Navale


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