Informática, pregunta formulada por gogouchiha1, hace 2 meses

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...​

Adjuntos:

Respuestas a la pregunta

Contestado por megatokay
2

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

Adjuntos:
Otras preguntas