public void MoveDisks(int discCount, ITower destination, ITower buffer) { if (discCount <= 0) { return; } MoveDisks(discCount - 1, buffer, destination); MoveTopTo(destination); buffer.MoveDisks(discCount - 1, destination, this); }