Closed superdev0727 closed 6 years ago
Hi!
It would be a little tricky to do this with the way that the engine is currently implemented, unless you want to make your own changes to it, or course.
You are in luck though, I put together a persistence feature last weekend that you could probably use. I need to spend a bit more time testing before I release it, but it is currently working. You can check it out on the feature/persistence branch
It works by converting a SwiftChess.Game
to a dictionary. You should be able to do something like this before making a move:
let beforeMoveDictionary = game.dictionaryRepresentation
And to undo the last move, just replace your game with the previously saved dictionary. You would then need to update your views as the board will have changed:
self.game = SwiftChess.Game(dictionary: beforeMoveDictionary)
I need to run some more tests and fix some minor edge cases with it, but I hope that I should be able to integrate it in to the main project sometime next week.
Persistence is now included in v1.0. This should be all you need to create an undo feature, let me know if you have any issues with it!
I'd like to add undo function to my app. What should I save and reload for this function? Thank you.