--------------
i | t | o | a
0 | 1 | 2 | 1
1 | 5 | 2 | 2
2 | 7 | 3 | 1
Соответственно, нужно идти подряд по списку и выполнять эти комманды по мере того, как таймер дойдет до нужной секунды.
Если бы я писал на delphi я бы не заморачивался и сделал примерно так:
type
myRec=record
cTime:integer;
cObj:integer;
cAction:integer;
end;
const
cList:array [0..2] of myRec=
((cTime:1;cObj:2;cAction:1),
(cTime:5;cObj:2;cAction:2),
(cTime:7;cObj:3;cAction:1));
begin
cTimer:=0;
for i:=0 to 2 do
begin
while true do
begin
if cList[i].cTime>cTimer
then
doAction(cList[i].cObj,cList[i].cAction);
break;
end; //while
doSomeChecking;
cTimer:=GetNewTime;
end; //for
Как правильно с точки зрения пайтона реализовать подобный алгоритм?
Вроде больше всего похоже, что данные нужно в словаре хранить:
cList={[(cTime:1;cObj:2;cAction:1], [cTime:5;cObj:2;cAction:2], [cTime:7;cObj:3;cAction:1]};
Или вообще в данном случае есть какое-то простое красивое решение о котором я не догадываюсь?