Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created May 19, 2021 16:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/ec89cac70d648e79ad1cd496f30d0d77 to your computer and use it in GitHub Desktop.
Save parzibyte/ec89cac70d648e79ad1cd496f30d0d77 to your computer and use it in GitHub Desktop.
int jugador_puede_moverse(char bosque[medidaGlobalBosque][medidaGlobalBosque], char jugador, char direccion) {
int x, y;
if (jugador == ARQUERO_J1) {
x = coordenada_x_jugador_1;
y = coordenada_y_jugador_1;
} else {
x = coordenada_x_jugador_2;
y = coordenada_y_jugador_2;
}
if (direccion == DIRECCION_ABAJO) {
y++;
} else if (direccion == DIRECCION_ARRIBA) {
y--;
} else if (direccion == DIRECCION_DERECHA) {
x++;
} else if (direccion == DIRECCION_IZQUIERDA) {
x--;
} else {
// Si no es ninguna dirección válida, regresamos false
return 0;
}
// Luego de modificar las coordenadas, vemos si son válidas. Comprobamos si están dentro del tablero
if (x < 0 || x >= medidaGlobalBosque || y < 0 || y >= medidaGlobalBosque) {
printf("Posicion fuera del tablero\n");
return 0;
}
// Y comprobamos si no es un árbol u otro jugador
if (bosque[y][x] == ESPACIO_VACIO) {
return 1;
} else {
printf("Espacio no vacio\n");
return 0;
}
}
void mover(char bosque[medidaGlobalBosque][medidaGlobalBosque], char jugador, char direccion) {
printf("El jugador %c elige moverse hacia ", jugador);
int xOriginal, yOriginal;
if (jugador == ARQUERO_J1) {
xOriginal = coordenada_x_jugador_1;
yOriginal = coordenada_y_jugador_1;
} else {
xOriginal = coordenada_x_jugador_2;
yOriginal = coordenada_y_jugador_2;
}
int nuevaX = xOriginal, nuevaY = yOriginal;
if (direccion == DIRECCION_ABAJO) {
printf(" abajo\n");
nuevaY++;
} else if (direccion == DIRECCION_ARRIBA) {
printf(" arriba\n");
nuevaY--;
} else if (direccion == DIRECCION_DERECHA) {
printf(" la derecha\n");
nuevaX++;
} else if (direccion == DIRECCION_IZQUIERDA) {
printf(" la izquierda\n");
nuevaX--;
}
// Limpiamos la posición anterior
bosque[yOriginal][xOriginal] = ESPACIO_VACIO;
// Y movemos al personaje
bosque[nuevaY][nuevaX] = jugador;
// Guardamos las coordenadas
if (jugador == ARQUERO_J1) {
coordenada_x_jugador_1 = nuevaX;
coordenada_y_jugador_1 = nuevaY;
} else {
coordenada_x_jugador_2 = nuevaX;
coordenada_y_jugador_2 = nuevaY;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment