Chess: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Formatting fixes)
(Add more chess activities)
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Games]]

This is what I was able to discover about chess on the OLPC. I just got it a couple of days ago, so I probably missed a lot.
This is what I was able to discover about chess on the OLPC. I just got it a couple of days ago, so I probably missed a lot.
:Yup. I added the [[Activities]] that you can install using [[xo-get]].

==Sugarized Chess==

There are three chess Activities that you can install using xo-get.

* [[chessTutorial]] Learn chess.
* [[chessPartyend]] Play chess against a friend.
* [[chessComputer]] Play chess against the computer.


== [[Etoys]]==
== [[Etoys]]==
Line 14: Line 25:
=== Installing ===
=== Installing ===
Open the terminal
Open the terminal
su -l
su -l
yum install xboard
yum install xboard
wget -P/usr/bin http://freechess.org/Download/timeseal_x86
(The first time I ran it, xboard itself failed, but the dependencies succeeded. I re-ran it, and it got xboard. Was this just a blip, or do other people have to do this too?)
chmod +x /usr/bin/timeseal_x86
exit (don't spend any longer than you have to as root)
exit


(The first time I installed xboard it, xboard itself failed, but the dependencies succeeded. I re-ran it, and it got xboard. Was this just a blip, or do other people have to do this too?)


=== Notes ===
=== Notes ===
xboard tries by default to use the Helvetica font, which is not installed on the OLPC. So we need to override the font.
*xboard tries by default to use the Helvetica font, which is not installed on the OLPC. So we need to override the font.
*when playing on fics, the timeseal makes it so that the time taken for your computer to talk to the server ("lag") doesn't count against your thinking time.



=== Playing ===
=== Playing ===
Line 30: Line 43:


To play against other people online, at [http://freechess.org FICS]:
To play against other people online, at [http://freechess.org FICS]:
xboard -font 6x13 -coordFont 6x13 -clockFont 6x13 -ics -icshost freechess.org
xboard -font 6x13 -coordFont 6x13 -clockFont cs -icshost 69.36.243.188 -icshelper timeseal_x86


You first need to go to their website and register for an account (It's free.)
You first need to go to their website and register for an account (It's free.)
Line 37: Line 50:


I'm DanTilkin on FICS, drop me a line if you're on there. I'd love to play you a game.
I'm DanTilkin on FICS, drop me a line if you're on there. I'd love to play you a game.

=== timeseal ===
With the base install of xboard, when playing on FICS, your clock starts when the server sends you your opponents move, and doesn't stop until it gets your move back. The transit time is charged against you. A program called timeseal will prevent this "lag" time from being charged to you. Unfortunately, it's not in yum. How do I install third-party software?


=== Shortcuts ===
=== Shortcuts ===
Add the following to the bottom of the file ~/.bashrc , the [[Nano]] and [[Vi]] editors are installed:
Add the following to the bottom of the file ~/.bashrc , the [[Nano]] and [[Vi]] editors are installed by default:


alias fics="xboard -font 6x13 -coordFont 6x13 -clockFont 6x13 -ics -icshost freechess.org"
alias fics="xboard -font 6x13 -coordFont 6x13 -clockFont cs -icshost 69.36.243.188 -icshelper timeseal_x86"
alias gnuchess="xboard -font 6x13 -coordFont 6x13 -clockFont 6x13"
alias gnuchess="xboard -font 6x13 -coordFont 6x13 -clockFont 6x13"


You can then just run "fics" to play on the server, or "gnuchess" to play the computer.
You can then just run "fics" to play on the server, or "gnuchess" to play the computer.

When xboard connects to a server, it runs the commands in the file "~/.icsrc". The first two lines should be your username and password, this will log you in automatically.


=== Two-player ===
=== Two-player ===
Line 53: Line 65:


With two computers, and internet access, you can both log on to FICS, and play each other using the "match" command.
With two computers, and internet access, you can both log on to FICS, and play each other using the "match" command.

== PyChess ==
I was able to get Pychess installed and run, although not without problems.
Pychess is less developed than xboard. It's also slower, which is a problem when playing blitz chess on a server. It does have a 2-player mode. It's also in python, and being actively developed, which probably make it a better candidate for OLPC development.

=== Installing ===
Read this whole section first. If it seems too complicated for you, it probably is. It's not your fault, it needs to be made easier.

*yum has version 0.6, but the current is 0.8 beta4, that's what I installed.
*This has a declared dependency on python version 2.4, but version 2.5 is installed, that's why the --nodeps argument to rpm is needed.


wget http://pychess.googlecode.com/files/pychess-0.8beta4.noarch.rpm
rpm --nodeps -i pychess-0.8beta4.noarch.rpm

run as "PYTHONPATH=/usr/lib/python2.4/site-packages pychess"

It needs icons in "usr/share/icons/gnome/" subdirectories, but it doesn't find them. Not sure how to tell it where they are.

I wound up editing code in /usr/lib/python2.4/site-packages/pychess/widgets/ to add calls to icons.append_search_path, this isn't the right answer, but it worked.

I added the following lines, right after the object is created.

<code>
[olpc@xo-10-C4-41 widgets]$ grep append_search_path *.py
Background.py:it.append_search_path("/usr/share/icons/gnome/48x48/stock/generic")
Background.py:it.append_search_path("/usr/share/icons/Echo/16x16/actions")
Background.py:it.append_search_path("/usr/share/icons/gnome/48x48/stock/generic")
gamewidget.py:icons.append_search_path("/usr/share/icons/gnome/16x16/stock/object")
gamewidget.py:icons.append_search_path("/usr/share/icons/gnome/16x16/actions")
newGameDialog.py:it.append_search_path("/usr/share/icons/gnome/24x24/stock/generic/")
newGameDialog.py:it.append_search_path("/usr/share/icons/gnome/16x16/status/")
ToggleComboBox.py: it.append_search_path("/usr/share/icons/gnome/16x16/stock/image")
</code>


=== To-do ===
=== To-do ===
Line 61: Line 107:
5. try other downloaded interfaces to fics.
5. try other downloaded interfaces to fics.
6. try java interface to fics.
6. try java interface to fics.

== Ceibal-Chess ==

Ceibal-Chess is a brand new Chess project that aims to produce a chess Activity for the Sugar and the XO.

Project features include:

* Free as in Freedom (GPLv2)
* Designed from the ground up to work on the XO.
* Distributed as an Activity Bundle (.xo)
* Completely developed in Python + PyGame.
* Integration with GNU Chess.
* Player vs Player mode (in one Laptop, using DBus planned).
* Valid movements highlighting.
* Enemy movements highlighting.
* Portable: known to work on various Linux distros and Mac OS X.
* Easy to learn and use, without complex menus or options.

The project is still in its early stages, with some known bugs open, but it's reaching an stage where heavy testing for bug-fixing would be extremely beneficial.

The source code is stored in google code, at: [http://code.google.com/p/ceibal-chess http://code.google.com/p/ceibal-chess]. Anonymous checkout using Subversion is enabled, and the code includes an script for automatically creating the Activity Bundle which can be used to deploy the Activity on XO laptops.

You can contact the project administrator at asegovi AT gmail DOT com. There is also a google group, called ceibal-chess.

=== Download ===
If you have Subversion installed, get the latest version by using the following command:
svn checkout http://ceibal-chess.googlecode.com/svn/trunk/ ceibal-chess

=== Running on Linux and Mac OS X ===
Just get the latest source code version using Subversion and run the main.py python script. There are several flags that control window size and whether the IA should be disabled (for playing among people or testing).

=== Installing on the XO ===
First get the latest source code version for Linux or Mac OS X, then run the createbundle.sh BASH script. The created .xo bundle will be stored in the bundle/ directory. Copy this file to the XO and open it using Firefox or running the sugar-bundle-install application from the Terminal Activity.

Once installed, restart Sugar by pressing Control + Alt + Erase. The Ceibal-Chess icon should appear among the other activities.

It is also possible to run Ceibal-Chess from the Terminal Activity in the same way that it's run on Linux, provided you first unset the SUGAR_BUNDLE_PATH environment variable.


== [[Activity]] ==
== [[Activity]] ==
I'd love to see a chess activity for the OLPC. I did a search, didn't find anything. For the extensibility side, give kids an easy way to program their own chess engines.
I'd love to see a chess activity for the OLPC. I did a search, didn't find anything. For the extensibility side, give kids an easy way to program their own chess engines.

Since [[Python]] is the preferred language, may want to investigate [[Pygame]] and [http://pychess.googlepages.com/home PyChess]


xboard and gnuchess are under the GPL, can possibly use those as a base.
xboard and gnuchess are under the GPL, can possibly use those as a base.

Latest revision as of 23:17, 24 November 2008


This is what I was able to discover about chess on the OLPC. I just got it a couple of days ago, so I probably missed a lot.

Yup. I added the Activities that you can install using xo-get.

Sugarized Chess

There are three chess Activities that you can install using xo-get.

Etoys

Launch Etoys, open a new project, drag out the "Object Catalog" from the treasure box in the menu, go to "Games" category and drag out "Chess".

Single-player against the computer, and a fairly weak opponent

on the web

Should be a bunch of places which will let you play on the web, both against a computer, and against other players. Need to find a couple and list them here.

xboard

xboard runs on linux, it has not been sugarized, so everything is from the Terminal

Installing

Open the terminal

su -l 
yum install xboard
wget -P/usr/bin http://freechess.org/Download/timeseal_x86
chmod +x /usr/bin/timeseal_x86
exit

(The first time I installed xboard it, xboard itself failed, but the dependencies succeeded. I re-ran it, and it got xboard. Was this just a blip, or do other people have to do this too?)

Notes

  • xboard tries by default to use the Helvetica font, which is not installed on the OLPC. So we need to override the font.
  • when playing on fics, the timeseal makes it so that the time taken for your computer to talk to the server ("lag") doesn't count against your thinking time.

Playing

To play a game of chess against the computer: xboard -font 6x13 -coordFont 6x13 -clockFont 6x13

To play against other people online, at FICS: xboard -font 6x13 -coordFont 6x13 -clockFont cs -icshost 69.36.243.188 -icshelper timeseal_x86

You first need to go to their website and register for an account (It's free.)

when playing on fics, the console is in your shell window, another window comes up with the board. This shows up as a gray circle on the home screen

I'm DanTilkin on FICS, drop me a line if you're on there. I'd love to play you a game.

Shortcuts

Add the following to the bottom of the file ~/.bashrc , the Nano and Vi editors are installed by default:

alias fics="xboard -font 6x13 -coordFont 6x13 -clockFont cs -icshost 69.36.243.188 -icshelper timeseal_x86" alias gnuchess="xboard -font 6x13 -coordFont 6x13 -clockFont 6x13"

You can then just run "fics" to play on the server, or "gnuchess" to play the computer.

When xboard connects to a server, it runs the commands in the file "~/.icsrc". The first two lines should be your username and password, this will log you in automatically.

Two-player

With one computer, run like you're going to play the computer, then switch to "Edit game" under the mode menu.

With two computers, and internet access, you can both log on to FICS, and play each other using the "match" command.

PyChess

I was able to get Pychess installed and run, although not without problems. Pychess is less developed than xboard. It's also slower, which is a problem when playing blitz chess on a server. It does have a 2-player mode. It's also in python, and being actively developed, which probably make it a better candidate for OLPC development.

Installing

Read this whole section first. If it seems too complicated for you, it probably is. It's not your fault, it needs to be made easier.

  • yum has version 0.6, but the current is 0.8 beta4, that's what I installed.
  • This has a declared dependency on python version 2.4, but version 2.5 is installed, that's why the --nodeps argument to rpm is needed.


wget http://pychess.googlecode.com/files/pychess-0.8beta4.noarch.rpm
rpm --nodeps -i pychess-0.8beta4.noarch.rpm

run as "PYTHONPATH=/usr/lib/python2.4/site-packages pychess"

It needs icons in "usr/share/icons/gnome/" subdirectories, but it doesn't find them. Not sure how to tell it where they are.

I wound up editing code in /usr/lib/python2.4/site-packages/pychess/widgets/ to add calls to icons.append_search_path, this isn't the right answer, but it worked.

I added the following lines, right after the object is created.

[olpc@xo-10-C4-41 widgets]$ grep append_search_path *.py Background.py:it.append_search_path("/usr/share/icons/gnome/48x48/stock/generic") Background.py:it.append_search_path("/usr/share/icons/Echo/16x16/actions") Background.py:it.append_search_path("/usr/share/icons/gnome/48x48/stock/generic") gamewidget.py:icons.append_search_path("/usr/share/icons/gnome/16x16/stock/object") gamewidget.py:icons.append_search_path("/usr/share/icons/gnome/16x16/actions") newGameDialog.py:it.append_search_path("/usr/share/icons/gnome/24x24/stock/generic/") newGameDialog.py:it.append_search_path("/usr/share/icons/gnome/16x16/status/") ToggleComboBox.py: it.append_search_path("/usr/share/icons/gnome/16x16/stock/image")

To-do

1. Install a bigger, easier to read font for use with xboard. (How?) 2. put font choices in .Xdefaults, rather than an alias. 3. install timeseal 4. Want to see the console and the board at the same time. 5. try other downloaded interfaces to fics. 6. try java interface to fics.

Ceibal-Chess

Ceibal-Chess is a brand new Chess project that aims to produce a chess Activity for the Sugar and the XO.

Project features include:

  • Free as in Freedom (GPLv2)
  • Designed from the ground up to work on the XO.
  • Distributed as an Activity Bundle (.xo)
  • Completely developed in Python + PyGame.
  • Integration with GNU Chess.
  • Player vs Player mode (in one Laptop, using DBus planned).
  • Valid movements highlighting.
  • Enemy movements highlighting.
  • Portable: known to work on various Linux distros and Mac OS X.
  • Easy to learn and use, without complex menus or options.

The project is still in its early stages, with some known bugs open, but it's reaching an stage where heavy testing for bug-fixing would be extremely beneficial.

The source code is stored in google code, at: http://code.google.com/p/ceibal-chess. Anonymous checkout using Subversion is enabled, and the code includes an script for automatically creating the Activity Bundle which can be used to deploy the Activity on XO laptops.

You can contact the project administrator at asegovi AT gmail DOT com. There is also a google group, called ceibal-chess.

Download

If you have Subversion installed, get the latest version by using the following command:

 svn checkout http://ceibal-chess.googlecode.com/svn/trunk/ ceibal-chess

Running on Linux and Mac OS X

Just get the latest source code version using Subversion and run the main.py python script. There are several flags that control window size and whether the IA should be disabled (for playing among people or testing).

Installing on the XO

First get the latest source code version for Linux or Mac OS X, then run the createbundle.sh BASH script. The created .xo bundle will be stored in the bundle/ directory. Copy this file to the XO and open it using Firefox or running the sugar-bundle-install application from the Terminal Activity.

Once installed, restart Sugar by pressing Control + Alt + Erase. The Ceibal-Chess icon should appear among the other activities.

It is also possible to run Ceibal-Chess from the Terminal Activity in the same way that it's run on Linux, provided you first unset the SUGAR_BUNDLE_PATH environment variable.

Activity

I'd love to see a chess activity for the OLPC. I did a search, didn't find anything. For the extensibility side, give kids an easy way to program their own chess engines.

Since Python is the preferred language, may want to investigate Pygame and PyChess

xboard and gnuchess are under the GPL, can possibly use those as a base.