Я пытаюсь создать случайно созданное «назначение перков» из игр MMO или игр подобного типа.Python MMO Generation & Distribution
Правилами заключаются в следующем:
- должен иметь 5 в одном контейнере, и может иметь только 1 контейнер с 5
- Все 20 очков должны быть распределены
- точки должны быть распределены RNG (с использованием случайных)
до сих пор все, что мы имеем это:
import random
# Variables
cont = [0, 0, 0, 0, 0]
items = 20
maxNum = 5
# Start our first loop
i = 0
while items != 0:
i = 0
while i < len(cont) - 1:
num1 = random.randint(3, maxNum)
if items < 5:
if cont[i] = 00:
cont[i] += items
items = 0
break
cont[i] = num1
if cont[i] == 5:
maxNum = 4
i += 1
items = items - num1
print(items)
print(cont)
Это в конечном итоге работает иногда, но в других случаях оно застрянет в цикле и не будет работать.
Путь этот код может быть правильным является то, что каждый раз, когда он выводит, он будет печатать:
- [5,4,4,4,3]
- [4,4,4,4 , 4]
- [5,4,3,4,4]
- т.д.
Пожалуйста, помогите мне решить, почему она застревает в петлю иногда! Спасибо!
Вы говорите, что это работает «иногда» , Это указывает на то, что случайная постановка иногда порождает число, вызывающее ошибку. Попробуйте печатать 'num1' каждый раз, когда он генерирует и видит, всегда ли цикл выходит из одного числа (ей). Измените результаты в своем ответе, если вы сами не решили. – tburrows13
А что вы подразумеваете под циклом «застревает»? Это крушение? Если это так, верните полную ошибку. – tburrows13
@ Gloin мы сделали это, и это заканчивается тем, что он создает число, большее, чем элементы, и вычитает большие числа и заставляет его идти в негативы и бесконечно повторяться. –