Dungeon Crawl - Карта - PullRequest
       7

Dungeon Crawl - Карта

0 голосов
/ 03 июля 2018

Многие учебные пособия в Интернете объясняют, как создать случайно сгенерированную карту с комнатами различного размера и т. Д. Я не хочу этого, я хочу карту в стиле Биндинг Исаака, где каждая комната имеет одинаковый размер и является единственной вещь на экране.

Поэтому я пытаюсь найти способ создать карту, где группа, скажем, 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

Дайте мне знать, если понадобится еще код!

1 Ответ

0 голосов
/ 03 июля 2018

надеюсь, я смогу снова пригодиться в вашей игре. Существует определенная функция, которая принимает набор чисел и принимает столько их, сколько нужно. Скажем, вы хотели выбрать два числа с шестью значениями. Сначала вам нужно будет import random, затем вам нужно random.sample(set([1, 2, 3, 4, 5, 6]), 2). Это выберет два значения от одного до шести. Вы можете просто сделать то же самое в своей игре, переключая числа для переменных. каждой комнаты. Вы можете иметь их в виде чисел, но число 1 может быть Room1 и т. Д.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...