Comments (2)
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.
from swiftchess.
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!
from swiftchess.
Related Issues (17)
- Images for readme
- [Feature Request] Use K/k for king and N/n for knight. HOT 6
- Levels HOT 2
- Multi player HOT 1
- Timer HOT 2
- App is crashing when I navigate back to MenuViewController. HOT 1
- [Request] Add Castling HOT 1
- undo options HOT 3
- PGN Parser HOT 1
- Some time moves not working. HOT 1
- Reset Game HOT 1
- add legal moves? HOT 2
- How strong the engine is? HOT 1
- Locking mechanism for resources
- Can you build a Korean chess engine?
- The code doesn't work. Please see the log below. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swiftchess.