Helen
Ноя. 14, 2010 08:56:03
Здравствуйте,
Я новичок в Python, изучаю язык всего неделю.
У меня возникла проблема, мне необходимо написать программу, чтобы ряд элементов меняли свое значение, грубо говоря с 0 переключались на 1 в определенном порядке. Сам алгоритм я написала, проблема лишь в том, что они не синхронизированы, т.е. переключение происходит не одновременно.
Ну вроде бы суть написала)
Буду очень признательна за помощь, потому что сама уже бьюсь с этим неделю.
Андрей Светлов
Ноя. 14, 2010 11:09:53
Милая барышня, понять что вы хотите - и, главное, что не получается - решительно невозможно.
Вы бы хоть код показали…
sypper-pit
Ноя. 14, 2010 11:17:22
Чувствую себя кк Бендер “”“да детка покажи свои схемы”“” :) о какой у тебя код :)
А если на полном серьёзе то нужно описывать проблему полнее
alexx11
Ноя. 14, 2010 13:43:44
Helen
чтобы ряд элементов меняли свое значение, грубо говоря с 0 переключались на 1 в определенном порядке.
Форум всё веселей с каждым днём. По сути любая операционная система, это ряд простейших элементов с переключением их в определённом порядке, ессно, в нули и единицы. :/
Helen
Ноя. 14, 2010 19:48:07
Вот вам код)
Сначало я задаю раположение точек на рисунке, затем мне необходимо сделать так, чтобы они менялись с 0 на 1 в определенном порядке. При этом алгоритм задан в каждой точке, она сама определяет когда ей изменить значение (цикл сделать не получится).
class pixel (1):
def __init__(self, id, **kwargs):
self.id=id
self.s = False
1.__init__(self, **kwargs)
clock.schedule_interval(self.switch, 1) # собственно вот это переключение и действует не равномерно,
# т.е. они переключаются не каждую секунду, а рывками
# и я ничего поделать с этим не могу (((
def proverka(self):
if li == 1:
self.s=True
else:
self.s=False
return self.s
Андрей Светлов
Ноя. 15, 2010 00:34:20
Хочу еще! :)
Если код можно запустить и увидеть все своими глазами - это сильно помогает.
clock.schedule_interval - это из pyglet?
Если я угадал и беда в том, что картинка “дергается”, времена между обновлениями прыгают - стоит попробовать .schedule_interval_soft
А если нужно переключать все точки одновременно - стоит завести один таймер и в нем уже написать
def on_clock(self, interval):
for p in li:
p.switch(interval)
вместо таймера на точку.
А почему pixel наследуется от единицы? Это такая военная хитрость?
Helen
Ноя. 15, 2010 08:22:24
Да-да! проблема именно в этом)))
Спасибо, я попробую.
1 - это просто название класса)
В вот timer.set функция тут не помогут???
Helen
Ноя. 15, 2010 22:47:03
Применила .schedule_interval_soft - картинка стала дергаться меньше))
Вот еще бы хотелось узнать как можно синхронизировать FPS и время во всех точках?
просто таймер сделать не получится, li - это массив, который определяет какое значение будет у точки (из 1 и 0, грубо говоря ), поэтому при switch меняются элементы этого массива, а сама точка лишь проверяет какое у нее значение после переключения (Proverka).
regall
Ноя. 15, 2010 23:10:59
оффтоп:
Андрей Светлов, подари мне, пожалуйста, свой хрустальный шар =).
Андрей Светлов
Ноя. 16, 2010 13:08:29
regall
оффтоп:
Андрей Светлов, подари мне, пожалуйста, свой хрустальный шар =).
Товар штучный, клонированию не поддается