2016-09-06 5 views
0

これを使用する計画は、テキストベースのスペースRPGゲームです。私はすでに行っているランダムな点(x、y座標)を生成したいのですが、続いて2次元グリッド上に表示された接続でそれらをプロットします。一面として、どのようにこれらの座標にラベルを付けますか?ランダムに生成された座標のセットから2次元グリッドを生成する方法は?

は、ランダム生成のためのコードは以下に含まれています

import time 
import random 
import math 

radius = 200 
rangeX = (0, 2500) 
rangeY = (0, 2500) 
qty = 40 

deltas = set() 
for x in range(-radius, radius+1): 
    for y in range(-radius, radius+1): 
     if x*x + y*y <= radius*radius: 
      deltas.add((x,y)) 

randPoints = [] 
excluded = set() 
i = 0 
while i<qty: 
    x = random.randrange(*rangeX) 
    y = random.randrange(*rangeY) 
    if (x,y) in excluded: continue 
    randPoints.append((x,y)) 
    i += 1 
    excluded.update((x+dx, y+dy) for (dx,dy) in deltas) 
    time.sleep(0.001) 

stars = {} 
keyName = 1 
for item in randPoints: 
    stars[str(keyName)] = [item, 0,] 
    keyName += 1 
+0

あなたは2Dグリッドとはどういう意味ですか? – martineau

+0

マップのようなx座標とy座標を持つ2次元グリッドの画像を生成したいと思っていました。 @martineau –

+0

与えられた点からランダムなx、y座標へのパスを見つけようとしていますか?私は2dグリッドに表示されている接続でプロットすることで何を意味するのか分かりません。 – MooingRawr

答えて

0

代わりのこの質問の範囲がかなり大きいようだと、私は一般的な方向にあなたを指します直接の答えをご提供しています。

pygameを使用することを検討してください。それはあなたに描画機能を提供し、ユーザー入力を検出するために使用できるイベントシステムを持ち、名前が示すようにゲームを作成するための多くの他の有益な機能を備えています。

クラスの使用を強く検討してください。あなたのコードはより読みやすく柔軟になります。ラベル、表面温度、放出される(脈動する)光、入手可能な原材料などのようなあなたの星に特徴を加えることは、取り扱いがはるかに容易になります。

名前を生成するには、既存のスター名をテキストファイルに入れて読み込み、ランダムに選択します。追加のボーナスポイントには、マルコフチェーンを使用して、一見ランダムな名前を生成します。

https://www.pygame.org

https://docs.python.org/3/tutorial/classes.html

https://en.wikipedia.org/wiki/Markov_chain

関連する問題