首页 > 解决方案 > 地牢爬行 - 地图

问题描述

网络上的很多教程指导我如何创建具有不同大小房间等的随机生成的地图。我不想要这个,我想要一个 Isaac 风格地图的绑定,其中每个房间的大小相同,并且是唯一的东西屏幕。

因此,我试图找到一种方法来生成地图,其中从房间池中随机选择的一组 8-10 个房间被挑选出来并组合在一起以创建地图。

我试过这样做,但还没有成功。这是我用来尝试让事情变得随机的代码

def main():

rooms = []

room = Room1()
rooms.append(room)

room = Room2()
rooms.append(room)

room = Room3()
rooms.append(room)

room = Room4()
rooms.append(room)

current_room_no = random.randint(0, 2)
current_room = rooms[current_room_no]




# Game Logic

player.move(current_room.wall_list)

if player.rect.x < -15:
    if current_room_no == 0:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 790
    elif current_room_no == 3:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 790
    elif current_room_no == 2:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 790
    else:
        current_room_no = 0
        current_room = rooms[current_room_no]
        player.rect.x = 790

if player.rect.x > 801:
    if current_room_no == 0:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 0
    elif current_room_no == 1:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 0
    elif current_room_no == 2:
        current_room_no = random.randint(0, 3)
        current_room = rooms[current_room_no]
        player.rect.x = 0
    else:
        current_room_no = 0
        current_room = rooms[current_room_no]
        player.rect.x = 0

让我知道是否需要更多代码!

标签: pythondictionaryrandompygame

解决方案


希望我能在你的游戏中再次发挥作用。有一个特定的函数可以获取一组数字并根据需要获取尽可能多的数字。假设您希望它选择两个具有六个值的数字。首先你必须import random然后你必须random.sample(set([1, 2, 3, 4, 5, 6]), 2)。这将选择 1 到 6 之间的两个值。你可以在你的游戏中做同样的事情,切换变量的数字。每个房间的。您可以将它们作为数字,但数字1可以是Room1等等。

希望这可以帮助!


推荐阅读