- (let ((ptrs (player-ptrs playerA)))
- (player-set-ptrs! (append (cdr ptrs)
- (execute-instr (car ptrs)))))
- (run playerB player A (+ step 1)))))
+ (let ((player (car players))
+ (other-players (cdr players)))
+ (if (null? ptrs)
+ (run other-players (+ step 1)) ;Player is out
+ (let* ((ptrs (player-ptrs player))
+ (new-ptrs (execute-instr (car ptrs))))
+ (player-set-ptrs! (append (cdr ptrs) new-ptrs))
+ (run (append other-players (list player)) (+ step 1))))))))