GithubHelp home page GithubHelp logo

pychess / pychess Goto Github PK

View Code? Open in Web Editor NEW
664.0 39.0 180.0 38.83 MB

PyChess - a chess client for Linux/Windows

Home Page: https://pychess.github.io/

License: GNU General Public License v3.0

Shell 0.13% Python 99.87% Batchfile 0.01%
chess pgn epd fen fics icc lichess python3 gui gtk3

pychess's Introduction

pre-commit Python-CI codecov Documentation Status

PyChess - A Free Chess Client for Linux/Windows

Welcome to PyChess, a free and feature-rich chess client designed for Linux and Windows platforms. Whether you're a beginner looking for a quick game or an advanced player seeking to enhance your skills, PyChess has you covered.

About PyChess

PyChess is a GTK chess client developed primarily for GNOME but compatible with various Linux desktop environments. The entire PyChess codebase, from the user interface to the chess engine, is written in Python and released under the GNU Public License.

Goals of PyChess

Provide an advanced chess client for Linux following the GNOME Human Interface Guidelines. Offer a user-friendly interface suitable for both beginners and experienced players. Allow users to play against the computer, find the best moves with Hint Mode, and access a range of chess engines.

Features

PyChess boasts a wide array of features to enhance your chess experience:

  • Support for UCI and CECP chess engines with 8 different difficulty levels.
  • Built-in Python chess engine.
  • Online play on FICS (Free Internet Chess Server) with Timeseal support.
  • Online play on ICC (Internet Chess Club) with timestamp support.
  • Resizable chess board, "pre-drag" support, move and capture sounds, and animations.
  • Compatibility with PGN, EPD, and FEN chess file formats.
  • Undo, pause, and resume games.
  • Various chess variants, including Atomic, Crazyhouse, Fischer Random (Chess 960), and more.
  • Built-in opening book.
  • Hint Mode arrows indicating the best move based on the chosen analysis engine.
  • Compliance with the GNOME Human Interface Guidelines.

Getting Started

Installation

To install PyChess, follow these steps:

  • Visit the PyChess Download Page on GitHub.
  • Download the latest release suitable for your platform (Linux or Windows).
  • Follow the installation instructions provided for your specific operating system.

Running PyChess

Once installed, you can run PyChess as follows:

  • Linux: Launch PyChess from your application menu or execute pychess in the terminal.
  • Windows: Double-click the PyChess executable.

Playing Chess

  • To play a game against the computer, select "New Game" and configure the options as desired.
  • For online play, you can log in to FICS or ICC and enjoy games with players from around the world.

Community and Support

Contributions

PyChess is an open-source project, and contributions are welcome! Whether you want to improve the code, translate the software, or help with documentation, your contributions are valued.

License

PyChess is released under the GNU Public License. For more details, refer to the project's License Information.

pychess's People

Contributors

bboutkov avatar bobotig avatar bracewind avatar cajone avatar chewi avatar christopherking42 avatar davide125 avatar dependabot[bot] avatar ecrucru avatar eeopd avatar gbtami avatar hartwork avatar igor2x avatar johncheetham avatar jonast avatar leogregianin avatar lkjell avatar lovebug356 avatar masoudd avatar mathieucaroff avatar mattgatto avatar milanshen avatar notruck avatar pinotree avatar sblackstone avatar sshivaji avatar tedrhuyagonall avatar theredlancer avatar thomasahle avatar uncombedcoconut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pychess's Issues

Use SDL

Original issue 9 reported by lobais 2006-08-21

Use some kind of acceleration for scaling svg and doing animations.

Issues running SVN version Sept 8 2006

Original issue 38 reported by robert.ancell 2006-09-08

I checked out the source and tried it. Works after the following changes:

o Remove 'ICS' from init.py in Players/ (missing file?).
o If an engine is not installed then:

  • Player.name must be '' not None.
  • self.inn.readline() will return '', return from method to avoid
    infinite loop.

There is no contact information for this project in source or webpage, for
more information contact me at [email protected]. I have a
similar PyGTK project (glchess.sourceforge.net) - I would be interested in
making these two projects as compatible as possible (i.e. save games and
LAN networking).

Cheers,
--Robert

Enter one-line summary

Original issue 36 reported by lobais 2006-09-05

Add signs to saved pgns.
* ! a good move
* !! an excellent move
* ? a mistake
* ?? a blunder
* !? an interesting move that may not be best
* ?! a dubious move, but not easily refuted
* โ–ก forced move

Stallmate

Original issue 23 reported by lobais 2006-08-31

Need support for stallmate
#3 Three equal positions in row

Being unable to move

Analyze panel

Original issue 24 reported by lobais 2006-08-31

A sidepanel showing how the engine is planing the game to evolve.
Will you be dead in three turns?

Auto rotate

Original issue 34 reported by lobais 2006-09-05

View option, automaticly to rotate the board, so the active player is face
down.

External openingbook support

Original issue 33 reported by lobais 2006-09-05

Possibility to use other books. Should both target the UI, and the engines.

Also a function to create a book out of a list of pgns, might be cool.

GtkWarning on startup

Original issue 45 reported by thijsvermeir 2006-09-20

