Ejercicio: 1Eva_IIT2012_T3 Hundir barco enemigo
[ algoritmo ] [ diagrama flujo ]
Ingrese el número de municiones o disparos que se pueden hacer y las coordenadas del barco a hundir.
n = int(input('¿Cuántas municiones?: '))
bx = int(input('Barco ¿Coordenada bx?: '))
by = int(input('Barco ¿Coordenada by?: ')
| eje y |
5 |
|
|
|
 |
|
4 |
|
|
|
|
|
3 |
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
 |
1 |
2 |
3 |
4 |
5 |
eje x |
Indique las coordenadas al punto de disparo
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?: '))
Luego calcule el movimiento del barco de forma aleatoria como se indica en el enunciado. Mueva el barco a la nueva posición.
d = int(rnd.random()*4)+1 # direccion
p = int(rnd.random()*3)+1 # pasos
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
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):
[ algoritmo ] [ diagrama flujo ]
..
Algoritmo en 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 # direccion
p = int(rnd.random()*3)+1 # pasos
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
>>>
[ algoritmo ] [ diagrama flujo ]
..
Diagrama de Flujo


[ algoritmo ] [ diagrama flujo ]
Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab
ejercicios resueltos Python 1eva_iit2012_t3 pdf
ejercicios resueltos Matlab 1eva_iit2012_t3 pdf