У меня есть очень конкретный и длинный вопрос для всех вас. Этот вопрос касается как программирования, так и теории игр. Недавно я добавил нерегулярную руду в свою игру, основанную на поворотах: http://imgur.com/gallery/0F5D5Ij (Для тех из вас, кто выглядит, пожалуйста, простите текстуры разработки).
Теперь, на загадку, которую я созерцал. В моей игре руда генерируется каждый раз, когда создается новая карта. 0-8 единиц руды генерируются за создание уровня. У меня уже есть эта работа; за исключением того, что на данный момент он порождает "Emeraldite", что подводит меня к моему вопросу.
Как я, программист, сделаю так, чтобы узлы имели определенную редкость? Рассмотрите этот короткий макет, который не является фактически игровыми данными:
(Псевдо. Возможно, что a node будет одним из следующих)
Bloodstone 1 in 100
Default(Empty Node) 1 in 10
Copper 1 in 15
Emeraldite 1 in 35
Gold 1 in 50
Heronite 1 in 60
Platinum 1 in 60
Shadownite 1 in 75
Silver 1 in 35
Soranite 1 in 1000
Umbrarite 1 in 1000
Cobalt 1 in 75
Iron 1 in 15
Я хочу сделать так, чтобы сгенерированный node мог быть теоретически любым из вышеперечисленных, однако, с учетом вероятности. Надеюсь, этот вопрос достаточно ясен. Я пытался обвести голову вокруг этого и даже попытался выписать несколько утверждений с помощью randoms, однако, я продолжаю идти с пустыми руками.
В принципе, я просто хочу, чтобы вы, ребята, увидели мою проблему и, надеюсь, предоставили мне некоторое представление о том, как я мог бы подойти к этому динамическим способом.
Если какие-либо разъяснения необходимы, пожалуйста, спросите; извините, если это было запутано.
(Я добавляю С# в качестве тега только потому, что это язык, который я использую для этого проекта)