Ejercicio: 1Eva_IT2012_T2 Juego de carreras con dados
Propuesta de solución en Python: py_pdf, también en matlab: m_pdf
Se establece el nivel del juego pidiendo el tamaño del tablero, que puede ser variable para facilitar la simulación a tableros más pequeños.
Se valida que el tamaño del tablero sea un número positivo.
Los jugadores A y B inician en la casilla de partida, fuera del tablero, marcada con 0. Por lo que se usa un acumulador para cada jugador.
Primero lanzará el jugador A, que si está en la casilla de partida y sus dados salen iguales se avanza a la primera casilla.
# Lanzamiendo Jugador A dado1 = int(rnd.random()*6)+1 dado2 = int(rnd.random()*6)+1 if (A==0 and dado1==dado2): A = 1 if (A>0): A = A + dado1 + dado2 if (A==2 or A==17 or A==30 or A==42): dado1 = int(rnd.random()*6)+1 dado2 = int(rnd.random()*6)+1 A = A + dado1 + dado2
Si el jugador está en el tablero solo queda avanzar verificando que exista casilla de premio.
Se repite el proceso para el otro jugador, hasta que uno de ellos sobrepase la meta.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1Eva_IT2012_T2 Juego de carreras con dados # propuesta: edelros@espol.edu.ec import random as rnd # INGRESO n = int(input('Tamaño tablero: ')) while (n<0): print('tablero debe tener casillas') n = int(input('Tamaño tablero: ')) # PROCEDIMIENTO A = 0 B = 0 while (A<=n and B<=0): # Lanzamiendo Jugador A dado1 = int(rnd.random()*6)+1 dado2 = int(rnd.random()*6)+1 if (A==0 and dado1==dado2): A = 1 if (A>0): A = A + dado1 + dado2 if (A==2 or A==17 or A==30 or A==42): dado1 = int(rnd.random()*6)+1 dado2 = int(rnd.random()*6)+1 A = A + dado1 + dado2 # Lanzamiendo Jugador B dado1 = int(rnd.random()*6)+1 dado2 = int(rnd.random()*6)+1 if (B==0 and dado1==dado2): B = 1 if (B>0): B = B + dado1 + dado2 if (B==2 or B==17 or B==30 or B==42): dado1 = int(rnd.random()*6)+1 dado2 = int(rnd.random()*6)+1 B = B + dado1 + dado2 if (A>B): gana = 1 else: gana = 2 # SALIDA print('ganador: ',gana)