Karo engine in c++ with XNA frontend
bakkes / karo Goto Github PK
View Code? Open in Web Editor NEWKaro engine in c++ with XNA frontend
License: GNU General Public License v2.0
Karo engine in c++ with XNA frontend
License: GNU General Public License v2.0
to expose board entirly relative the cells should return a relative position. because we choiche to write a wrapper, this wrapper can also contain the bulk of the bitwise operations
Sounds simple, but it'll need to work with the Engine project and the Wrapper project. This caused some problems with the 2D frontend.
GetLegalMoves in MoveFinder creates a new vector, but the classes that use this method don't delete this vector.
This should be possible, otherwise you cant make moves that go out the board.
all the input for the board should be relative
When playing a player vs computer game, the board state gets screwed up. I do not know when or why this happens.
there should be a board (datastructure) to contain tiles and determine what is on the board. It also should be resizeable in all directions.
This probably was introduced with the WaitForUndo state.
The user wants to be able to click on objects in the 3d world.
Create a generic interface that can create a move.
I wrote a unit test that proves this, see the test named InvertBoardShiftingStepFromBug in MoveInvertionTest.cpp in the branch islands_30.
Solution: Make GetBestMove() in KaroComputerManager run in a seperate thread.
This frontend could be made in C#. It is only useful for testing and is not part of the end product, so it shouldn't be too complicated. C# with winforms maybe?
...which is incredibly painful to listen to. I assume @Bakkes introduced this bug with the WaitForUndo state.
Create an AI player that uses the mini-max algorithm. Plus points if depth level is easily changed.
Also create an interface for the computer player (so we could easily add other AI implementations).
Create an interface that takes a board and returns a value representing the state of the game.
our relatavie absolute converter can't detect negative moves, so it will return -1+width or height. these are always 20 so to the result is 19.
the easiest way to fix this is in the move constructor, detect the difference between from and to, if its 19 it should be -1
The following stuff should be shown in the 2d frontend:
This makes debugging easier.
Computer player eats up tiles and adds new tiles to board (shouldnt) work.
Our frontend should be able to communicate with those from other projects. Our XNA frontend must therefore use the communicationprotocol.
The communicationprotocol itself should not be changed. If we change it, we might break compatibility with the applications of other projects in our class.
Currently, you can't win while playing player vs computer. We should probably have some kind of win screen/message to indicate that we won.
Nothing too fancy. We could create better ones/improve this one in a later stage of the project.
The current state of the technical documentation is not good enough. According to the documents on n@tschool, we need the following:
See #14
The clarification on the moves which used a tile which temporarily creates a disconnected board is not correctly implemented in the move finder.
The unit test (Added in commit a6f413b) "RulesAmendment" checks a board which could return this move.
This is an optional requirement and does not have a high priority.
There's a picture on dropbox of the class diagram.
Includes flipped pieces, max and min pieces, etc. Does not include animations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.