Python pygame中的随机平台生成器
我正在pygame中创建一个随机平台,平台的位置和大小由pythons随机函数决定。我试图弄清楚如何创建一个返回列表的算法(在本例中称为level) 它将列表作为如下元素Python pygame中的随机平台生成器,python,random,pygame,Python,Random,Pygame,我正在pygame中创建一个随机平台,平台的位置和大小由pythons随机函数决定。我试图弄清楚如何创建一个返回列表的算法(在本例中称为level) 它将列表作为如下元素 level = [ #[ x, y, width, height, color ] [48, 43, 281, 29, BLACK ] [357, 104, 234, 33, BLACK ] , [334, 341, 328, 22, BLACK ] , [481, 159,
level = [
#[ x, y, width, height, color ]
[48, 43, 281, 29, BLACK ]
[357, 104, 234, 33, BLACK ] ,
[334, 341, 328, 22, BLACK ] ,
[481, 159, 13, 117, BLACK ] ]
这是我迄今为止创建的代码
#!\user\bn\env python
import random,time
#Colors
BLACK = ( 0, 0, 0)
WHITE = (255, 255, 255)
BLUE = ( 0, 0, 255)
GREEN = ( 0, 255, 0)
RED = (255, 0, 0)
#default starting platform
#[ x, y, width, height, color ]
#[126, 404, 536, 33, BLACK ] ,
xco_ord = 126
yco_ord = 404
width = 536
height = 33
a = []
holder = []
level = []
while True:
#random numbers
gaps = random.randrange(300, 480)
width = random.randrange(100, 700)
height = random.randrange(28, 140)
Uyco_ord = yco_ord + 113
up_height = random.randrange(yco_ord, Uyco_ord)
Dyco_ord = yco_ord - 300
down_height = random.randrange(Dyco_ord, yco_ord)
up_down_choice = random.choice('DU')
count = 0
other_counter = 7
while count <= other_counter:
if up_down_choice == 'U':
up_down_height = down_height
if up_down_choice == 'D':
up_down_height = up_height
# [30, 355, 503, 28, BLACK ]
#===================================================================
a.append(gaps)
a.append(up_height)
a.append(width)
a.append(height)
a.append(BLACK)
holder.append(a)
count+=1
other_counter +=1
#===================================================================
rgaps = gaps + 180
gaps =random.randrange(gaps,rgaps )
width = random.randrange(100, 700)
height = random.randrange(28, 140)
yco_ord = up_height
Uyco_ord = yco_ord + 113
up_height = random.randrange(yco_ord, Uyco_ord)
yco_ord = down_height
Dyco_ord = yco_ord - 300
down_height = random.randrange(Dyco_ord, yco_ord)
up_down_choice = random.choice('DU')
#===================================================================
time.sleep(2)
if len(level)> 25:
time.sleep(2)
del(block[0])
time.sleep(2)
del(block[1])
time.sleep(2)
del(block[2])
time.sleep(2)
del(block[3])
time.sleep(2)
del(block[4])
for blocks in holder:
level.append(blocks)
del(holder[0])
print up_down_choice
print level
#\用户\bn\env python
导入随机、时间
#颜色
黑色=(0,0,0)
白色=(255,255,255)
蓝色=(0,0255)
绿色=(0,255,0)
红色=(255,0,0)
#默认启动平台
#[x,y,宽度,高度,颜色]
#[126、404、536、33、黑色],
xco_ord=126
yco_ord=404
宽度=536
高度=33
a=[]
持有人=[]
级别=[]
尽管如此:
#随机数
间隙=随机。随机范围(300480)
宽度=随机。随机范围(100700)
高度=随机。随机范围(28140)
Uyco_ord=yco_ord+113
向上高度=随机。随机范围(yco\U ord、Uyco\U ord)
Dyco_ord=yco_ord-300
向下高度=随机.随机范围(Dyco命令,yco命令)
向上\向下\选择=随机。选择('DU')
计数=0
其他计数器=7
第25点:
时间。睡眠(2)
del(块[0])
时间。睡眠(2)
del(块[1])
时间。睡眠(2)
德尔(区块[2])
时间。睡眠(2)
德尔(区块[3])
时间。睡眠(2)
del(块[4])
对于支架中的块:
level.append(块)
del(持有者[0])
打印上下选项
打印级别
但每次我运行它都会将一些列表连接在一起。有人能帮我或给我指出一个好的方向吗?你没有清除你的“a”名单。之后:
holder.append(a)
地点:
a = []
这应该能奏效
像这样:
#!\user\bn\env python
import random,time
#Colors
BLACK = ( 0, 0, 0)
WHITE = (255, 255, 255)
BLUE = ( 0, 0, 255)
GREEN = ( 0, 255, 0)
RED = (255, 0, 0)
#default starting platform
#[ x, y, width, height, color ]
#[126, 404, 536, 33, BLACK ] ,
xco_ord = 126
yco_ord = 404
width = 536
height = 33
a = []
holder = []
level = []
while True:
#random numbers
gaps = random.randrange(300, 480)
width = random.randrange(100, 700)
height = random.randrange(28, 140)
Uyco_ord = yco_ord + 113
up_height = random.randrange(yco_ord, Uyco_ord)
Dyco_ord = yco_ord - 300
down_height = random.randrange(Dyco_ord, yco_ord)
up_down_choice = random.choice('DU')
count = 0
other_counter = 7
while count <= other_counter:
if up_down_choice == 'U':
up_down_height = down_height
if up_down_choice == 'D':
up_down_height = up_height
# [30, 355, 503, 28, BLACK ]
#===================================================================
a.append(gaps)
a.append(up_height)
a.append(width)
a.append(height)
a.append(BLACK)
holder.append(a)
a = []
count+=1
other_counter +=1
#===================================================================
rgaps = gaps + 180
gaps =random.randrange(gaps,rgaps )
width = random.randrange(100, 700)
height = random.randrange(28, 140)
yco_ord = up_height
Uyco_ord = yco_ord + 113
up_height = random.randrange(yco_ord, Uyco_ord)
yco_ord = down_height
Dyco_ord = yco_ord - 300
down_height = random.randrange(Dyco_ord, yco_ord)
up_down_choice = random.choice('DU')
#===================================================================
time.sleep(2)
if len(level)> 25:
time.sleep(2)
del(block[0])
time.sleep(2)
del(block[1])
time.sleep(2)
del(block[2])
time.sleep(2)
del(block[3])
time.sleep(2)
del(block[4])
for blocks in holder:
level.append(blocks)
del(holder[0])
print '\n'
print '\nup_down_choice: %s' % up_down_choice
print '\n'
print '\nlevel:'
print level
#\用户\bn\env python
导入随机、时间
#颜色
黑色=(0,0,0)
白色=(255,255,255)
蓝色=(0,0255)
绿色=(0,255,0)
红色=(255,0,0)
#默认启动平台
#[x,y,宽度,高度,颜色]
#[126、404、536、33、黑色],
xco_ord=126
yco_ord=404
宽度=536
高度=33
a=[]
持有人=[]
级别=[]
尽管如此:
#随机数
间隙=随机。随机范围(300480)
宽度=随机。随机范围(100700)
高度=随机。随机范围(28140)
Uyco_ord=yco_ord+113
向上高度=随机。随机范围(yco\U ord、Uyco\U ord)
Dyco_ord=yco_ord-300
向下高度=随机.随机范围(Dyco命令,yco命令)
向上\向下\选择=随机。选择('DU')
计数=0
其他计数器=7
第25点:
时间。睡眠(2)
del(块[0])
时间。睡眠(2)
del(块[1])
时间。睡眠(2)
德尔(区块[2])
时间。睡眠(2)
德尔(区块[3])
时间。睡眠(2)
del(块[4])
对于支架中的块:
level.append(块)
del(持有者[0])
打印“\n”
打印“\nup\u down\u选项:%s”%up\u down\u选项
打印“\n”
打印'\n级别:'
打印级别