Ejercicio: 1Eva2012TI_T2 Juego de carreras con dados

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 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)
Diagrama de Flujo



