случайно выбранные значения словаря проверяются и перезапускаются при совпадении - PullRequest
0 голосов
/ 27 октября 2018

Итак, я создаю текстовую игру Murder Mystery for Learn Python на нелегком пути ... Так что это, вероятно, действительно просто, но я не могу понять это.

По сути, я выбираю расположение подсказок, в каждом большом местоположении есть 16 вариантов, 4 больших местоположения и 4 подгруппы.Однако я не хочу, чтобы какая-либо подсказка находилась в том же месте, что и другая подсказка.

В настоящее время я создаю словарь для каждого элемента и последующего местоположения, но иногда он выбирает те же местоположения.Хотелось бы помочь, спасибо!

def determine_items():
    items_needed = {}
    items = ["weapon", "Clue #1", "Clue #2", "Evidence"]
    print(items_needed)
    for i in items:
        hidden_sub = [0.1,0.2,0.3,0.4]
        hidden_super = [1,2,3,4]
        selected_super = random.choice(hidden_super)
        Selected_sub = random.choice(hidden_sub)
        exact =  selected_super + Selected_sub
        if exact == items_needed.values():
             items_needed.clear()
             determine_items()
        else:
            print("No Duplicates?")
        items_needed[i] = exact

1 Ответ

0 голосов
/ 27 октября 2018

Это то, что я придумал, основываясь на ваших ответах

import random
def determine_items():
    items_needed = {}
    items = ["weapon", "Clue #1", "Clue #2", "Evidence"]
    possible_locations = [1.1,1.2,1.3,1.4,2.1,2.2,2.3,2.4,3.1,3.2,3.3,3.4,4.1,4.2,4.3,4.4]
    for i in items:
        exact = random.choice(possible_locations)
        possible_locations.remove(exact)
        items_needed[i] = exact
    print(items_needed)

determine_items()
...