Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как правильно задать генерирование числа по условию, Не получается вставить нужную конструкцию в готовый код
 
Доброго дня,

есть код старого "игрового автомата", который захотелось улучшить. Например если статистика выигрыш\проигрыш начинает выходить из расчетного равновесия (проигрышей, например, становится не 72% на 1000 спинов, а не поднимается выше 50%), то в ячейке А1 появляется триггер "1".

И нужно изменить часть кода макроса этого "автомата", ответственную за генерацию случайного числа в каждом из трех Range на листе, чтобы при появлении триггера в ячейке А1 генерирование числа происходило по другому.

Точнее - нужно, чтобы или при появлении "7" происходила вторая попытка генерирования, или, что лучше всего, генерирование происходило в диапазоне 1..6,8..9 (или только  в 1...6) избегая 7.

У меня далеко не лучшим образом всегда понимались конструкции Do..Loop и иже с ними.
И как я не вставляю нужное мне а ля например
Код
If Range("A1").Value = "1" Then
...
Range("_7").Value = CStr(Int(Rnd() * 6)+1) ' для каждого Range
End If

или что то навроде, то либо vba ругается на всякое, либо все равно генерирование происходит в диапазоне 0...10.

Можно, конечно попробовать, вставить переброс без звуков и таймера в подпрограмму Win, в котороый через If...Then происходит расчет выигрыша-проигрыша, но хотелось бы попробовать научиться заодно правильно понимать циклы.

Вот исходный код:
Код
Sub Rotate()
With slots
Hide777
Color1
Randomize
 Dim PauseTime, Start
    PauseTime = 0.8

    Start = Timer
    PlSound
    Do While Timer < Start + PauseTime
        Range("_7").Value = CStr(Int(Rnd() * 10))
    Loop
    Start = Timer
    PlSound
    Do While Timer < Start + PauseTime
         Range("_77").Value = CStr(Int(Rnd() * 10))
    Finish = Timer
    Loop
    Start = Timer
    PlSound
    Do While Timer < Start + PauseTime
        Range("_777").Value = CStr(Int(Rnd() * 10))
    Loop
    PlSound0
Win
    Range("Blnc") = Range("Win") - Range("Ls") + Range("Inst")
WriteValue
Color3
Color2
Color4
End With
 End Sub
Страницы: 1
Читают тему (гостей: 1)