Giter Site home page Giter Site logo

chessdb's Introduction

ChessDB

A text-based multiplayer chess game written in Kx System's (https://kx.com/) programming language Q


Requirements

  • bash (Tested with Git Bash for Windows' MinTTY terminal)
  • q/kdb+ (Tested in version 4.0)

Note: Some terminals may be too slow at refreshing their visuals to show the game at 60 FPS properly, it is recommended to run through a faster terminal than the default, like running through a MinTTY terminal

How to Start a Game

First you will need a server to join; to start a server run start_server.sh, which can optionally be passed a port number as an argument for which it will host the server on, otherwise the server's port will default to the DEFAULT_PORT variable's value defined in config.env and the public and local IP address of the server will be logged upon it starting up

Clicking run.sh will start a client process for playing the game, to join a server you:

  1. Select PLAY on the main menu
  2. Enter and confirm a name you wish to call yourself in-game
  3. Enter the IP and port of the server (Use local IP if on same network as the server and public otherwise) and select Join
  4. Wait for another player to join the same server to start the game

Note:

To play a game hosted on another network port forwarding may be necessary on the host network (Search "How to port forward" for more information)

Tips

  • If run.sh and start_server.sh cannot start Q you may need to edit the Q_CMD override variable in config.env to a command that works on your machine
  • To reset the server you can execute reset[] in its console
  • When typing in the server IP address you can enter localhost or .z.a to easily set the IP to your local address
  • You can move the game cursor out of bounds to wrap it around to the other side of the board

Extras

Screenshot of Gameplay:

Screenshot

chessdb's People

Contributors

niallb98 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

chessdb's Issues

Improve cls function

It is possible to clear the screen (When the "clear" bash command is available) with:

-1"\033[3;J\033[H\033[2J";

Add chess AI

Should expose a function which takes the current board state as an argument and returns a move to take

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.