public override void Execute() { for (int x = 0; x < field.Height; ++x) { for (int y = 0; y < field.Width; ++y) { if (field.isChanged(x, y)) { for (int i = -1; i <= 1; ++i) { for (int j = -1; j <= 1; ++j) { UpdateCellEvent EV = new UpdateCellEvent(field, x + i, y + j); EV.eTime = eTime + 1; DEVS.ModelEvent.Enque(EV); } } } } } field.Swap(); }
public override void Execute() { List <LocalEvent> eventsToDelete = new List <LocalEvent>(); foreach (var ev in DEVS.EventQueue) { bool deleteThis = true; if (ev is LocalEvent) { var locEv = (LocalEvent)ev; int x = locEv.X; int y = locEv.Y; for (int i = -1; i <= 1; ++i) { for (int j = -1; j <= 1; ++j) { if (field.isChanged(x + i, y + j)) { deleteThis = false; } } } if (deleteThis) { eventsToDelete.Add(locEv); } } } foreach (var locEv in eventsToDelete) { DEVS.ModelEvent.Delete(locEv.X, locEv.Y); locEv.Remove(); } }