Ejercicio: 1Eva2012TII_T3 Hundir barco enemigo
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 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
>>>
Diagrama de Flujo

