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:

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.