Soy bastante nuevo en Groovy y he estado tratando de hacer un juego simple de tres en raya. Como no hay recursos relacionados con Groovy, he estado siguiendo un proyecto Java y tratando de convertirlo en Groovy. Hasta ahora todo va bien, pero los datos en mi declaración de cambio no reemplazan el espacio en la matriz doble con una X. Intenté depurarlo pero no puedo encontrar el problema. A continuación se muestra el código:
`def gameBoard = [[' ','|',' ','|',' '], ['-','+','-','+','-'], [' ','|',' ','|',' '], ['-','+','-','+','-'], [' ','|',' ','|',' ']] as char[][] //user needs to put a piece in one of the spaces, can do this my doing indexes but easier to number boxes 1-9 println "Enter your placement 1-9" def input = System.in.newReader().readLine() println input //changing a symbol (changing the space characters with our own symbol) switch(input){ //first row, first char case 1: gameBoard[0][0] = 'X' break case 2: gameBoard[0][2] = 'X' break case 3: gameBoard[0][4] = 'X' break case 4: gameBoard[2][0] = 'X' break case 5: gameBoard[2][2] = 'X' break case 6: gameBoard[2][4] = 'X' break case 7: gameBoard[4][0] = 'X' break case 8: gameBoard[4][2] = 'X' break case 9: gameBoard[4][4] = 'X' break } printGameBoard(gameBoard) //print gameBoard[0][1] static def printGameBoard( gameBoard){ //print out the game board using 2 for loops //for each array(row) inside of the game board, for each char (c) inside of the row, we are going to print out the symbol for(char[] row : gameBoard){ for(char c : row){ print c } println() } } `Sistema.en.nuevoLector(). readLine() devuelve una cadena y, en cambio/caso, intenta compararlo con int.
simple agregar as int debería resolver su problema
def input = System.in.newReader().readLine() as int