パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

問題 デスタ攻略

2019-03-23 | python 謎解き
デスタはとても強力な破壊兵器で一撃で惑星を破壊してしまいます。
x,y座標の差がともに3以内惑星は射程圏内です

次元管理官としてこの宙域に赴任したあなたのミッションは
存在しうる並行宇宙の中でデスタに惑星が破壊されないものを選ぶことです。
資源は重要ですから。

距離がx,yともに3以内でなければ登場から2時間ぐらいで、
同盟の戦闘機が破壊するシステムが確立されているので安全です。

planet=[(18, 5), (17, 0), (17, 10), (5, 17), (12, 16), (3, 2), (8, 12), (18, 18), (9, 7), (0, 10)]
dsta=[(5, 6), (16, 14), (15, 5), (15, 19), (1, 13), (9, 19), (11, 11), (0, 18), (9, 2), (4, 0)]

planetは惑星の座標
dstaは各並行宇宙に登場するデスタの座標です。とりあえず並行宇宙を10個ご用意いたしました。

安全な並行宇宙でのデスタの登場座標を選択してください。
デスタが2つ惑星を破壊してしまう最悪の座標も記録しておくと評価があがります。

安全な宇宙は4つ、最悪の宇宙は1つです。

サンプル解答は↓
planet=[(18, 5), (17, 0), (17, 10), (5, 17), (12, 16), (3, 2), (8, 12), (18, 18), (9, 7), (0, 10)]
dsta=[(5, 6), (16, 14), (15, 5), (15, 19), (1, 13), (9, 19), (11, 11), (0, 18), (9, 2), (4, 0)]

sw=[]
safe=[]
for i in dsta:
    dx,dy=i
    dstaBeam=[]
    for x in range(7):
        for y in range(7):
            dstaBeam+=[(dx-3+x,dy-3+y)]
    busterCount=len(planet+dstaBeam)-len(list(set(planet+dstaBeam)))
    if busterCount==2:sw+=[i]
    if busterCount==0:safe+=[i]

print(safe)
print(sw)



最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。