ezraay / kaggle Goto Github PK
View Code? Open in Web Editor NEWFIT 3163 Connect X competition on Kaggle
FIT 3163 Connect X competition on Kaggle
There is a requirement on Kaggle that the first turn takes less than 60 seconds, and all subsequent turns take less than 2 seconds.
In order to properly test these constraints, we need a way for the simulation to throw an error if the time taken per turn is too long.
Example output:
ERROR:
Player 1 - RandomAgent took too long on Turn 15
Expected: 2000ms
Actual: 2548ms
We need an agent that picks the winning move whenever it is available.
We need an agent that does not pick a move that leads to the opponent having a winning move.
The agent needs to be able to play out every possible move, and see how each affects the current state. It should pick the move that ends up with the best evaluation for itself, aka the best move.
Heuristic function to take in a board and a player's move - return a score indicating how favourable the game is for that player. Doesn't look ahead/assume certain moves will be made.
We need to be able to deploy any agent to kaggle directly.
python deploy.py RandomAgent
The script should hook into the kaggle python api package and deploy all scripts to the project. If this is not possible, then at minimum a script needs to exist that acts as an interface between the codebase and the kaggle environment.
Currently the undo works incorrectly when playing against an agent. It undoes the move the agent makes, but the agent instantly remakes the same move.
Preferably, when versing against another agent, undo should undo two moves rather than one.
Currently the visualiser only gives you hints for the currently available moves, not accounting for the opponents responses.
For instance, it doesn't suggest to block opponent's winning move usually.
The interface should allow for selecting how many moves ahead it looks.
python visualise.py --versus RandomAgent --lookahead 5
The above script should show type hints with a depth of 5. The default should be a look ahead of 1.
The command line utility should be able to run multiple games at once to account for randomness.
Expected usage:
python main.py RandomAgent RandomAgent --game-count 1000
Example of expected output:
Player 1 - RandomAgent
450 wins, 100 draws, 450 losses
Player 2 - RandomAgent
450 wins, 100 draws, 450 losses
There needs to be ability to copy a board object into a new instance. It should be a smart copy that contains the same history, board state etc. This is required so that agents don't accidentally mess with the actual board state when performing searches incorrectly.
# Example
board = Board()
board.create((7, 6))
board2 = board.copy()
We need some interface connection to a database that we can use to store necessary statistics from official testing.
Should connect to either a local mongodb instance, or a cloud mongo atlas instance.
In evulation, we can simplify the board into a string representation for faster speed
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.