Giter Site home page Giter Site logo

kaggle's People

Contributors

emrecakmakcioglu avatar ezraay avatar q-g2 avatar

Watchers

 avatar  avatar

kaggle's Issues

Counting how long a turn takes

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

Avoid losing moves

We need an agent that does not pick a move that leads to the opponent having a winning move.

Minimax agent using evaluation function

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.

Evaluation function

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.

Kaggle deployment

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.

Fix Undo against agent in visualiser

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.

Support Look Ahead in visualiser hints

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.

Simulating multiple games at once

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

Copy board functionality

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()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.