Войти на сайт

Авторизация, ждите ...
×

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

Сообщество скриптеров (Академия) 14 года 3 мес. назад #35239

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
А что можно посоветовать, чтобы srand каждый раз при вызове была новым числом?
Я подозреваю, что как-нибудь вроде srand rand(1000)*X
Но что это за X? Нужна какая-нибудь переменная, что после каждого вызова меняется. Просто цикл задать не пойдёт - всё равно то же число будет.

У меня есть некоторый кусок
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


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

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

Сообщество скриптеров (Академия) 14 года 3 мес. назад #35245

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
А чем rand([x]) не угодил?


Случайное число
Тьма, тьма, и ничего кроме тьмы...

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

Сообщество скриптеров (Академия) 14 года 3 мес. назад #35246

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Просто суть в том, что это не работает, если использовать srand rand(1000). Я пытался.

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

Или ты что-то другое имел в виду?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 3 мес. назад #35247

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
вот я и спрашиваю чем тебе не угодил rand.
Ты знаешь для чего нужен srand? он определяет последовательность псевдослучайных чисел.
Для генерации псевдослучайного числа используется rand(x).
Если родной генератор не угодил чем то, то можно написать свой, в нете полно статей про ГПСЧ (генератор псевдослучайных чисел)

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

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

Сообщество скриптеров (Академия) 14 года 3 мес. назад #35261

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Андрюха, с днем рождения!
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 2 мес. назад #35301

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Вопросец: как сохранить некоторый битмап в файл? Как вообще с файлами работать?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 2 мес. назад #35318

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
посмотри как реализовано сохранение.
А так
file = File.new("filename",'wb')
Marshal.dump(var, file)
file.close
для записи в файл,
и аналогично для чтения
file = File.new("filename",'rb')
var=Marshal.load(file)
file.close
Тьма, тьма, и ничего кроме тьмы...

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35895

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Есть проблема. Написал скрипт меню своего.


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

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

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

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35930

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Кстати, раз никто не может помочь, вопрос. Есть ли какой-то способ узнать, где именно скрипт (не обязательно этот) тормозит? Думал расставить p 123 по всему коду и замерять с секундомером промежутки между ними, но, может, есть другой, более удобный, способ?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35943

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
А, я понял! Это я анимацию открытия коряво всобачил! Создание меню должно идти после graphics.transition, а я его перед ним ставлю. Понятно, почему тормозит...

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35971

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Есть проблема. Есть класс (К1), который при инициализации создаёт другой объект(О класса К2).
(@window=LDJMW.new(@data,rows,width,x,y)). Можно ли как-нибудь изменить какие-нибудь методы К2 для О (Только для О, не затрагивая другие объекты класса К2) через К1? Или придётся новый класс создавать, наследственный от К2?
Или: как узнать класс, в котором был создан объект?
Последнее редактирование: 14 года 1 мес. назад от James.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35982

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
попробуй в классе К1 вот такую штуку
def o.method
<...code...>
end

а для для проверки класса есть .class
н-р:
5.class
=> Fixnum
Тьма, тьма, и ничего кроме тьмы...

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35985

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
def o.method не работает. Суть в том, что к этому методу идёт обращение из самого К2, может поэтому...

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35986

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35988

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
По первому. Попробуй вешать класс родителя на переменную акссессор
По второму. Увы тут я бессилен. Возможно закончилась память отведённая под приложение.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: James

Сообщество скриптеров (Академия) 14 года 1 мес. назад #35992

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Спасибо! Как я сам не додумался?...

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #36039

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Понятия не имею, возможно это из-за не совместимости виндовса и мейкера (если не WinXP) или ещё какие глюки оперативки, а то и bad'ы винчестера.
Тьма, тьма, и ничего кроме тьмы...

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

Сообщество скриптеров (Академия) 14 года 1 мес. назад #36061

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
Решил написать другой скрипт хелп-виндова. Вопрос: есть битмап, есть строка, как заставить строку выводиться побуквенно?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 1 мес. назад #36064

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
И ещё: мне нужно сделать проверку, помещается ли некоторая строка в битмап - т.е., без сжатия. Как это реализовать?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 1 мес. назад #36067

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • ПисательПобедитель конкурсаРазработчик2 место 3 местоОрганизатор конкурсовПисатель 2 место
С побуквенным выводом разобрался. Там нужно было использовать то, что строка есть массив.
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.455 секунд