Giter Club home page Giter Club logo

churlish's Introduction

churlish: chess in a URL

churlish is a chess viewer for web browsers. It's still in early development.

Game state is saved in the URL, which allows you to share games without storing anything on a server.

Note: the PGN parsing is currently rather fragile. If you can't paste a game, please try removing comments, sub-variations, and annotations. Sorry!

Demo

A famous game

Inspirations

Building blocks

churlish's People

Contributors

dwyde avatar

Stargazers

Zachary Whaley avatar

Watchers

 avatar

churlish's Issues

Robust PGN parsing

  • Examine how pgn4web, XBoard, etc., do PGN parsing
  • Display annotations like $1 (mapping of $X -> !, etc.?)
  • Handle comments: multi-line and semicolon?
    • Ignore them to start
    • Shouldn't be a whole lot harder to display them below the board
  • Ignore recursive variations for now
  • Handle FEN strings in tag pairs

Mobile styles

Make sure that the site doesn't look terrible on mobile. If necessary, use something like Bootstrap.

Keyboard shortcuts

  • Ctrl+S to save
  • Arrow keys for forward/backward
    Text inputs need to behave normally!

Autoplay

Automatically play through moves.

  • Click a button to enable
  • Click a button to disable
  • Possibly enable on page load

Use a real JS framework

The current approach to changing views is a hack. There's no need for fancy AJAX features, but model-view separation might be nice.

Save a .pgn file

  • Save the game's PGN with the HTML5 File API
  • Add UI to set the seven required tag pairs

Regression tests

This probably depends on model-view separation, which would come with #3.

Support branches in the game

Allow variations and sub-variations. This probably requires using a tree data structure to store moves, instead of a list. Depends on #2.

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.