//Excerpt from game.C. void game::play() const throw (terminal::different) { for (;; term.wait(250)) { for (wabbit::const_iterator it = wabbit::begin(); it != wabbit::end();) { try { (*it++)->decide(); } catch (const vector& doomed) { for (vector::const_iterator i = doomed.begin(); i != doomed.end(); ++i) { wabbit *const d = *i; if (it != wabbit::end() && *it == d) { ++it; } delete d; //Destruct the wabbit. } } if (wabbit::size() <= # of wabbit's that should survive to the end) { return; //No more goto. } } } }