Viince06 | 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 :
- int[][] Tableau1;
- int[][] Tableau2;
- int Taille = 60;
- int NbrColonnes = 10;
- int NbrLignes = 10;
- int NombresDeBateaux = 0;
- PImage FondJeu;
- PImage FondAccueil;
- int MomentDuJeu;
- void setup() {
- size (1300, 750);
- MomentDuJeu = 0;
- CreationDesTableaux();
- }
- void CreationDesTableaux() {
- Tableau1 = new int[NbrColonnes][NbrLignes];
- Tableau2 = new int[NbrColonnes][NbrLignes];
- for (int Colonne = 0; Colonne < NbrColonnes; Colonne++) {
- for (int Ligne = 0; Ligne < NbrLignes; Ligne++) {
- Tableau1[Colonne][Ligne] = 0;
- Tableau2[Colonne][Ligne] = 0;
- }
- }
- }
- void draw() {
- PartieEnCours();
- }
- void PartieEnCours() {
- if (MomentDuJeu == 0) {
- FondAccueil = loadImage("Bateau_fun.jpg" );
- image(FondAccueil, 0, 0, width, height);
- textSize(40);
- fill(0);
- text("Appuyez sur la barre d'espace pour lancer la partie !", 200, 560);
- textSize(60);
- fill(255, 255, 0);
- text("BATAILLE NAVALE", 400, 100);
- if (keyPressed && key == ' ') MomentDuJeu = 1;
- }
- if (MomentDuJeu == 1) {
- AffichageImageDebut();
- AffichageDesTableaux();
- AffichageDesCoordonnees();
- PlacementDesBateaux();
- }
- }
- void AffichageImageDebut() {
- FondJeu = loadImage("Eau.jpg" );
- image(FondJeu, 0, 0, width/2, height);
- image(FondJeu, width/2, 0, width/2, height);
- }
- void AffichageDesTableaux() {
- textSize(Taille);
- image(FondJeu, 0, 0, width/2, height);
- image(FondJeu, width/2, 0, width/2, height);
- for (int Colonne = 0; Colonne < NbrColonnes; Colonne++) {
- for (int Ligne = 0; Ligne < NbrLignes; Ligne++) {
- int ContenuCase1 = Tableau1[Colonne][Ligne];
- int ContenuCase2 = Tableau2[Colonne][Ligne];
- if (ContenuCase1 == 0) fill(0, 0, 255);
- if (ContenuCase1 == 1) fill(0, 255, 0);
- if (ContenuCase1 == 2) fill(255, 0, 0);
- if (ContenuCase1 == 3) fill(0);
- if (ContenuCase2 == 0) fill(0, 0, 255);
- if (ContenuCase2 == 1) fill(0, 255, 0);
- if (ContenuCase2 == 2) fill(255, 0, 0);
- if (ContenuCase2 == 3) fill(0);
- text(ContenuCase1, Taille * Colonne, Taille * (Ligne+1) ); //!\\
- text(ContenuCase2, Taille * Colonne + ((width/2)+60), Taille * (Ligne+1) );
- }
- }
- }
- void AffichageDesCoordonnees() {
- fill(0);
- strokeWeight(3);
- stroke(0);
- text("A", 0, 670);
- text("B", 60, 670);
- text("C", 120, 670);
- text("D", 180, 670);
- text("E", 240, 670);
- text("F", 300, 670);
- text("G", 360, 670);
- text("H", 420, 670);
- text("I", 490, 670);
- text("J", 550, 670);
- text("1", 620, 60);
- text("2", 620, 120);
- text("3", 620, 180);
- text("4", 620, 240);
- text("5", 620, 300);
- text("6", 620, 360);
- text("7", 620, 420);
- text("8", 620, 480);
- text("9", 620, 540);
- text("10", 600, 600);
- text("A", 710, 670);
- text("B", 770, 670);
- text("C", 830, 670);
- text("D", 890, 670);
- text("E", 950, 670);
- text("F", 1010, 670);
- text("G", 1070, 670);
- text("H", 1130, 670);
- text("I", 1200, 670);
- text("J", 1260, 670);
- line(0, 615, 590, 615);
- line(590, 0, 590, 615);
- line(width, 615, 690, 615);
- line(690, 0, 690, 615);
- }
- void PlacementDesBateaux() {
- int Colonne = (int)(mouseX)/Taille; //on clique dans la colonne qui correspond à la postion de la souris divisée par la taille
- int Ligne = (int)(mouseY)/Taille; //on clique dans la ligne qui correspond à la postion de la souris divisée par la taille
- if (Colonne >= NbrColonnes-1) Colonne = NbrColonnes-1; //!\\
- if (Ligne >= NbrLignes-1) Ligne = NbrLignes-1; //!\\
- println("On place dans la colonne "+(Colonne+1));
- println("On place dans la ligne "+(Ligne+1));
- if (NombresDeBateaux == 0) {
- for (int x = 0; x < NbrColonnes; x++) {
- for (int y = 0; y < NbrLignes; y++) {
- textSize(20);
- fill(255, 0, 0);
- 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);
- if (keyPressed && keyCode == LEFT) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne - 1][Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == RIGHT) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne + 1] [Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == UP) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne][Ligne - 1] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == DOWN) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne] [Ligne + 1] = 1;
- NombresDeBateaux++;
- }
- }
- }
- }
- if (NombresDeBateaux == 1) {
- for (int x = 0; x < NbrColonnes; x++) {
- for (int y = 0; y < NbrLignes; y++) {
- textSize(20);
- fill(255, 0, 0);
- 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);
- if (keyPressed && keyCode == LEFT) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne - 1][Ligne] = 1;
- Tableau1[Colonne - 2][Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == RIGHT) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne + 1] [Ligne] = 1;
- Tableau1[Colonne + 2] [Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == UP) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne][Ligne - 1] = 1;
- Tableau1[Colonne][Ligne - 2] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == DOWN) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne] [Ligne + 1] = 1;
- Tableau1[Colonne][Ligne + 2] = 1;
- NombresDeBateaux++;
- }
- }
- }
- }
- if (NombresDeBateaux == 2) {
- for (int x = 0; x < NbrColonnes; x++) {
- for (int y = 0; y < NbrLignes; y++) {
- textSize(20);
- fill(255, 0, 0);
- 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);
- if (keyPressed && keyCode == LEFT) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne - 1][Ligne] = 1;
- Tableau1[Colonne - 2][Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == RIGHT) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne + 1] [Ligne] = 1;
- Tableau1[Colonne + 2] [Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == UP) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne][Ligne - 1] = 1;
- Tableau1[Colonne][Ligne - 2] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == DOWN) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne] [Ligne + 1] = 1;
- Tableau1[Colonne][Ligne + 2] = 1;
- }
- }
- }
- }
- if (NombresDeBateaux == 3) {
- for (int x = 0; x < NbrColonnes; x++) {
- for (int y = 0; y < NbrLignes; y++) {
- textSize(20);
- fill(255, 0, 0);
- 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);
- if (keyPressed && keyCode == LEFT) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne - 1][Ligne] = 1;
- Tableau1[Colonne - 2][Ligne] = 1;
- Tableau1[Colonne - 3][Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == RIGHT) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne + 1] [Ligne] = 1;
- Tableau1[Colonne + 2] [Ligne] = 1;
- Tableau1[Colonne + 3][Ligne] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == UP) {
- Tableau1[Colonne][Ligne] = 1;
- Tableau1[Colonne][Ligne - 1] = 1;
- Tableau1[Colonne][Ligne - 2] = 1;
- Tableau1[Colonne][Ligne - 3] = 1;
- NombresDeBateaux++;
- }
- if (keyPressed && keyCode == DOWN) {
- Tableau1[Colonne] [Ligne] = 1;
- Tableau1[Colonne] [Ligne + 1] = 1;
- Tableau1[Colonne][Ligne + 2] = 1;
- Tableau1[Colonne][Ligne + 3] = 1;
- }
- }
- }
- }
- if (NombresDeBateaux == 5) {
- MomentDuJeu = 2;
- }
- }
- void mouseMoved() {
- println(mouseX, mouseY);
- }
|
|