我正在努力尝试将移动的球放入适当的垃圾箱。我喜欢认为我在正确的轨道上,但我已经被困了一段时间了。
我遗漏了似乎与我的问题无关的代码,但如果回答的人需要更多详细信息,我可以提供。基本上,我有一个由 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)]
那么有没有人对如何根据给定的世界坐标将世界划分为垃圾箱有任何想法?我不确定要使用哪种数据结构,因为我不能使用元组作为键。提前感谢您的任何反馈。