Necesito que hagas una modificación de este código en dónde te puedas moverte usando las flechas del teclado a base de este código: #include <stdio.h> int main() { int sizeX = 6; int sizeY = 7; int matrix[6][7] = { {0, 1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0}, {0, 1, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0} }; for (int i = 0; i < sizeX; i++) { for (int j = 0; j < sizeY; j++) { printf("%d ", matrix[i][j]); } } return 0; }
Aquí te muestro una versión modificada del código que permite moverte usando las flechas del teclado. Para hacer esto, utilizaremos la biblioteca `ncurses` que es una biblioteca de C++ para crear interfaces de usuario en modo texto. Primero, debes instalar la biblioteca `ncurses` en tu sistema. En Ubuntu o distribuciones similares, puedes instalarla con el siguiente comando: ```bash sudo apt-get install libncurses5-dev ``` Luego, puedes compilar y ejecutar el programa con el siguiente comando: ```bash g++ -o movimiento movimiento.cpp -lncurses ``` Aquí te muestro el código: ```cpp #include <ncurses.h> #include <iostream> // Constantes para la dirección de movimiento const int UP = 0; const int DOWN = 1; const int LEFT = 2; const int RIGHT = 3; // Estructura para representar la posición del personaje struct Posicion { int x; int y; }; // Función para dibujar la matriz void dibujarMatriz(int matrix[6][7]) { for (int i = 0; i < 6; i++) { for (int j = 0; j < 7; j++) { if (i == 0 && j == 0) { mvprintw(i, j, "P"); } else { mvprintw(i, j, "%d", matrix[i][j]); } } } } int main() { // Inicializar ncurses initscr(); noecho(); curs_set(0); // Definir la matriz int sizeX = 6; int sizeY = 7; int matrix[6][7] = { {0, 1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0}, {0, 1, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0} }; // Definir la posición inicial del personaje Posicion posicion = {0, 0}; // Dibujar la matriz dibujarMatriz(matrix); // Mover el personaje while (true) { // Obtener la dirección de movimiento int direccion = getch(); // Mover el personaje según la dirección switch (direccion) { case 'w': if (posicion.y > 0) { posicion.y--; } break; case 's': if (posicion.y < 5) { posicion.y++; } break; case 'a': if (posicion.x > 0) { posicion.x--; } break; case 'd': if (posicion.x < 6) { posicion.x++; } break; } // Dibujar la matriz actualizada clear(); dibujarMatriz(matrix); mvprintw(posicion.y, posicion.x, "P"); // Actualizar la pantalla refresh(); } // Terminar ncurses endwin(); return 0; } ``` En este código, el personaje se mueve según la dirección obtenida con `getch()`. La dirección se puede obtener con las teclas `w`, `a`, `s` y `d`. El personaje se dibuja en la posición actualizada en la matriz.