Сообщество скриптеров (Академия)

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 8 мес. назад #35239 от James
А что можно посоветовать, чтобы srand каждый раз при вызове была новым числом?
Я подозреваю, что как-нибудь вроде srand rand(1000)*X
Но что это за X? Нужна какая-нибудь переменная, что после каждого вызова меняется. Просто цикл задать не пойдёт - всё равно то же число будет.

У меня есть некоторый кусок
ВНИМАНИЕ: Спойлер!


Который иногда работает, но где-то в половине случаев выдаёт одно и то же число и зависает.
Нужно найти какую-нибудь формулу, чтобы m и n были способны принимать различные значения.

P.S. А есть ли какая-либо переменная, которая по умолчанию передаётся в srand при вызове его без параметра? Вот тогда, наверное, будет возможно сделать что-то вроде srand (var+a).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 8 мес. назад - 15 года 8 мес. назад #35245 от dark32
А чем rand([x]) не угодил?


Случайное число

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 15 года 8 мес. назад пользователем dark32.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 8 мес. назад #35246 от James
Просто суть в том, что это не работает, если использовать srand rand(1000). Я пытался.

Суть в том, что этот rand(1000) каждый раз будет один и тот же.

Или ты что-то другое имел в виду?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 8 мес. назад - 15 года 8 мес. назад #35247 от dark32
вот я и спрашиваю чем тебе не угодил rand.
Ты знаешь для чего нужен srand? он определяет последовательность псевдослучайных чисел.
Для генерации псевдослучайного числа используется rand(x).
Если родной генератор не угодил чем то, то можно написать свой, в нете полно статей про ГПСЧ (генератор псевдослучайных чисел)

Ну если всё таки нужно использовать srand, то используй Time.now.sec в качестве параметра

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 15 года 8 мес. назад пользователем dark32.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 8 мес. назад #35261 от Злодей
Андрюха, с днем рождения!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 8 мес. назад #35301 от James
Вопросец: как сохранить некоторый битмап в файл? Как вообще с файлами работать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 8 мес. назад #35318 от dark32
посмотри как реализовано сохранение.
А так
file = File.new("filename",'wb')
Marshal.dump(var, file)
file.close
для записи в файл,
и аналогично для чтения
file = File.new("filename",'rb')
var=Marshal.load(file)
file.close

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад - 15 года 7 мес. назад #35895 от James
Есть проблема. Написал скрипт меню своего.


Часть сообщения скрыта для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.


Более-менее работает, но тормозит при инициализации. Прошу совета: как его оптимизировать, упростить, и что можно выкинуть? Хотя бы, как сделать, чтобы он не тормозил при инициализации?

Заранее благодарен

P.S. Если код корявый, не ругайте, пожалуйста.
Последнее редактирование: 15 года 7 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #35930 от James
Кстати, раз никто не может помочь, вопрос. Есть ли какой-то способ узнать, где именно скрипт (не обязательно этот) тормозит? Думал расставить p 123 по всему коду и замерять с секундомером промежутки между ними, но, может, есть другой, более удобный, способ?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад - 15 года 7 мес. назад #35943 от James
А, я понял! Это я анимацию открытия коряво всобачил! Создание меню должно идти после graphics.transition, а я его перед ним ставлю. Понятно, почему тормозит...

Теперь бы разобраться с самой анимацией...
P.S. А есть ли какой-либо способ определить, происходит ли какой-либо процесс в промежутке между Graphics.freeze и Graphics.transition или когда экран "свободен"?
Последнее редактирование: 15 года 7 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад - 15 года 7 мес. назад #35971 от James
Есть проблема. Есть класс (К1), который при инициализации создаёт другой объект(О класса К2).
(@window=LDJMW.new(@data,rows,width,x,y)). Можно ли как-нибудь изменить какие-нибудь методы К2 для О (Только для О, не затрагивая другие объекты класса К2) через К1? Или придётся новый класс создавать, наследственный от К2?
Или: как узнать класс, в котором был создан объект?
Последнее редактирование: 15 года 7 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 7 мес. назад #35982 от dark32
попробуй в классе К1 вот такую штуку
def o.method
<...code...>
end

а для для проверки класса есть .class
н-р:
5.class
=> Fixnum

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #35985 от James
def o.method не работает. Суть в том, что к этому методу идёт обращение из самого К2, может поэтому...

А по поводу .class - про это я знаю, но мне нужно установить класс не самого объекта, а класс, в котором он был создан (Например, если это было, например, initialize класса К3, то и на выходе К3. Если К4, который наследственнен от К3 (причём, объект создаётся с помощью того же К3, с использованием super), то в итоге будет К4). Просто создавать ещё один (или даже два) класс будет очень неудобно из-за того же super и создания этих объектов в родителе.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #35986 от James
И ещё одна проблема. Есть у меня класс (LDJMHW, в сообщении 35895 под третьим спойлером). Метод выдаёт ошибку в следующем куске кода в upd_zero
Code:
if self.height>@difference self.height-=@difference else self.height=32 end
В строке self.height-=@difference. Причём ошибку не простую, там Runtime Error и т.п., а виндовскую, что "Память не может быть 'read'". В чём проблема и что с эти делать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 7 мес. назад #35988 от dark32
По первому. Попробуй вешать класс родителя на переменную акссессор
По второму. Увы тут я бессилен. Возможно закончилась память отведённая под приложение.

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Спасибо сказали: James

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #35992 от James
Спасибо! Как я сам не додумался?...

А вот по второму... Как такое произойти могло вообще?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 7 мес. назад #36039 от dark32
Понятия не имею, возможно это из-за не совместимости виндовса и мейкера (если не WinXP) или ещё какие глюки оперативки, а то и bad'ы винчестера.

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #36061 от James
Решил написать другой скрипт хелп-виндова. Вопрос: есть битмап, есть строка, как заставить строку выводиться побуквенно?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #36064 от James
И ещё: мне нужно сделать проверку, помещается ли некоторая строка в битмап - т.е., без сжатия. Как это реализовать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 7 мес. назад #36067 от James
С побуквенным выводом разобрался. Там нужно было использовать то, что строка есть массив.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.158 секунд
Работает на Kunena форум