What steps will reproduce the problem?
Just start PyChess

What is the expected output? What do you see instead?
There is a GtkWarning on my system. It doesn't break anything as far as I know.

./PyChess.py:285: GtkWarning: gtk_notebook_set_tab_label: assertion
`GTK_IS_WIDGET (child)' failed
self.widgets = gtk.glade.XML("glade/PyChess.glade")

I'm using Python 2.4.3

Score statistic

Original issue 1 reported by lobais 2006-08-06

There should be a way, to get an overview/statstic showing the e.g.
gnuchess score during the game.

Avahi support

Original issue 25 reported by setanta 2006-09-03

Future Avahi support would make PyChess a must for playing chess in a LAN.
Something like show other available Human players, when clicking in 'New
Game', and may be the possibility to watch other player's game.

PGN

Original issue 2 reported by lobais 2006-08-06

Should be able to load and save in the pgn format

Opening support

Original issue 4 reported by lobais 2006-08-06

PyChess might know a library of openings, that it can use to analyze the game.

Variable names

Original issue 48 reported by thijsvermeir 2006-10-08

I'm looking at the code and am a little confused about some variable names.
In the new dialog all combobox's are names combobox*, I changed some names
to a more logic name, No funcionality is lost/added.

Theme system

Original issue 5 reported by lobais 2006-08-12

It might be cool to have a theme system, with different pieces.

Enter one-line summary

Original issue 49 reported by thijsvermeir 2006-10-09

What steps will reproduce the problem?

  1. Start a game
  2. Play a few moves ...
  3. Start a new game

What is the expected output? What do you see instead?
L Found 2 moves in 0.351 seconds
L Found 20 moves in 0.126 seconds
Unhandled exception in thread started by <bound method Game._run of <Game
object (Game+Game) at 0xb6fb4b1c>>
Traceback (most recent call last):
File "/home/thijs/cvs/pychess/Game.py", line 71, in _run
if not self.history.add(move,True):
File "/home/thijs/cvs/pychess/Utils/History.py", line 117, in add
if p.sign == "k":
AttributeError: 'NoneType' object has no attribute 'sign'
L Found 20 moves in 0.471 seconds
E CrR: Illegal move: e2e4
D Ora(Gn)R: 6. ... d1b3
D Ora(Gn)R: My move is: d1b3
D Ora(Gn)W: show score
D Ora(Gn)W: flush
D Ora(Gn)W: manual
D Ora(Gn) waiting for: 'Phase'
D Ora(Gn)R: Illegal move: flush
D Ora(Gn)R: White: Mat:3600/4400 P:40 N:85 B:90 R:37 Q:59 K:-14
Dev:-56 h:0 x:0
D Ora(Gn)R: Black: Mat:3600/4400 P:44 N:48 B:80 R:27 Q:59 K:-44
Dev:-24 h:0 x:0
D Ora(Gn)R: Phase: 1 score = -51
D Ora(Gn)W: undo
D Ora(Gn)W: undo

Please use labels and text to provide additional information.

Better program name than pychess

Original issue 40 reported by wouterstomp 2006-09-13

It would be cool to have a better name than pychess. How about
"Fianchetto"? (the only chess term I could find that actually sounds quite
good and doesn't seem to be taken yet, but any other name would be nice as
well)

Engine processes aren't daemons

Original issue 47 reported by lobais 2006-09-21

If Pychess crashes, or is killed, the engines continue to run.
For threading.Thread's this could be prevented by having the subthreads
being daemonthreads, that only can exist when the mainthread is running. I
just don't see any way to do the same for Popen's?

Turnament support

Original issue 16 reported by lobais 2006-08-25

Shold be able to start a tournament, with many players and all what there
to belongs as game switching and score tables.

Theme idea: Cardgame

Original issue 39 reported by lobais 2006-09-10

A chessteam with cards would be sweet :D
King = King
Queen = Queen
Rook = 10
Bishop = Joker
Knight = Knight
Pawn = As.

Split Board in Viewer and Controller

Original issue 43 reported by lobais 2006-09-15

The CairoBoard class will need to be splitted into two classes:
One extending gtk.DrawingArea, and one extending gtk.EventBox.
The main board should hold both (first one in the second), but other where,
e.g. the analyze sidepanel, might only need the first one.

milisecond support in chessclock

Original issue 22 reported by lobais 2006-08-31

Could be made by saving a timestamp every one second..
Could also be made by updating very often, but not always calling repaint.
Should probably be both.

Bug in ToggleComboBox

Original issue 44 reported by lobais 2006-09-19

What steps will reproduce the problem?

  1. Press anywhere on the window (except the togglecombobox)
  2. Drag unto the togglecombobox
  3. Release the mousebutton
  4. Press the tooglecombobox, and drag unto some other widget again
  5. release the mousebutton

What do you see instead?

Next time you hover the tooglecombobox it is pressed :S

Remove gconf dependency

Original issue 46 reported by stonecrest 2006-09-20

Any chance of removing the dependency on gconf? You could just use the
ConfigParser module instead. That would make pychess more attractive to
non-GNOME users.

Thanks.

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.