Condicionales
Cuando estás jugando un videojuego generalmente todo el gameplay se trata de tomar decisiones, ¿Tomaré este objeto o este?, ¿Voy a la izquierda o a la derecha?, ¿Ataco o corro? y en programación esto se ve reflejado con los condicionales, en C++ el condicional que vamos a estar utilizando será if y else.
La sentencia if se utiliza para ejecutar un bloque de código si una condición es verdadera y siempre va acompañada de una condición mientras que la sentencia else siempre va a acompañar a un if y se ejecutará solamente cuando la condición sea falsa.
Vamos a intentar entender este condicional con el siguiente ejemplo:
Acabamos de entrar a la sala del jefe y tenemos 50 de daño, Monstro tiene 200 de vida y disponemos únicamente de un solo disparo. ¿Podemos derrotar a Monstro?


¡Veamos cómo luce el código utilizando condicionales y operadores lógicos!
1#include <iostream>23using namespace std;45int main() {6int damage = 50;7int monstrosHealth = 200;89if (damage >= monstrosHealth) {10cout << "¡Derrotaste a Monstro!" << endl;11} else {12cout << "Skill Issue!" << endl;13}1415return 0;16}
Este programa funciona de la siguiente manera:
1: Declaramos el daño que tenemos junto con la vida de Monstro.
2: Verificamos si el daño es mayor o igual a la vida de Monstro.
3: Si es verdadero, imprimimos "¡Derrotaste a Monstro!".
4: Sí no, imprimimos "Skill Issue!".
5: Finalizamos el programa.
Así es como funcionan los condicionales, y pueden ser utilizados para crear lógica más compleja en tus programas, como por ejemplo el siguiente caso:
Ahora hemos avanzado más en la partida y nos encontramos a The Bloat, un jefe mucho más fuerte que Monstro, con 450 de vida y que deja la sala llena de creep que nos hace daño al caminar encima.
Ahora poseemos 500 de daño y el objeto Transcendence
, que nos permite volar.


¿Cómo nos irá ahora contra este jefe?
1#include <iostream>23using namespace std;45int main() {6int damage = 500;7int theBloatHealth = 450;8bool canFly = true;910if (damage >= theBloatHealth && canFly) {11cout << "¡Derrotaste a Bloat!" << endl;12} else {13cout << "Skill Issue!" << endl;14}1516return 0;17}
Ahora en este programa utilizamos el condicional lógico AND (&&) el cual nos permite evaluar múltiples condiciones, en este caso, verificamos que el daño sea mayor o igual a la vida de Bloat Y que podamos volar, al cumplirse ambas condiciones, se ejecutará el bloque de código correspondiente.
Las condicionales pueden poseer en su sentencia else otra condicional, esto se conoce como else if y nos sirve para tener múltiples condiciones a evaluar.
Al abrir un cofre, este nos suelta un pickup, necesitamos saber qué clase de pickup es para aumentar el contador en pantalla, veamos este ejemplo:
1#include <iostream>23using namespace std;45int main() {6int keys = 0;7int bombs = 0;8int coins = 0;910string pickup = "key";1112if (pickup == "bomb") {13bombs ++;14} else if(pickup == "coin"){15coins ++;16} else {17keys ++;18}1920cout << "Total de llaves: " << keys << endl;21cout << "Total de bombas: " << bombs << endl;22cout << "Total de monedas: " << coins << endl;2324return 0;25}
Lo que pasa en este programa puede verse así:
1: Verificamos si el pickup es una bomba, si es así, aumentamos el contador de bombas.
2: Sí no, verificamos si es una moneda, si es así, aumentamos el contador de monedas.
3: Sí no, aumentamos el contador de llaves, en este caso no hace falta volver a preguntar si se trata de una llave, puesto que es el último caso posible.
Sala de desafío #2
Hoy Bethany quiere saber si tiene suficiente daño para derrotar a Mask of Infamy poniendo a prueba tu dominio con las condicionales.




3.5
0
Desarrolla un programa en C++ que:
Considera que la vida de Mask of Infamy es de 350.
Solicite al usuario ingresar la cantidad de objetos tomados hasta el momento.
Por cada objeto tomado, el daño de Bethany se multiplicará por 10, es decir:
Daño Final = (Objetos * 10) * 3.5
Si logras derrotar a Mask of Infamy, muestra un mensaje de victoria.
Si no, válida si el usuario tiene más de 7 objetos, si es así, muestra un mensaje de que puede intentarlo de nuevo.
Si no, muestra un mensaje de que no tiene suficiente daño.
¡Etiquetame en tu post si resolviste el desafío!
Curse of Coding
