En el post de hoy sobre programación en Python vamos a simular una partida de dados entre 2 amigos. El ejercicio en cuestión dice así:

Crea un programa que simule una partida de dados entre dos amigos, siendo las normas del juego las siguientes:

  • Cada jugador lanzará dos dados de 6 simultáneamente y apuntará los resultados que han obtenido.
  • Si alguno de los números obtenidos por los jugadores coincide, el Jugador 1 ganará la ronda. Por el contrario, si ninguno de los números coincide el Jugador 2 ganará.
  • El juego finalizará cuando alguno de los jugadores gane 3 rondas.
  • El programa deberá enviar un mensaje de enhorabuena al jugador que haya ganado la partida y terminarse.

Veamos entonces cómo resolver esto con Python.

Lanzando dados

El ejercicio es muy claro y no debemos explicar el algoritmo a fondo, pero comencemos viendo cómo lanzar los dados.

Para esto podemos crear una función que nos devuelva dos resultados aleatorios (que al final sería una tupla), mismos que serían 2 números entre el 1 y el 6:

def lanzar_dados():
    return random.randint(1, 6), random.randint(1, 6)

Explicación del algoritmo

Vamos a hacer un ciclo while que se va a cumplir mientras las rondas sean menor a 3. En ese ciclo lanzamos los dados y guardamos los resultados para saber quién ganó la ronda.

Al terminar el ciclo comparamos las rondas e imprimimos el ganador. Así de simple.

Juego de 2 dados con Python

El código que simula la partida queda así:

def jugar():
    rondas_para_ganar = 3
    rondas_j1 = 0
    rondas_j2 = 0
    while rondas_j1 < rondas_para_ganar and rondas_j2 < rondas_para_ganar:
        dado_1_jugador_1, dado_2_jugador_1 = lanzar_dados()
        dado_1_jugador_2, dado_2_jugador_2 = lanzar_dados()
        print(f"Resultados de los dados del jugador 1: [{dado_1_jugador_1}, {dado_2_jugador_1}]")
        print(f"Resultados de los dados del jugador 2: [{dado_1_jugador_2}, {dado_2_jugador_2}]")
        if dado_1_jugador_1 in [dado_1_jugador_2, dado_2_jugador_2] or dado_2_jugador_1 in [dado_1_jugador_2, dado_2_jugador_2]:
            rondas_j1 += 1
            print("Jugador 1 gana la ronda")
        else:
            rondas_j2 += 1
            print("Jugador 2 gana la ronda")
    if rondas_j1 > rondas_j2:
        print("El jugador 1 gana la partida")
    else:
        print("El jugador 2 gana la partida")

Poniendo todo junto

Recuerda que no todas las partidas serán iguales, ya que se hace una simulación de un lanzamiento de 2 dados. En mi caso ejecuté el programa y apareció lo siguiente:

Python - Jugar a los dados entre 2 amigos - Ejercicio resuelto

Dejo el código completo a continuación:

import random

def lanzar_dados():
    return random.randint(1, 6), random.randint(1, 6)

def jugar():
    rondas_para_ganar = 3
    rondas_j1 = 0
    rondas_j2 = 0
    while rondas_j1 < rondas_para_ganar and rondas_j2 < rondas_para_ganar:
        dado_1_jugador_1, dado_2_jugador_1 = lanzar_dados()
        dado_1_jugador_2, dado_2_jugador_2 = lanzar_dados()
        print(f"Resultados de los dados del jugador 1: [{dado_1_jugador_1}, {dado_2_jugador_1}]")
        print(f"Resultados de los dados del jugador 2: [{dado_1_jugador_2}, {dado_2_jugador_2}]")
        if dado_1_jugador_1 in [dado_1_jugador_2, dado_2_jugador_2] or dado_2_jugador_1 in [dado_1_jugador_2, dado_2_jugador_2]:
            rondas_j1 += 1
            print("Jugador 1 gana la ronda")
        else:
            rondas_j2 += 1
            print("Jugador 2 gana la ronda")
    if rondas_j1 > rondas_j2:
        print("El jugador 1 gana la partida")
    else:
        print("El jugador 2 gana la partida")

jugar()

Te invito a leer más sobre Python y Ejercicios resueltos en mi blog.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto