Here are the project files: [url removed, login to view]
The game works and has options for AI vs. Player and Player vs. Player
1. The guy who coded the AI strategies suddenly stopped replying me back. I have a deadline this Saturday. I'm worried. We are aiming for pluggable strategies.
2. After you compile the Iago game(that's what we have termed our game name as), in order to use the plugin strategy all you have to do is to copy the [url removed, login to view] file to the directory where the other binaries are and then when a new game is started the AI will use the plugin strategy.
3. So, as long as there are different pluggable strategies in the bin folder, the AI will pick the first available one to play against the human player.
4. The coder guy created Strategy as a different project under Iago game.
5. My team leader now wants something different. He wants a functionality where "advanced users" of our game will be able to code their own strategies - in place of already coded .dll strategies.
6. Our team leader said:
1. Move your Strategy project to a separate solution - it needs to be a completely different program
2. MyGame should be its own object - no need for sub-classes.
3. Something like LibIago (library) should be there - Basic stuff that somebody would need to develop a strategy
So, to be clearly speaking, what he wants is an option for advanced users to code their own strategies using Move, Square Type and MinMax Strategy
This is what it would look -
What we want(our group) is for users themselves to build a .dll strategy using MinMax
Our Team leader doesn't want a different game project for Strategies under Iago game, but a completely different Strategies project not under Iago where users will be code their own strategy using MinMax. MinMax however should be under Iago. He is fine with copy-pasting and all that.
The same coder explained me few changes he made before disapearing :
"I've changed [url removed, login to view] to implement StrategyFactory() - to load the Strategy from the plugins, if no Strategy class is found, the default Strategy is created. PickMove tries to use the created Strategy and if it returns an invalid move a random move is selected. The default strategy returns a null move and that makes PickMove choose a random [url removed, login to view] [url removed, login to view] I just made it give the current player to the [url removed, login to view] the new project StrategyMinMax is a Strategy that implemented GenerateMove to use Min Max algorithm to choose the best Strategy as I did in the first phase.I've also added a project and so
changed the solution, and added files to the new solution.
I've added MyGame and MyGameState classes to expose unexposed functionality from Game and GameState using copy-paste."
Anyway, if you check the files, you will know what needs to be done. Its pretty simple. I will pay you at least $50 for such a simple task. All you have to do is follow what our Team leader said and make it working.
Once again the files are right here:[url removed, login to view]
You might have to download NUnit(for unit testing) :
[url removed, login to view]
and use [url removed, login to view] which is in the bin folder of NUnit once you unzip it. And just add [url removed, login to view] as a reference.
Thanks for reading all this. I just wanted to explain everything clearly.