Giter VIP home page Giter VIP logo

chess-engine's Introduction

A toy chess engine to accomplish the following

  • Pairing to teach a new engineer some object modeling and testing fundamentals
  • New ruby 3 features like ractors and fibers
  • Learn more about chess

Objects

Pieces

  • Piece type
  • Team
  • Valid moves(current_board)
    • basic moves (pieces make valid moves and stay on the board)
    • take collisions in to account when moving
    • advanced movement (castling, en passant, promotions)
  • Checked/Checkmated
  • Value
  • Position on board
    • File (Letters) - First Coordinate
    • Rank (Numbers) - Second Coordinate

Board

  • All the pieces on the board
  • Set itself up (heres a new game)
    • from new game
    • from an established board matrix
    • from an input vector of moves
  • How many of each piece are left - Score balance

Players

  • Type (computer, human)
  • Next move
  • Team
  • Time remaining

Game

  • What turn
  • Asks if game is over, if so, awards winner
  • Initial time per player

Optimization Algorithm (Alpha-Beta Pruning)

Here is the algorithm

chess-engine's People

Contributors

bakermoran avatar

Watchers

Patrick Veith 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.