Ayuda urgente!!
Programa en Python
Utiliza funciones.
Hay dos jugadores
Cada jugador tiene como máximo tres turnos
El objetivo del juego es sacar el mayor provecho de los puntos
Los puntos se obtienen tirando números similares
En el primer turno, el jugador tira los 3 dados.
Después de ver los valores obtenidos, en el segundo turno el jugador decide tirar de nuevo 0, 1, 2 o 3 dados, el jugador elige qué dado.
Luego el tercer turno es el mismo. Este Yahtzee es un juego de 3 dados.
Después de los 3 turnos se suman los puntos.
Si no hay números similares, el programa elige el valor más alto
Y luego lo mismo para el segundo jugador
Finalmente, el programa dice el ganador.
Doy corona...
Respuestas a la pregunta
A continuación programa en Phyton de una versión simplificada del juego Yahtzee, donde participan 2 jugadores y el lanzamiento de hasta 3 dados en tres turnos.
Código Phyton versión del juego Yahtzee (tres dados, dos jugadores)
from random import randint
- # Función jugada anidada a la bloque principal
def jugada(juego, jugador, turno):
# definir variables
dado1 = int()
dado2 = int()
dado3 = int()
res = int()
pausa = str()
dado1 = 0
dado2 = 0
dado3 = 0
res = 0
pausa = ""
# incrementar contador de turnos de cada jugador
juego[jugador-1][3] = juego[jugador-1][3]+1
turno = juego[jugador-1][3]
# Registro de juego
# condición que establece que el segundo turno el jugador decide tirar de nuevo 0, 1, 2 o 3 dados
if turno==1:
print(" presione enter para tirar dados: ")
pausa = input()
dado1 = randint(0,5)+1
dado2 = randint(0,5)+1
dado3 = randint(0,5)+1
print("Dado 1: ",dado1)
print("Dado 2: ",dado2)
print("Dado 3: ",dado3)
anotacion(dado1,dado2,dado3,juego,jugador,turno)
else:
print("Elije cantidad de dados a lanzar ")
print("*************************")
print("1.- un dado")
print("2.- Dos dados ")
print("3.- Tres dados")
print("4.- ninguno")
while True:
res = int(input())
if res!=1 or res!=2 or res!=3 or res!=4: break
if res==1:
dado1 = randint(0,5)+1
dado2 = -5
dado3 = -8
print("Dado 1: ",dado1)
anotacion(dado1,dado2,dado3,juego,jugador,turno)
elif res==2:
dado1 = randint(0,5)+1
dado2 = randint(0,5)+1
dado3 = -8
print("Dado 1: ",dado1)
print("Dado 2: ",dado2)
anotacion(dado1,dado2,dado3,juego,jugador,turno)
elif res==3:
dado1 = randint(0,5)+1
dado2 = randint(0,5)+1
dado3 = randint(0,5)+1
print("Dado 1: ",dado1)
print("Dado 2: ",dado2)
print("Dado 3: ",dado3)
anotacion(dado1,dado2,dado3,juego,jugador,turno)
elif res==4:
# las variables se establecen con un valor para ignorar los procesos que siguen
print("No hay jugada")
dado1 = -1
dado2 = -5
dado3 = -8
- # Función anotación anidada a módulo jugada
def anotacion(dado1, dado2, dado3, juego, jugador, turno):
# definir variables
_anotacion = int()
elmayor = int()
_anotacion = 0
elmayor = 0
# Marcar anotación según reglas del juego establecidas
if dado1==dado2 and dado1==dado3:
_anotacion = dado1+dado2+dado3
juego[jugador-1][turno-1] = _anotacion
else:
if dado1==dado2:
_anotacion = dado1+dado2
juego[jugador-1][turno-1] = _anotacion
else:
if dado1==dado3:
_anotacion = dado1+dado3
juego[jugador-1][turno-1] = _anotacion
else:
if dado2==dado3:
_anotacion = dado2+dado3
juego[jugador-1][turno-1] = _anotacion
else:
# Cálculo del mayor de los tres dados lanzados
if dado1>dado2:
if dado1>dado3:
elmayor = dado1
else:
if dado3>dado2:
elmayor = dado3
else:
if dado2>dado3:
elmayor = dado2
else:
if dado3>dado1:
elmayor = dado3
_anotacion = elmayor
juego[jugador-1][turno-1] = _anotacion
print("turno ",turno," del jugador ",jugador," anota ",_anotacion," puntos")
- # Función mostrar resultados anidada al bloque principal
def mostrarresultados(juego, jugador):
# Definir variables
x = int()
j = int()
suma = int()
x = 0
j = 0
suma = 0
# Calcular suma de las anotaciones
for x in range(1,3):
for j in range(1,4):
suma = suma+juego[x-1][j-1]
juego[x-1][4] = suma
suma = 0
# Mostrar resultados
if juego[0][4]==juego[1][4]:
print("Puntos del jugardor 1: ",juego[0][4])
print("Puntos del jugardor 2: ",juego[1][4])
print("Jugardores empatados")
else:
if juego[0][4]>juego[1][4]:
print("Puntos del jugardor 1: ",juego[0][4])
print("Puntos del jugardor 2: ",juego[1][4])
print("El jugardor 1 derrota al jugador 2")
else:
print("Puntos del jugardor 1: ",juego[0][4])
print("Puntos del jugardor 2: ",juego[1][4])
print("El jugardor 2 derrota al jugador 1")
- # Función o bloque principal
if __name__ == '__main__':
# Definir e inicializar variables
t = int()
p = int()
respuesta = int()
juego = int()
op = int()
jugador = int()
turno = 0
jugador = 0
respuesta = 0
t = 2 # cantidad de jugadores
p = 5 # resultados obtenidos en los tres turno de juego, un contador de turnos, y resultado
juego = [[int() for ind0 in range(p)] for ind1 in range(t)]
# Seleccionar acción en en menú
while True:
print("Ingrese Opción (1-3)")
print("*************************")
print("1.- Turno jugador")
print("2.- Mostrar resultados ")
print("3.- Salir")
while True:
respuesta = int(input())
if respuesta!=1 or respuesta!=2 or respuesta!=3: break
if respuesta==1:
while True:
print("Turno juego ")
print("*************************")
print("1.- jugador 1")
print("2.- jugador 2 ")
print("3.- Volver")
while True:
op = int(input())
if op!=1 or op!=2 or op!=3: break
if op==1:
if juego[0][3]<3:
jugador = 1
jugada(juego,jugador,turno)
else:
print("Turno completo para este jugador")
elif op==2:
if juego[1][3]<3:
jugador = 2
jugada(juego,jugador,turno)
else:
print("Turno completo para este jugador")
if op==3 or juego[0][3]>=3 and juego[1][3]>=3: break
elif respuesta==2:
mostrarresultados(juego,jugador)
if respuesta==3: break
Para saber más acerca de programas en Phyton consulte: https://brainly.lat/tarea/60461022
#SPJ1