C/Visual C - laberinto

 
Vista:

laberinto

Publicado por Luis Miguel Zambrano (2 intervenciones) el 16/08/2001 00:14:50
por favor necesito con urgencia que me manden el juego de laberinto,es decir el algoritmo en C para recuperarme de un 2.5 que saque en el primer parcial de informatica 1en la U.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Juego de laberinto en C

Publicado por Alejandro (913 intervenciones) el 10/10/2024 23:36:50
Aquí tienes un ejemplo completo de un juego de laberinto en C. Este código incluye la representación del laberinto, la lógica para mover al jugador y la verificación de si ha llegado a la meta.

Código completo



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <stdlib.h>
 
#define FILAS 5
#define COLUMNAS 5
 
// Representación del laberinto
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}
};
 
// Posición inicial del jugador
int jugadorX = 0;
int jugadorY = 0;
 
// Función para mostrar el laberinto
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");
    }
}
 
// Función para mover al jugador
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
}
 
// Función principal
int main() {
    char movimiento;
    printf("¡Bienvenido al juego de laberinto!\n");
    printf("Instrucciones: Usa 'w' para arriba, 's' para abajo, 'a' para izquierda, 'd' para derecha.\n");
 
    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 (esquina inferior derecha)
        if (jugadorX == FILAS - 1 && jugadorY == COLUMNAS - 1) {
            printf("¡Has llegado a la meta! ¡Felicidades!\n");
            break;
        }
    }
    return 0;
}

Explicación del código



1. Representación del laberinto: Se utiliza una matriz de 5x5 donde `0` representa un camino libre y `1` representa una pared.

2. Mostrar laberinto: La función `mostrarLaberinto` imprime el estado actual del laberinto, mostrando la posición del jugador.

3. Movimiento del jugador: La función `moverJugador` verifica si el movimiento es válido y actualiza la posición del jugador.

4. Bucle principal: En el `main`, se ejecuta un bucle que permite al jugador ingresar movimientos hasta que llegue a la meta.

Instrucciones para compilar y ejecutar



1. Copia el código en un archivo llamado `laberinto.c`.
2. Abre una terminal y navega hasta el directorio donde guardaste el archivo.
3. Compila el código usando un compilador de C, por ejemplo:
1
gcc laberinto.c -o laberinto
4. Ejecuta el programa:
1
./laberinto

Conclusión



Este juego de laberinto es un buen ejercicio para practicar la programación en C y la lógica de control. ¡Buena suerte en tu examen, Luis!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar