Ejercicio: 1Eva_IIT2012_T3 Hundir barco enemigo
Propuesta de solución en Python: py_pdf, también en vesión matlab: m_pdf
Ingrese el número de municiones o disparos que se pueden hacer y las coordenadas del barco a hundir.
eje y | 5 | ||||||
4 | |||||||
3 | |||||||
2 | |||||||
1 | |||||||
1 | 2 | 3 | 4 | 5 | eje x |
Indique las coordenadas al punto de disparo y luego calcule el movimiento del barco de forma aleatoria como se indica en el enunciado. Mueva el barco a la nueva posición.
Compare si las coordenadas de disparo y la nueva posición del barco son iguales para confirmar hundimiento.
if (bx==cx and by==cy): hundido = 1
Sino repita la operación desde el inicio de disparo hasta que se acaben las municiones.
while (disparo<n and hundido==0):
Instrucciones Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1Eva_IIT2012_T3 Hundir barco enemigo # Propuesta de solución. edelros@espol.edu.ec import random as rnd n = int(input('¿Cuántas municiones?: ')) bx = int(input('Barco ¿Coordenada bx?: ')) by = int(input('Barco ¿Coordenada by?: ')) hundido = 0 disparo = 0 # Juego while (disparo<n and hundido==0): print('\nIntento '+str(disparo+1)) print('Barco enemigo en ('+str(bx)+','+str(by)+')') cx = int(input('Disparo ¿Coordenada cx?: ')) cy = int(input('Disparo ¿Coordenada cy?: ')) d = int(rnd.random()*4)+1 p = int(rnd.random()*3)+1 if d==1: by = by + p if d==2: by = by - p if d==3: bx = bx + p if d==4: bx = bx - p if (bx==cx and by==cy): hundido = 1 disparo = disparo+1 print('Movimiento direccion:',d, ' con:',p,'casillas') print('Disparados: ',disparo) print(' Hundido: ',hundido) # SALIDA print('Barco Hundido:', hundido) print('Disparos realizados:',disparo)
Resultado del algoritmo
¿Cuántas municiones?: 5 Barco ¿Coordenada bx?: 10 Barco ¿Coordenada by?: 10 Intento 1 Barco enemigo en (10,10) Disparo ¿Coordenada cx?: 10 Disparo ¿Coordenada cy?: 11 Movimiento direccion: 4 con: 1 casillas Disparados: 1 Hundido: 0 Intento 2 Barco enemigo en (9,10) Disparo ¿Coordenada cx?: 9 Disparo ¿Coordenada cy?: 11 Movimiento direccion: 1 con: 1 casillas Disparados: 2 Hundido: 1 Barco Hundido: 1 Disparos realizados: 2 >>>