Python pygame中的随机平台生成器

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,

我正在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, 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级别:'
打印级别