Страница 1 из 1

Рандом с шансом выпадения

СообщениеДобавлено: 23 апр 2017, 17:19
ChesterRose
Надо реализовать недо-рулетку, где шанс выпадения одного числа - 50%, 2 числа - 25% и так далее. Я написал такой скрипт, но по непонятным мне причинам он отказывается работать:
Синтаксис:
Используется csharp
public void Buy() {
                int random = Random.Range (1, 100);

                if(random <= 50) {
                        dust += 50;
                } else if(random <= 25) {
                        dust += 100;
                } else if(random <= 12) {
                        dust += 200;
                } else if(random <= 6) {
                        dust += 400;
                } else if(random <= 3) {
                        dust += 800;
                } else if(random <= 2) {
                        dust += 1600;
                } else if(random == 1) {
                        dust += 3200;
                }

                PlayerPrefs.SetInt ("duat", dust);
                dustField.text = PlayerPrefs.GetInt ("dust").ToString ();
                PlayerPrefs.Save ();

        }
 

Есть у кого какие то идеи по реализации? Дайте какие то наводки

Re: Рандом с шансом выпадения

СообщениеДобавлено: 23 апр 2017, 17:26
Anonymyx
1ое условие более "общее", если оно выполнится, остальные не выполняются. Улавливаете?

Re: Рандом с шансом выпадения

СообщениеДобавлено: 23 апр 2017, 17:42
ChesterRose
Боже, такая тупая ошибка... Спасибо. Вот пофикшенный код:
Синтаксис:
Используется csharp
public void Buy() {
                int random = Random.Range (1, 100);

                if(random >= 50) {
                        dust += 50;
                } else if(random <= 49 && random >= 13) {
                        dust += 100;
                } else if(random <= 12 && random >= 7) {
                        dust += 200;
                } else if(random <= 6 && random >= 4) {
                        dust += 400;
                } else if(random == 3) {
                        dust += 800;
                } else if(random == 2) {
                        dust += 1600;
                } else if(random == 1) {
                        dust += 3200;
                }

                PlayerPrefs.SetInt ("dust", dust);
                dustField.text = PlayerPrefs.GetInt ("dust").ToString ();
                PlayerPrefs.Save ();

        }
 

Re: Рандом с шансом выпадения

СообщениеДобавлено: 24 апр 2017, 00:51
mysterio
Просто в обратном порядке первоначальный вариант записать и все..

Re: Рандом с шансом выпадения

СообщениеДобавлено: 25 апр 2017, 09:11
Valentinus
вот прям для вашего случая статья от юнити:
https://docs.unity3d.com/ru/current/Man ... mbers.html