Coder Social home page Coder Social logo

asanakoy / russian-ai-cup-visual Goto Github PK

View Code? Open in Web Editor NEW

This project forked from justaman/russian-ai-cup-visual

0.0 1.0 0.0 117 KB

The repo that contains strategy-controlled visualizer plugin for Russian AI Cup local runner

Home Page: http://russianaicup.ru

License: MIT License

C++ 3.02% C# 6.59% Java 79.90% Python 8.49% Scala 1.56% Batchfile 0.40% Shell 0.03%

russian-ai-cup-visual's Introduction

What it is

This is a plugin for Russian AI Cup local runner that can be controlled by the strategy a player is developing. Plugin is based on the source that was provided by AI Cup committee.

How to control

Plugin is controlled by the property file named visualizer-plugin.properties placed in the same directory where .properties file which is used by local runner is stored. Properties are:

  • plugin-port-number - port which plugin listens for incoming connections. Default value is 13579.
  • plugin-do-tick-sync - whether to do a sync between local runner and debug client, see "re-playing games" for more.

How to use

Plugin starts a server thread that accepts only one connection to its port number. Then it starts communicating with other party using line-level text protocol.

Currently known commands are:

  • begin pre / begin post - start queueing commands to be displayed either before or after main drawing
  • end pre / end post - mark either "pre" or "post" queue of commands as ready to be displayed
  • circle x0 y0 r0 <color> - draw a circle at (x0, y0) with radius r0 and color color
  • fill_circle x0 y0 r0 <color> - draw a filled circle at (x0, y0) with radius r0 and color color
  • rect x1 y1 x2 y2 <color> - draw a rect with corners at (x1, y1) to (x2, y2) with color color
  • fill_rect x1 y1 x2 y2 <color> - draw a filled rect with corners at (x1, y1) to (x2, y2) with color color
  • line x1 y1 x2 y2 <color> - draw a line from (x1, y1) to (x2, y2) with color color
  • text x0 y0 msg <color> - show msg at coordinates (x0, y0) with color color
  • arc x y r startAngle arcAngle <color> - draw an arc with center at (x, y) with radius r, begins at startAngle and extends for arcAngle. All angles are in radians
  • fill_arc x y r startAngle arcAngle <color> - draw a sector with center at (x, y) with radius r, begins at startAngle and extends for arcAngle. All angles are in radians

Color <color> is actually an r g b triple of floats where 0.0 0.0 0.0 will be black and 1.0 1.0 1.0 will be white.

Re-playing games from russianaicup.ru with visual debug

NOTE: currently it is untested if it works with replays from AI cup 2016

To support that your debug client has to support syncing model. It is currently done as follows:

  1. Each tick plugin sends to the client SYNC <TICK_NUMBER> line and waits for ACK from client
  2. Debug client should respond with ACK as soon as the strategy using this client has finished computing <TICK_NUMBER> tick

This mode has to be enabled in visualizer-plugin.properties with setting plugin-do-tick-sync to either true or to auto. Auto mode will detect replay mode by checking names of players and assuming that if there is NO MyStrategy then it is a replay and it requires sync mode.

How strategy can use it

Well, this is actually up to the user... currently there is very simple debug client implemented in Python provided.

russian-ai-cup-visual's People

Contributors

justaman avatar scrblmer avatar dbagaev avatar wideword avatar tolsi avatar vzverev78 avatar jfhs avatar cthulhuden avatar sm1le55 avatar lafut avatar olsh avatar borod4r avatar minhir avatar vestild avatar dmitrii-mitrofanoff avatar randrewy avatar

Watchers

Artsiom avatar

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.