Ejercicio: 1Eva_IT2012_T2 Juego de carreras con dados
[ algoritmo ] [ diagrama flujo ]
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.
[ algoritmo ] [ diagrama flujo ]
Algoritmo en Python
# 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)
[ algoritmo ] [ diagrama flujo ]
..
Diagrama de Flujo
[ algoritmo ] [ diagrama flujo ]
Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab