-
Notifications
You must be signed in to change notification settings - Fork 0
/
juego.c
79 lines (70 loc) · 2.32 KB
/
juego.c
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
75
76
77
78
79
#include"laberinto.h"
#include<stdbool.h>
#include"copa.h"
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
/*
*PRE: Recibe la estructura jugador y el laberinto que se visualiza.
*POS: Elimina la anterior posicion del jugador del laberinto.
*/
void limpiar_jugador(jugador_t* jugador, char laberinto[TAMANIO][TAMANIO]){
laberinto[jugador->posicion.fil][jugador->posicion.col]=VACIO;
}
/*
*PRE: Recibe la estructura rival y el laberinto que se visualiza.
*POS: Elimina la anterior posicion del rival del laberinto.
*/
void limpiar_rival(rival_t* rival, char laberinto[TAMANIO][TAMANIO]){
laberinto[rival->posicion.fil][rival->posicion.col]=VACIO;
}
/*
*PRE: Recibe una tecla, la estructura del juego y el turno.
*POS: Solicita al usuario que ingrese una tecla en base a la que se realizara un movimiento dentro del laberinto. Ademas muetra el turno en el que se encuentra el jugador.
*/
void solicitar_movimiento(char* tecla, juego_t juego, int turno){
do{
printf("\nEs su turno (%i).\nPresione:\n-'a' para desplazarse hacia la IZQUIERDA.\n-'d' para desplazarse hacia la DERECHA.\n-'w' para desplazarse hacia ARRIBA.\n-'s' para desplazarse hacia ABAJO.\n", turno);
scanf(" %c", tecla);
}while(!es_movimiento_valido(&juego,*tecla));
}
/*
*PRE: Recibe la estructura juego.
*POS: Muestra la vida actual y los objetos que se encuentran en el vector de ayudas del jugador.
*/
void mostrar_vida_y_mochila(juego_t juego) {
printf("Vida actual: %i, ", juego.jugador.vida);
printf("Mochila: [" );
for (int i=0; i<juego.jugador.tope_ayudas; i++){
printf(" %c ", juego.jugador.ayudas[i].codigo);
}
printf("]\n");
}
int main(){
juego_t juego;
char laberinto[TAMANIO][TAMANIO];
char tecla;
int turno=1;
inicializar_laberinto(&juego);
actualizar_laberinto(juego, laberinto);
mostrar_laberinto(laberinto);
do {
solicitar_movimiento(&tecla,juego,turno);
limpiar_jugador(&juego.jugador, laberinto);
mover_jugador((&juego.jugador),tecla);
limpiar_rival(&juego.rival,laberinto);
mover_rival(&juego);
actualizar_juego(&juego);
actualizar_laberinto(juego, laberinto);
mostrar_laberinto(laberinto);
mostrar_vida_y_mochila(juego);
turno++;
} while (estado_juego(juego)==0);
if (estado_juego(juego)==1){
printf("GANASTE! :)\n");
}
else {
printf("PERDISTE. Mejor suerte la proxima :(.\n");
}
return 0;
}