А у тебя randomize() прописано где-нибудь в приложении?
Вообще, для "нормального" рандома часто создают массив и вычитают из него ячейки. Некоторые нужные комбинации можно записать большее количество раз, некоторые подсовывать раньше. Короче, гадко читерить.
Вот как выглядела генерация рандома в DOOM Вместо того что бы забивать себе голову генераторами чисел они сделали себе таблицу по которой шли последовательно.
На самом деле вопрос "рандома" это интересный вопрос который тысячи геймдизайнеров не могут решить. Обычно для генерации рандома используют функцию тайм, которая образует стартовое зерно , и берут модуль от магического числа которое прописано в функции Rand стандартной библиотеки Си.
Прикол рандома - что чистый рандом - НИКОГДА не воспринимается игроком как "ЧЕСТНЫЙ" Гораздо лучше использовать рандом с подкруткой. пример такого рандома был в играх Ричарда Гэрриота каждый промах - увеличивал базовый шанс крита на 5% . Пока он не достигал 100% После чего система сбрасывалась.
Другой вариант - честного рандма - это Лотто- выборкой: где мы воспринимаем цифры рандома не как броски - а как доставание из мешка лотто циферок.
Например 6 гранный кубик. дает значения 1 2 3 4 5 6 При первом выбрасывании: будет условно говоря 3. То следующее число будет из выбора 1 2 4 5 6 Потом выкидывем 6 и у нас остается 1 2 4 5 Потом осталось выкинуть 4 оставшиеся цифры и цикл сбрасывается. Это будет восприниматься гораздо честнее.
Но у такой лотто выборки могут быть сложности с генерацией выигрышных бросков. но тут это можно решить вопросом дублирования диапозона. 11 22 33 44 55 66 или 111 222 333 444 555 666 и так далее. Но больше 3-4х дублей не рекомендую.
Еще у Лотто выборки можно считерить и сделать множители сложности игры. Например : таблицу бросков : Для легкого уровня: 1 2 33 444 55 6 Для среднего 1 2 33 44 5 6 для высокого : 1 2 3 4 5 6 Для хардкора 11 222 33 4 5 6
А у тебя randomize() прописано где-нибудь в приложении?
Вообще, для "нормального" рандома часто создают массив и вычитают из него ячейки. Некоторые нужные комбинации можно записать большее количество раз, некоторые подсовывать раньше. Короче, гадко читерить.
И переходи уже на GMS, ей богу
Нет, это встроенная в движок функция.
Про массив не поняла, это уже что-то на сложном.
Не перейду, пока не доведу до ума хотя бы один проект)
но почему-то кейсы срабатывают многократно, даже если не соответствуют условиямстранно, а у меня бы всё точно заработало.
профессионала сразу видно)
Так не во всех языках, но во многих.
В go например наоборот надо делать fallthrough, если хочешь, чтобы выполнилось ниже.
Ага, нужно учитывать подобное на будущее.
Вот как выглядела генерация рандома в DOOM
Вместо того что бы забивать себе голову генераторами чисел они сделали себе таблицу по которой шли последовательно.
На самом деле вопрос "рандома" это интересный вопрос который тысячи геймдизайнеров не могут решить.
Обычно для генерации рандома используют функцию тайм, которая образует стартовое зерно , и берут модуль от магического числа которое прописано в функции Rand стандартной библиотеки Си.
Прикол рандома - что чистый рандом - НИКОГДА не воспринимается игроком как "ЧЕСТНЫЙ"
Гораздо лучше использовать рандом с подкруткой.
пример такого рандома был в играх Ричарда Гэрриота каждый промах - увеличивал базовый шанс крита на 5% . Пока он не достигал 100% После чего система сбрасывалась.
Другой вариант - честного рандма - это Лотто- выборкой: где мы воспринимаем цифры рандома не как броски - а как доставание из мешка лотто циферок.
Например 6 гранный кубик.
дает значения 1 2 3 4 5 6
При первом выбрасывании: будет условно говоря 3.
То следующее число будет из выбора 1 2 4 5 6
Потом выкидывем 6
и у нас остается 1 2 4 5
Потом осталось выкинуть 4 оставшиеся цифры и цикл сбрасывается.
Это будет восприниматься гораздо честнее.
Но у такой лотто выборки могут быть сложности с генерацией выигрышных бросков.
но тут это можно решить вопросом дублирования диапозона.
11 22 33 44 55 66
или 111 222 333 444 555 666 и так далее. Но больше 3-4х дублей не рекомендую.
Еще у Лотто выборки можно считерить и сделать множители сложности игры.
Например : таблицу бросков :
Для легкого уровня: 1 2 33 444 55 6
Для среднего 1 2 33 44 5 6
для высокого : 1 2 3 4 5 6
Для хардкора 11 222 33 4 5 6