s1Eva_IT2012_T2 Juego de carreras con dados

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.enteros aleatorios dados

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

Juego de carreras con dados 01Juego de carreras con dados 02

Juego de carreras con dados 03Juego de carreras con dados 04

[ algoritmo ] [ diagrama flujo ]


Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

ejercicios resueltos Python 1eva_it2012_t2 pdf

ejercicios resueltos Matlab 1eva_it2012_t2 pdf