パーソナルブログメモリ

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

問題 惑星の配置

2019-03-23 | python 謎解き
新米惑星管理官のあなたに新しい宇宙空間デザインの任務です。

宇宙空間は2次元で20x20とします。(0-19)x(0-19)
その中に惑星を10個ランダムに配置します。
ただし各惑星間の干渉を抑えるため距離を5より長く離してください。
(15個ぐらい配置できるとエリート管理官)

座標がわかれば出力形式は自由です。

サンプル解答は↓
import random

def newP(p,r):
    #ランダムに作成した点が既存の点からr以内なら-1,-1にして返す
    x=random.randint(0,19)
    y=random.randint(0,19)
    for i in p:
        x1,y1=i
        if (x1-x)**2+(y1-y)**2<=r*r:return -1,-1
    return x,y

#作成メイン
p=[]
for i in range(10):
    x,y=-1,-1
    while x==-1:
        x,y=newP(p,5)
    p+=[(x,y)]

#画面表示初期化
mp=[]
for i in range(20):
    mp+=["."*20]

#追加
for i in p:
    x,y=i
    mp[y]=mp[y][:x]+"p"+mp[y][x+1:]

#表示
for i in mp:
    print(i)

最新の画像もっと見る

コメントを投稿

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