動いているボールを適切なビンに入れようと取り組んでいます。私は自分が正しい道を進んでいると思いたいのですが、しばらく行き詰まっています。
私の質問に関係がないと思われるコードは省略しましたが、回答者がさらに詳細を必要とする場合は、それらを提供できます。基本的に、200 個の動くボールの世界があります。X 座標と Y 座標があります。世界を幅 256 の正方形のビンに分割し、ボールを適切なビンに配置したいと考えています。
これに対する私のアプローチは、それらを辞書に入れることでした。次のように見えました。
dict_of_balls = {}
for i in range(len(balls)):
xb = int(balls[i].x/256)
yb = int(balls[i].y/256)
キーをペアのタプルにして、そのビンに適切なボールを配置したかったの(xb, yb)
ですが、タプルをキーとして使用できるとは思いません...
コードは以下のとおりです。
import math
import random
import time
import sys
ball_min_radius = 16.0 #world coordinates
ball_max_radius = 128.0 #world coordniates
number_balls = 200
class Ball:
"""
Implements a point/ball
"""
def __init__(self):
self.x = random.uniform(world_min_x,world_max_x)
self.y = random.uniform(world_min_y,world_max_y)
self.radius = int(random.uniform(ball_min_radius,ball_max_radius))
def __lt__(self, other):
return self.id < other.id
def main():
world_min_x = -200.0*number_balls**.5 # minimum x in world coordinates
world_max_x = +200.0*number_balls**.5 # maximum x in world coordinates
world_min_y = -200.0*number_balls**.5 # minimum y in world coordinates
world_max_y = +200.0*number_balls**.5 # maximum y in world coordinates
balls = [Ball() for i in range(number_balls)]
与えられた世界座標に基づいて世界をビンに分割する方法について誰かアイデアがありますか? キーにタプルを使用できないため、どのデータ構造を使用すればよいかわかりません。フィードバックをお寄せいただきありがとうございます。