Bucle for - Minijuegos(2) - Soluciones

Se ofrecen a continuación unas posibles soluciones de los ejercicios de Bucle for Minijuegos (2).

Minijuegos (2) - 1 - Tirada de dados

import random


def main():
    print("TIRADA DE DADOS")
    numero = int(input("Número de dados: "))
    if numero < 1:
        print("¡Imposible!")
    else:
        print("Dados: ", end="")
        for _ in range(numero):
            print(f"{random.randrange(1, 7)} ", end="")


if __name__ == "__main__":
    main()

Minijuegos (2) - 2 - Tiradas de dado

import random


def main():
    print("TIRADAS DE DADO")
    numero = int(input("Número de jugadores: "))
    if numero < 2:
        print("¡Imposible!")
    else:
        for i in range(numero):
            print(f"Jugador {i + 1}: {random.randrange(1, 7)}")


if __name__ == "__main__":
    main()

También podríamos cambiar el tipo range() para que la variable de control del bucle tomara exactamente los números de jugador deseado.

import random


def main():
    print("TIRADAS DE DADO")
    numero = int(input("Número de jugadores: "))
    if numero < 2:
        print("¡Imposible!")
    else:
        for i in range(1, numero + 1):
            print(f"Jugador {i}: {random.randrange(1, 7)}")


if __name__ == "__main__":
    main()

Minijuegos (2) - 3 - Obtener valor (1)

import random


def main():
    print("OBTENER VALOR (1)")
    numero = int(input("Número de jugadores: "))
    if numero < 1:
        print("¡Imposible!")
    else:
        objetivo = int(input("Valor a conseguir: "))
        if objetivo < 1 or objetivo > 6:
            print(f"¡Imposible conseguir un {objetivo}!")
        else:
            for i in range(numero):
                dado = random.randrange(1, 7)
                if dado == objetivo:
                    print(f"Jugador {i + 1}: {dado} CONSEGUIDO")
                else:
                    print(f"Jugador {i + 1}: {dado}")


if __name__ == "__main__":
    main()

Minijuegos (2) - 4 - Obtener valor (2)

import random


def main():
    print("OBTENER VALOR (2)")
    numero = int(input("Número de dados: "))
    if numero < 1:
        print("¡Imposible!")
    else:
        objetivo = int(input("Valor a conseguir: "))
        if objetivo < 1 or objetivo > 6:
            print(f"¡Imposible conseguir un {objetivo}!")
        else:
            gana = False
            print(f"Dados: ", end="")
            for _ in range(numero):
                dado = random.randrange(1, 7)
                print(f"{dado} ", end="")
                if dado == objetivo:
                    gana = True
            print()
            if gana:
                print("El jugador ha ganado.")
            else:
                print("El jugador ha perdido.")


if __name__ == "__main__":
    main()

Minijuegos (2) - 5 - El dado más alto (1)

import random


def main():
    print("EL DADO MÁS ALTO (1)")
    numero = int(input("Número de dados: "))
    if numero < 1:
        print("¡Imposible!")
    else:
        mayor = 1
        print(f"Dados: ", end="")
        for _ in range(numero):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado > mayor:
                mayor = dado
        print()
        print(f"El dado más alto es {mayor}.")


if __name__ == "__main__":
    main()

Minijuegos (2) - 6 - El dado más alto (2)

import random


def main():
    print("EL DADO MÁS ALTO (2)")
    numero = int(input("Número de dados: "))
    if numero < 1:
        print("¡Imposible!")
    else:
        mayor_1 = 1
        print(f"Jugador 1: ", end="")
        for _ in range(numero):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado > mayor_1:
                mayor_1 = dado
        print()
        mayor_2 = 1
        print(f"Jugador 2: ", end="")
        for _ in range(numero):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado > mayor_2:
                mayor_2 = dado
        print()
        if mayor_1 > mayor_2:
            print("Ha ganado el jugador 1.")
        elif mayor_2 > mayor_1:
            print("Ha ganado el jugador 2.")
        else:
            print("Han empatado.")


if __name__ == "__main__":
    main()

Minijuegos (2) - 7 - Pares y nones

import random


def main():
    print("PARES Y NONES")
    numero = int(input("Número de dados: "))
    if numero < 1:
        print("¡Imposible!")
    else:
        pares = 0
        impares = 0
        print(f"Dados: ", end="")
        for _ in range(numero):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado % 2 == 0:
                pares += 1
            else:
                impares += 1
        print()
        if pares > impares:
            print("Ha ganado el jugador de los pares.")
        elif impares > pares:
            print("Ha ganado el jugador de los impares.")
        else:
            print("Han empatado.")


if __name__ == "__main__":
    main()

Minijuegos (2) - 8 - El último dado más bajo

import random


def main():
    print("EL DADO MÁS BAJO")
    numero = int(input("Número de jugadores: "))
    if numero < 2:
        print("¡Imposible!")
    else:
        menor = 7
        ganador = 0
        for i in range(1, numero + 1):
            dado = random.randrange(1, 7)
            print(f"Jugador {i}: {dado}")
            if dado <= menor:
                ganador = i
                menor = dado
        print(f"Ha ganado el jugador {ganador}.")


if __name__ == "__main__":
    main()

Minijuegos (2) - 9 - El dado más alto y más bajo

import random


def main():
    print("DADO MÁS ALTO Y MÁS BAJO")
    numero = int(input("Número de dados: "))
    if numero < 2:
        print("¡Imposible!")
    else:
        menor = 7
        mayor = 0
        print("Jugador 1: ", end="")
        for _ in range(1, numero + 1):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado < menor:
                menor = dado
            if dado > mayor:
                mayor = dado
        jugador_1 = menor + mayor
        print()
        menor = 7
        mayor = 0
        print("Jugador 2: ", end="")
        for _ in range(1, numero + 1):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado < menor:
                menor = dado
            if dado > mayor:
                mayor = dado
        jugador_2 = menor + mayor
        print()
        if jugador_1 > jugador_2:
            print(f"Ha ganado el jugador 1.")
        elif jugador_2 > jugador_1:
            print(f"Ha ganado el jugador 2.")
        else:
            print("Han empatado.")


if __name__ == "__main__":
    main()

Minijuegos (2) - 10 - Dados iguales consecutivos

import random


def main():
    print("DADOS IGUALES")
    numero = int(input("Número de dados: "))
    if numero < 2:
        print("¡Imposible!")
    else:
        print("Dados: ", end="")
        repetido = False
        anterior = random.randrange(1, 7)
        print(f"{anterior} ", end="")
        for _ in range(1, numero):
            dado = random.randrange(1, 7)
            print(f"{dado} ", end="")
            if dado == anterior:
                repetido = True
            anterior = dado
        print()
        if repetido:
            print(f"El jugador ha perdido.")
        else:
            print(f"El jugador ha ganado.")


if __name__ == "__main__":
    main()