Así va mi versión del juego hasta ahora usando todo lo que hemos aprendido en clase (switchs, do whiles, condicionales, entre otras): https://repl.it/repls/PeriodicMushyNasm
Código:
#include <iostream>
void draw_world(int lives, char map[3], int heroPos) {
std::cout << "\n\n";
std::cout << "Vidas: " << lives << "\n";
// Imprime H en la posicion del personaje
// y - en cualquier otra parte.
for (int i = 0; i < 3; i++) {
if (i == heroPos) {
std::cout << "H";
} else {
std::cout << map[i];
}
}
std::cout << "\n\n";
}
char ask_move() {
char lastMove;
std::cout << "Izquierda o derecha (i/d): ";
std::cin >> lastMove;
return lastMove;
}
int main() {
std::cout << "Hello World!\n\n";
char map[3] = {'-', '-', '-'};
int heroPos = 0;
char lastMove = ' ';
int lives = 5;
do {
draw_world(lives, map, heroPos);
char move = ask_move();
switch (move) {
case 'i':
if ((heroPos - 1) < 0) {
std::cout << "NO TE PUEDES SALIR DEL MAPA";
lives--;
} else {
heroPos--;
}
break;
case 'd':
if ((heroPos + 1) > 2) {
std::cout << "NO TE PUEDES SALIR DEL MAPA";
lives--;
} else {
heroPos++;
}
break;
default: std::cout << "Vuelve a intentarlo.";
break;
}
} while (lives > 0);
std::cout << "\nGAME OVER!\n";
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?