CodingGames 之 蝙蝠侠救人
描述:
你是蝙蝠侠,你将通过使用你的抓斗枪从一个窗口跳到另一个窗口来寻找给定建筑物上的人质。您的目标是跳到人质所在的窗口以解除炸弹的武装。不幸的是,在炸弹爆炸之前你的跳跃次数是有限的……在每次跳跃之前,热信号装置会根据您当前的位置为您提供炸弹的方向:(八个)
初始化输入:
第 1 行: 2 个整数W H. 这 (W,H) 对将建筑物的宽度和高度表示为多个窗户。
第 2 行: 1 个整数n,它代表你在炸弹爆炸之前可以跳的次数。
第 3 行: 2 个整数X0 Y0,代表你的起始位置。
这题简单做法是直接按照提供方向一步一步前进,但是显而易见效率很低。
做法一(能完成75%):步步紧逼
import sys
import math
# w: width of the building.
# h: height of the building.
w, h = [int(i) for i in input().split()]
n = int(input()) # maximum number of turns before game over.
x0, y0 = [int(i) for i in input().split()]
# game loop
while True:
bomb_dir = input() # the direction of the bombs from batman's current location (U, UR, R, DR, D, DL, L or UL)
if bomb_dir == "U":
y0