CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Problème de compilation programme en Java avec BlueJ

DébutPage précedente
1
Page suivantePage suivante
37Kilonewton 37Kilonewton
MP
Niveau 1
04 décembre 2020 à 00:31:48

Bonjour à tous et merci d'avance.

Je poste sur ce forum pour demander de l'aide, je dois coder un puissance 4 et l'ensemble de mon code compile à l'exception d'une ligne, je me permet de vous poster le code en entier dans la balise spoiler pour ne pas trop parasiter :

public class testuuu
{  int NUM_ROWS = 6;
   int NUM_COLUMNS = 7;
  let board = new Array(NUM_ROWS);
  let currentPlayer = 'X';
  let isGameOver = false;
  let winner = null;
  let tokenColumn = -1;
  let tokenRow = -1;

  function checkIfGameIsOver() {
    //console.log("checkIfGameIsOver");
     didSomeBodyWin = checkForWinner();
    if(didSomeBodyWin) {
      console.log("The winner is " + winner);
      return isGameOver;
    }
  }

  function checkForWinner() {
    checkForHorizontalWin();
    isGameOver();
    checkForVerticalWin();
    return isGameOver;
  }

  function checkForHorizontalWin() {
    for(let j=0; j <= NUM_COLUMNS - 4; j++) {
      if(board[tokenRow][j] == currentPlayer) {
        // check next 3 elements in row
        if(board[tokenRow][j+1] ==currentPlayer && 
        board[tokenRow][j+2]==currentPlayer && 
        board[tokenRow][j+3] ==currentPlayer) {
          winner = currentPlayer;
          isGameOver = true;
          break;
        }
      }
    }
    if(winner != null) {
      console.log("Horizontal Win");
    }
    return isGameOver;
  }

  function checkForVerticalWin() {
    for(let i=0; i <= NUM_ROWS - 4; i++) {
      if(board[i][tokenColumn] == currentPlayer) {
        if(board[i+1][tokenColumn] ==currentPlayer && 
        board[i+2][tokenColumn]==currentPlayer && 
        board[i+3][tokenColumn] ==currentPlayer) {
          winner = currentPlayer;
          isGameOver = true;
          break;
        }
      }
    }
    if(winner != null) {
      console.log("Vertical Win");
    }
    return isGameOver;
  }

  function switchPlayer() {
    currentPlayer = currentPlayer == 'X' ? 'O' : 'X';
  }

  function playGame() {
    while(!isGameOver) {
      console.log("Player "+ currentPlayer+"'s turn : ");
      //console.log("playGame");
      handleTurn();
      // checkIfGameIsOver();
      switchPlayer();
    }
  }

  function handleTurn() {
    //console.log("handleTurn");
    // accept user input and place token accordingly
    tokenColumn = prompt("Enter column where to place token (1-7) ");
    if(tokenColumn >=1 && tokenColumn <=7) {
      tokenColumn = parseInt(tokenColumn-1);
      dropToken();
    }
    else
      handleTurn();
  }

  function dropToken() {
    let isTokenDropped = false;
    // start from last row and check if the cell at [row][col] can be filled or not
    let row = NUM_ROWS - 1;
    while(!isTokenDropped && row >= 0) {
      //console.log("Checking : " + row + ", " + tokenColumn);
      if(board[row][tokenColumn] == '_') {
        isTokenDropped = true;
        board[row][tokenColumn] = currentPlayer;
        //console.log("Token Dropped at ["+row+"]["+tokenColumn+"]");
        // save the row where we dropped the token
        tokenRow = row;
      }
      // move to next row
      row--;
    }
    // If we've exhausted all our rows and still not dropped a token, we must ask user to choose another column
    if(!isTokenDropped && row < 0) {
      console.log("Column is FULL ! Please choose a value other than " + (tokenColumn+1));
    }
    // display board again after dropping token
    displayBoard();

  }

  function setupBoard() {
    for(let rowIndex = 0; rowIndex < NUM_ROWS; rowIndex++) {
      board[rowIndex] = {"","","","","",""};
   }
}

  function displayBoard() {
    for(let rowIndex = 0; rowIndex < NUM_ROWS; rowIndex++) {
      console.log(" " + board[rowIndex].join(" | "));
   }
  }

  function connectFour() {
    setupBoard();
    displayBoard();
    playGame();
  }

}

La partie me posant problème est :

board[rowIndex] = {"","","","","",""};

Dans la 3ème partie en partant de la fin, rien à faire il me met 3 erreurs sur la ligne : illegal start of expression, not a statement et enfin ";" expected... (Je suis en Java sur BlueJ d'ailleurs).

Merci à tous

xidi87 xidi87
MP
Niveau 8
04 décembre 2020 à 02:10:16

On dirait plutôt du javascript écrit sous forme java-like
Je ne connais pas blueJ... c'est dans le cadre d'une formation ?

Pour corriger ton problème, il suffit d'affecter un tableau :
board[rowIndex] = ["","","","","",""];

Message édité le 04 décembre 2020 à 02:12:06 par xidi87
[JV]Orgha [JV]Orgha
MP
Niveau 9
04 décembre 2020 à 13:41:29

C'est pas du java mais du JavaScript dans ta balise spoil

37Kilonewton 37Kilonewton
MP
Niveau 1
04 décembre 2020 à 19:04:27

D'accord merci ça a marché et en effet c'était du JVS, désolé !

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment