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
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] = ["","","","","",""];
C'est pas du java mais du JavaScript dans ta balise spoil
D'accord merci ça a marché et en effet c'était du JVS, désolé !