Curse of Coding

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?

Eve
Monstro

¡Veamos cómo luce el código utilizando condicionales y operadores lógicos!

c++
1#include <iostream>
2
3using namespace std;
4
5int main() {
6 int damage = 50;
7 int monstrosHealth = 200;
8
9 if (damage >= monstrosHealth) {
10 cout << "¡Derrotaste a Monstro!" << endl;
11 } else {
12 cout << "Skill Issue!" << endl;
13 }
14
15 return 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 Transcendence, que nos permite volar.

Eve
The Bloat

¿Cómo nos irá ahora contra este jefe?

c++
1#include <iostream>
2
3using namespace std;
4
5int main() {
6 int damage = 500;
7 int theBloatHealth = 450;
8 bool canFly = true;
9
10 if (damage >= theBloatHealth && canFly) {
11 cout << "¡Derrotaste a Bloat!" << endl;
12 } else {
13 cout << "Skill Issue!" << endl;
14 }
15
16 return 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:

c++
1#include <iostream>
2
3using namespace std;
4
5int main() {
6 int keys = 0;
7 int bombs = 0;
8 int coins = 0;
9
10 string pickup = "key";
11
12 if (pickup == "bomb") {
13 bombs ++;
14 } else if(pickup == "coin"){
15 coins ++;
16 } else {
17 keys ++;
18 }
19
20 cout << "Total de llaves: " << keys << endl;
21 cout << "Total de bombas: " << bombs << endl;
22 cout << "Total de monedas: " << coins << endl;
23
24 return 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.

Tainted Bethany
tainted/Tainted Bethany.png
soul Heartsoul Heartsoul Heart
Tainted Bethany Damage3.5
Tainted Bethany Tears0
Mask of Infamy

Desarrolla un programa en C++ que:

Daño Final = (Objetos * 10) * 3.5

¡Etiquetame en tu post si resolviste el desafío!

OperadoresSwitch
Sausage

Acá está la pizzería!