Путешествия разработчика игр
Состояние надо сохранять между запусками.
Ну ты спроси ещё раз нейронку, может модель попробуй сменить.
Если же проблема с восприятием, то вот словами:
задаются веса;
накапливаются счетчики;
при вызове к счетчику прибавляется вес;
выбирается ключ с максимальным весом;
из выбранного вычитается сумма всех весов.
В итоге получается, что вариант выбирается пропорционально его весу.
Если честно, чел, то устал тебе что-то рассказывать, ты отрицаешь какие-то базовые вещи, просишь код, но не можешь разобраться что он делает. И зачем это? Может у тебя другие сильные стороны, но не здесь.
Можно выразить так через стандартный рандом.
import random
options = ["камень", "ножницы", "бумага"]
choice = random.choices(options, weights=[5, 2, 3])[0]
Опять же, через веса. Когда мы подбрасываем «монетку», то мы знаем что нам выпадет (к или н или б), мы знаем с какой вероятностью (50% - к, 20 - н, 30 - б).
И рандомом здесь является не результат, а процесс. Как именно происходит механика броска.
Тоже самое с равными вероятностями, мы знаем, что у нас есть 33.3% на выпадение любого из вариантов в рамках одного броска.
Мы понимаем, что чем больше бросков совершаем, тем ближе распределение к 33.3 на каждую опцию.
Зачем тебе код интересно, если ты не шаришь? Чтобы ты у нейронки спросил «как это работает»?
Ну лови. Сгенерировал тебе нейронкой же кусок.
options = {"камень": 5, "ножницы": 2, "бумага": 3}
counters = {k: 0 for k in options}
def get_option():
for k in options:
counters[k] += options[k]
choice = max(counters, key=counters.get)
counters[choice] -= sum(options.values())
return choice
При весах 5/2/3 за 10 вызовов камень выпадет 5 раз, бумага 3, ножницы 2. И это будет не пачками.
Откуда паттерн в рандоме есть глупый вопрос, ты не понимаешь где рандом, а где нет. Если мы подбрасываем монетку 10 раз, то легко получить 9 орлов и 1 решку, но если подбросить 100000 раз, то распределение будет близко к 50 на 50.
Если тебе интересно посмотреть на подобный файл, то держи первые пять игр:
камень, камень, камень, бумага, ножницы.
Можешь играть.
Чел, могу согласиться с тем, что для тебя это работает «магическим образом» из-за этого смешиваешь камень-ножницы-бумага, какие-то попадания, хитрейты и пр.
Суть кнб в том, что там вероятность 1/3 и каждый игрок понимает какие варианты можно выкинуть/получить. Если ты увеличиваешь вес какой-то опции, то игра автоматически ломается. Игрок через N бросков понимает паттерн.
Основная задача кнб с т.з. геймдизайна в психологии, когда ты пытаешься разгадать своего соперника.
Основной принцип же заключается в том, что А бьет Б, Б бьет С, С бьет А.
Рыцарь бьет лучника, лучник бьет вора, вор бьет рыцаря.
Уже не говорю о том, что для кнб в принципе не нужен какой-то алгоритм случайности, я могу сделать текстовый файл, где запишу рукой варианты опций и в это можно будет играть.
У тебя понимание геймдизайна на уровне тс, вы находитесь где-то в области теории удвоенного времени.
Тебе виднее про ориентацию, а в остальном - какой-то феерический бред, «настроен генератор», настроен, Карл! Чел, это алгоритм, чисто по употреблению слов понятно, что абсолютно не понимаешь о чем говоришь.
В камень-ножницы-бумага работает псевдослучайность, ведь все детерминировано: известен сид, известен алгоритм.
Короче, ты в команде кала.
Именно, я указал на некорректность терминов. Можно хоть стул называть столом, если об этом изначально договориться, но мы не договаривались.
Это в твоем коллективе принято так говорить, но мы не в твоем коллективе.
Так что используй общие термины корректно.
Программисты не кодируют, они кодят/пишут код.
Понятен концепт же?
Кодирование может быть от алкоголизма ещё.
Человек так много о себе думает, что не замечает собственную глупость и неосведомленность.
Типа «мобильная ориентация» - только бывает портретная (верт.) и альбомная (гор.)
Типа «камень-ножницы-бумага славится рандомом» - т.е. не вероятностями, а случайностями? т.е. стратегию нельзя строить?
И там подобные перлы в каждом предложении почти, лучше бы нейронкой проверил хоть часть тезисов.
Борьба мочи с калом. Пользователи ПДФ отказались пить мочу от одного юзернейма, но с радостью навернули говнеца от другого.
Так ретерн из цикла вынеси, там ошибка была изначально.