
Γνωρίζει κανείς τι αλγόριθμος τρέχει από πίσω όταν πατάω σε ένα πρόγραμμα "Undo"?
Κρατάει 2 (ή παραπάνω) "status" του project και γυρίζει πίσω?
Κρατάει την τελευταία (ή παραπάνω) εντολή που δώθηκε από τον χρήστη και ενεργεί αντίστροφα?
Κάτι άλλο?

Έτσι όπως το περιγράφεις δουλεύει στο undo σε σχεδόν όλα τα προγράμματα. Χρησιμοποιούν μάλιστα το command pattern για να αποθηκεύουν τις εντολές του χρήστη.SeniorCarbone wrote:Μια άλλη λύση λιγότερο απαιτητική στην μνήμη - περισσότερο στην επεξεργασία θα ήταν να γράφεις σε στοίβα τα operations που γίνονται σε κάθε βήμα και για να πας σε κάποια προηγούμενη κατάσταση αρκεί να εκτελείς το αντίστροφο operation ανά βήμα που βγάζεις από την στοίβα.
gasparosoft wrote:Για τα παρακάτω δεν είμαι 100% σίγουρος.
Βασικά ό,τι κάνεις μπαίνουν σε μια stack. Όταν κάνεις undo τότε γίνεται pop από την stack η τελευταία ενέργεια που εκτελέστηκε. Τώρα πόσες ενέργειες και ποιες είναι δικό σου ζήτημα. Ανάλογα πάντα με το μέγεθος της stack και τις ενέργειες.
"Liberal" isn't a dirty word Blackadder!