Emiliano Rubio

Generation

generate functionSat, 22 Mar 2025

necesito un codigo que sirva como una matriz de 10x10 en donde el 0 sea una pared, representada con un # y el personaje con un * para poder jugar pacman con 2 enemigos que lo sigan, que pueda controlar al personaje con las teclas W, A, S, y D y que tenga 2 vidas y sin #include <windows.h>

Aquí te dejo un ejemplo de código en C++ que crea una matriz de 10x10 con un personaje y dos enemigos, y permite controlar al personaje con las teclas W, A, S, y D. El juego se detiene cuando el personaje choca con una pared o con un enemigo. ```cpp #include <iostream> #include <cstdlib> #include <ctime> using namespace std; const int FILAS = 10; const int COLUMNAS = 10; const int VIDA = 2; char matriz[FILAS][COLUMNAS]; int xPersonaje = 1; int yPersonaje = 1; int xEnemigo1 = 3; int yEnemigo1 = 3; int xEnemigo2 = 5; int yEnemigo2 = 5; int vida = VIDA; void inicializarMatriz() { for (int i = 0; i < FILAS; i++) { for (int j = 0; j < COLUMNAS; j++) { matriz[i][j] = '#'; } } matriz[xPersonaje][yPersonaje] = '*'; matriz[xEnemigo1][yEnemigo1] = 'E'; matriz[xEnemigo2][yEnemigo2] = 'e'; } void imprimirMatriz() { for (int i = 0; i < FILAS; i++) { for (int j = 0; j < COLUMNAS; j++) { cout << matriz[i][j] << " "; } cout << endl; } } void moverPersonaje(char tecla) { int nuevoX, nuevoY; switch (tecla) { case 'w': nuevoX = xPersonaje; nuevoY = yPersonaje - 1; break; case 'a': nuevoX = xPersonaje - 1; nuevoY = yPersonaje; break; case 's': nuevoX = xPersonaje; nuevoY = yPersonaje + 1; break; case 'd': nuevoX = xPersonaje + 1; nuevoY = yPersonaje; break; default: return; } if (nuevoX >= 0 && nuevoX < FILAS && nuevoY >= 0 && nuevoY < COLUMNAS && matriz[nuevoX][nuevoY] != '#') { matriz[xPersonaje][yPersonaje] = '#'; xPersonaje = nuevoX; yPersonaje = nuevoY; matriz[xPersonaje][yPersonaje] = '*'; } } int main() { srand(time(0)); inicializarMatriz(); while (vida > 0) { imprimirMatriz(); cout << "Vidas: " << vida << endl; cout << "Presione W para moverse hacia arriba, A para moverse hacia la izquierda, S para moverse hacia abajo y D para moverse hacia la derecha." << endl; char tecla; cin >> tecla; moverPersonaje(tecla); // Mover enemigos if (rand() % 10 == 0) { int nuevoX, nuevoY; switch (rand() % 4) { case 0: nuevoX = xEnemigo1; nuevoY = yEnemigo1 - 1; break; case 1: nuevoX = xEnemigo1 - 1; nuevoY = yEnemigo1; break; case 2: nuevoX = xEnemigo1; nuevoY = yEnemigo1 + 1; break; case 3: nuevoX = xEnemigo1 + 1; nuevoY = yEnemigo1; break; } if (nuevoX >= 0 && nuevoX < FILAS && nuevoY >= 0 && nuevoY < COLUMNAS && matriz[nuevoX][nuevoY] != '#') { matriz[xEnemigo1][yEnemigo1] = '#'; xEnemigo1 = nuevoX; yEnemigo1 = nuevoY; matriz[xEnemigo1][yEnemigo1] = 'E'; } } if (rand() % 10 == 0) { int nuevoX, nuevoY; switch (rand() % 4) { case 0: nuevoX = xEnemigo2; nuevoY = yEnemigo2 - 1; break; case 1: nuevoX = xEnemigo2 - 1; nuevoY = yEnemigo2; break; case 2: nuevoX = xEnemigo2; nuevoY = yEnemigo2 + 1; break; case 3: nuevoX = xEnemigo2 + 1; nuevoY = yEnemigo2; break; } if (nuevoX >= 0 && nuevoX < FILAS && nuevoY >= 0 && nuevoY < COLUMNAS && matriz[nuevoX][nuevoY] != '#') { matriz[xEnemigo2][yEnemigo2] = '#'; xEnemigo2 = nuevoX; yEnemigo2 = nuevoY; matriz[xEnemigo2][yEnemigo2] = 'e'; } } // Comprobar colisiones if (xPersonaje == xEnemigo1 && yPersonaje == yEnemigo1) { vida--; matriz[xPersonaje][yPersonaje] = '#'; xPersonaje = 1; yPersonaje = 1; matriz[xPersonaje][yPersonaje] = '*'; } if (xPersonaje == xEnemigo2 && yPersonaje == yEnemigo2) { vida--; matriz[xPersonaje][yPersonaje] = '#'; xPersonaje = 1; yPersonaje = 1; matriz[xPersonaje][yPersonaje] = '*'; } if (xPersonaje < 0 || xPersonaje >= FILAS || yPersonaje < 0 || yPersonaje >= COLUMNAS) { vida--; matriz[xPersonaje][yPersonaje] = '#'; xPersonaje = 1; yPersonaje = 1; matriz[xPersonaje][yPersonaje] = '*'; } } imprimirMatriz(); cout << "Game Over. Vidas: " << vida << endl; return 0; } ``` Este código crea una matriz de 10x10 con un personaje y dos enemigos, y permite controlar al personaje con las teclas W, A, S, y D. El juego se detiene cuando el personaje choca con una pared o con un enemigo. Los enemigos se mueven aleatoriamente en cada iteración del bucle principal.

Want to kickstart your project?Use the new AI Studio to create your code