Se connecter

Informatique

Programmation

Sujet : Problème de compilation programme en Java avec BlueJ
1
37Kilonewton
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
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] = ["","","","","",""];

[JV]Orgha
Niveau 9
04 décembre 2020 à 13:41:29

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

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

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

1
Sujet : Problème de compilation programme en Java avec BlueJ
   Retour haut de page
Consulter la version web de cette page