juego de laberinto en c
Publicado por john (1 intervención) el 14/08/2001 22:36:10
diseño del algoritmo en c
Valora esta pregunta


0
#define FILAS 5
#define COLUMNAS 5
int laberinto[FILAS][COLUMNAS] = {
{0, 1, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 1, 0},
{1, 1, 0, 0, 0},
{0, 0, 1, 1, 0}
};
#include <stdio.h>
#define FILAS 5
#define COLUMNAS 5
int laberinto[FILAS][COLUMNAS] = {
{0, 1, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 1, 0},
{1, 1, 0, 0, 0},
{0, 0, 1, 1, 0}
};
int jugadorX = 0; // Posición inicial del jugador
int jugadorY = 0; // Posición inicial del jugador
void mostrarLaberinto() {
for (int i = 0; i < FILAS; i++) {
for (int j = 0; j < COLUMNAS; j++) {
if (i == jugadorX && j == jugadorY) {
printf("P "); // P para el jugador
} else if (laberinto[i][j] == 1) {
printf("# "); // # para las paredes
} else {
printf(". "); // . para los caminos libres
}
}
printf("\n");
}
}
int moverJugador(int nuevaX, int nuevaY) {
if (nuevaX >= 0 && nuevaX < FILAS && nuevaY >= 0 && nuevaY < COLUMNAS) {
if (laberinto[nuevaX][nuevaY] == 0) {
jugadorX = nuevaX;
jugadorY = nuevaY;
return 1; // Movimiento válido
}
}
return 0; // Movimiento inválido
}
int main() {
char movimiento;
while (1) {
mostrarLaberinto();
printf("Movimiento (w/a/s/d): ");
scanf(" %c", &movimiento);
switch (movimiento) {
case 'w': moverJugador(jugadorX - 1, jugadorY); break; // Arriba
case 's': moverJugador(jugadorX + 1, jugadorY); break; // Abajo
case 'a': moverJugador(jugadorX, jugadorY - 1); break; // Izquierda
case 'd': moverJugador(jugadorX, jugadorY + 1); break; // Derecha
default: printf("Movimiento no válido.\n");
}
// Verificar si el jugador ha llegado a la meta (por ejemplo, en la esquina inferior derecha)
if (jugadorX == FILAS - 1 && jugadorY == COLUMNAS - 1) {
printf("¡Has llegado a la meta!\n");
break;
}
}
return 0;
}