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
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).
GetLegalMoves in MoveFinder creates a new vector, but the classes that use this method don't delete this vector.
Sounds simple, but it'll need to work with the Engine project and the Wrapper project. This caused some problems with the 2D frontend.
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.
Create a generic interface that can create a move.
This probably was introduced with the WaitForUndo state.
Create an interface that takes a board and returns a value representing the state of the game.
This should be possible, otherwise you cant make moves that go out the board.
Nothing too fancy. We could create better ones/improve this one in a later stage of the project.
See #14
Includes flipped pieces, max and min pieces, etc. Does not include animations.
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?
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.
The user wants to be able to click on objects in the 3d world.
There's a picture on dropbox of the class diagram.
Solution: Make GetBestMove() in KaroComputerManager run in a seperate thread.
...which is incredibly painful to listen to. I assume @Bakkes introduced this bug with the WaitForUndo state.
Computer player eats up tiles and adds new tiles to board (shouldnt) work.
When playing a player vs computer game, the board state gets screwed up. I do not know when or why this happens.
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.
The current state of the technical documentation is not good enough. According to the documents on n@tschool, we need the following:
This is an optional requirement and does not have a high priority.
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
all the input for the board should be relative
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.
there should be a board (datastructure) to contain tiles and determine what is on the board. It also should be resizeable in all directions.
I wrote a unit test that proves this, see the test named InvertBoardShiftingStepFromBug in MoveInvertionTest.cpp in the branch islands_30.
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.