if... elif... else... - Minijuegos(1) - Soluciones

Se ofrecen a continuación unas posibles soluciones de los ejercicios de if ... elif ... else ... Minijuegos (1).

Minijuegos (1) - 1

from random import randrange

print("JUEGO DE DADOS (1)")

a = randrange(1, 7)
b = randrange(1, 7)

print(f"Alberto ha sacado un {a}.")
print(f"Bárbara ha sacado un {b}.")

if a == b:
    print("Han empatado.")
elif a > b:
    print("Ha ganado Alberto.")
else:
    print("Ha ganado Bárbara.")

Minijuegos (1) - 2

from random import randrange

print("JUEGO DE DADOS (2)")

a_1 = randrange(1, 7)
a_2 = randrange(1, 7)
b_1 = randrange(1, 7)
b_2 = randrange(1, 7)
max_a = max(a_1, a_2)
max_b = max(b_1, b_2)

print(f"Carmen ha sacado un {a_1} y un {a_2}.")
print(f"David ha sacado un {b_1} y un {b_2}.")

if a_1 + a_2 > b_1 + b_2:
    print("Ha ganado Carmen.")
elif a_1 + a_2 < b_1 + b_2:
    print("Ha ganado David.")
else:
    if max_a > max_b:
        print("Ha ganado Carmen.")
    elif max_a < max_b:
        print("Ha ganado David.")
    else:
        print("Han empatado.")

En vez de if ... else ... anidados se podía haber utilizado un único if ... elif ... else ...

from random import randrange

print("JUEGO DE DADOS (2)")

a_1 = randrange(1, 7)
a_2 = randrange(1, 7)
b_1 = randrange(1, 7)
b_2 = randrange(1, 7)
max_a = max(a_1, a_2)
max_b = max(b_1, b_2)

print(f"Carmen ha sacado un {a_1} y un {a_2}.")
print(f"David ha sacado un {b_1} y un {b_2}.")

if a_1 + a_2 > b_1 + b_2:
    print("Ha ganado Carmen.")
elif a_1 + a_2 < b_1 + b_2:
    print("Ha ganado David.")
elif max_a > max_b:
    print("Ha ganado Carmen.")
elif max_a < max_b:
    print("Ha ganado David.")
else:
    print("Han empatado.")

Minijuegos (1) - 3

from random import randrange

print("JUEGO DE DADOS (3)")

a_1 = randrange(1, 7)
a_2 = randrange(1, 7)
b_1 = randrange(1, 7)
b_2 = randrange(1, 7)
max_a = max(a_1, a_2)
max_b = max(b_1, b_2)
min_a = min(a_1, a_2)
min_b = min(b_1, b_2)

print(f"Elena ha sacado un {a_1} y un {a_2}.")
print(f"Fernando ha sacado un {b_1} y un {b_2}.")

if max_a > max_b:
    print("Ha ganado Elena.")
elif max_a < max_b:
    print("Ha ganado Fernando.")
else:
    if min_a > min_b:
        print("Ha ganado Elena.")
    elif min_a < min_b:
        print("Ha ganado Fernando.")
    else:
        print("Han empatado.")

Minijuegos (1) - 4

En este ejercicio los casos se pueden ordenar de muchas distintas. Una posibilidad es la siguiente:

from random import randrange

print("JUEGO DEL QUINCE")

g_1 = randrange(1, 11)
g_2 = randrange(1, 11)
g_3 = randrange(1, 11)
h_1 = randrange(1, 11)
h_2 = randrange(1, 11)
h_3 = randrange(1, 11)
g = g_1 + g_2 + g_3
h = h_1 + h_2 + h_3

print(f"Gloria ha sacado un {g_1}, un {g_2} y un {g_3}.")
print(f"Héctor ha sacado un {h_1}, un {h_2} y un {h_3}.")

if g > 15 and h > 15:
    print("No ha ganado nadie.")
elif g == h:
    print("Han empatado")
elif h > 15:
    print("Ha ganado Gloria.")
elif g < 15 and g > h:
    print("Ha ganado Gloria.")
else:
    print("Ha ganado Héctor.")

Minijuegos (1) - 5

from random import choice

print("PIEDRA, PAPEL, ... ¡TIJERA!")

i = choice(["PIEDRA", "PAPEL", "TIJERA"])
j = choice(["PIEDRA", "PAPEL", "TIJERA"])

print(f"Inés ha sacado {i}.")
print(f"Juan ha sacado {j}.")

if i == j:
    print("Han empatado.")
elif i == "PIEDRA" and j == "TIJERA":
    print("Ha ganado Inés.")
elif i == "TIJERA" and j == "PAPEL":
    print("Ha ganado Inés.")
elif i == "PAPEL" and j == "PIEDRA":
    print("Ha ganado Inés")
else:
    print("Ha ganado Juan.")