# The Knights Handbook

## Introduction

Chess is a game of strategy with a long history and many variations, and Knights aims to be the ultimate chess resource on your computer. Knights provides a virtual chess board and pieces which you can use to play against a variety of opponents. Currently, those opponents include yourself ( Solitaire chess is a wonderful way to improve your skill at the game ), computer opponents ( sometimes called chess engines ) which you have installed on your computer, and people connected to an internet chess server. In the future, you will also be able to play against a friend using email.

If you like to review chess matches which other people have played, Knights can help. Using Portable Game Notation ( PGN ), Knights can exchange recorded chess matches with most other computer chess programs. You can also record your own matches with Knights, and share them with anyone.

Future versions of Knights will include comprehensive chess education in the form of interactive tutorials. These tutorials will help new players grasp the basics, and help them evolve into advanced players.

## Getting Started

The following sections will help you become familiar with Knights quickly.

### The Chessboard

If you've ever played chess before, then Knights' chessboard should be easy to understand. It always displays one player at the top of the screen and the other at the bottom. By default, your pieces always start at the bottom while your opponent's start at the top.

Directly below the board are two clocks. The left clock has a white background and always shows the time for the white player. The right clock is always black and shows the time for the black player.

#### Making a Move

To move a chessman, simply click the left mouse button while your pointer is over the chessman you wish to move. If it's your turn to move, the chessman will become highlighted. This lets you know that Knights is ready to move that chessman for you. Now, move your pointer to the position where you want your chessman to move to. Click the left mouse button. You've just moved your chessman!

You can also move your chessman using "Drag and Drop". Hold down the left mouse button over the chessman you wish to move and, while still holding down the mouse button, move your chessman to it's new position and release the button.

#### Using Preview

The Preview feature shows you where each chessman can move on a given turn. To use this feature, move your pointer so that it is over the chessman you wish to examine. Now, click the right mouse button. Any position which that chessman can move to will be highlighted. Moves which will result in a chessman being captured are colored differently.

If the chessman you are examining is yours, and it is your turn, you may go head and move him by left clicking on the desired square.

You can tell Knights to automatically preview possible moves every time you left click on a chessman. See the Display Settings chapter to find out how.

#### SAN Notation

You will notice that in the lower-right corner, there is a button which displays the last move using Standard Algebraic Notation ( SAN ). Clicking this button will display all the moves in this match. You can review a previous position by selecting it from this list. Another way to move through this list is to use the Up and Down arrow keys on your keyboard. This will step through each move one at a time.

You can not make your next move while you are reviewing the match. You must return to the most recent entry in the list before you can make your move. If someone else makes a move while you are reviewing a previous position, Knights will automatically return you to the current position.

### Starting a New Match

To start a new match, click on the File menu, then select New Match....

#### The New Match Window

The New Match Window lets you change the type of chess match you'd like to play.

Online games can not be started from here. If you'd like to play chess online, please see the section of this document titled Using Knights Online.

Clicking Human will tell Knights that you want to control this color yourself.

The Computer option, if available, will tell Knights that a Computer Opponent ( also known as a Chess Engine ) should control this color. Another window will pop up with a list of opponents that you have installed. After selecting an opponent, you should use the Player Strength slider to customize your opponent's skill level. Due to the fact that each computer opponent is unique, some which are set to Weak may actually be better than opponents set to Strong. Also note that some may completely ignore your preference and play that same no matter what skill level you select.

The Email option is not yet supported by Knights.

Once you've selected the players, you'll want to select the time controls for this match. Base Time is the number of minutes that this player has at the beginning of the match. After you make a number of moves, you'll receive extra time on your clock. Moves Per Base Time controls the number of moves needed to receive that extra time. Increment Per Move is yet another time bonus that you receive after every move.

## Using Knights Online

Knights can connect you with thousands of other chess players around the globe. You can play games, observe others playing, attend live classes, or just relax and chat.

Although Knights tries to make it easy to use a chess server, there are many commands and functions for each server that are beyond the scope of this document. You should check with the chess server you intend to use for a full description of these.

### Getting Started

If you used the Setup Wizard when you first installed Knights, then Knights will connect to the Free Internet Chess Server by default. If you did not use the Setup Wizard, or you'd prefer to connect to another chess server, you'll need to change Knights' settings. See the section of this document titled Chess Servers for instructions on doing this.

Your computer will need to be connected to the Internet before you attempt to connect to a chess server. Knights will display an error message if it can not access the Internet.

Some chess servers will require you to have a membership, which sometimes includes paying a membership fee. You will need to visit the website of your chosen chess server to sign up for membership.

If you are not interested in obtaining a membership, but you still want to play chess online, some chess servers will allow you to play as a free guest without signing up for anything. This is strongly suggested for those who have never played chess online before.

#### Connecting to a Server

To connect to a chess server, click on File, and then select Connect to Server.

A new window will pop up asking for your Login and Password. You should have recieved these when you signed up for membership with this chess server. If you do not have a membership yet, click on the Log in as guest option.

### Online Tools

Once Knights has established a connection with your chosen chess server, several new tools will be displayed to help you make the most of your time online.

#### The Console

The Console is your primary communications tool while you're online. All of the messages that are sent to you are displayed here.

Messages can be colored differently depending on the type of message. For example, a message from a chat channel may be displayed in blue, while message sent specifically to you may be in green. These colors ( and fonts ) may be customized by going to Settings Configure Knights.... Then click on Display, and then the Console tab.

This is also where you send your messages out. Just start typing on your keyboard to write a message, and press Enter to send it. Knights will remember the last 100 messages you sent out, which you can access by pressing SHIFT + UP and SHIFT + DOWN.

There are several shortcuts available for the most commonly used server commands. To see a list of these, your should read the section of this document titled Command Reference.

#### The Sought Games List

Ok, you've connected to a chess server. Now how do you play chess on it?

The Sought Games List will help. Right click on it, and select Seek Matches. A list of other players, who are also interested in playing a game of chess, will appear. When you find one you like, simply left click on it to start playing.

As you'll notice, there are a number of actions you can take when you right click on a match. They are:

- Tell... will begin a private message between you and the player offering this match. Simply select this and type your message.

- Assess will display a graph that shows you how your rating will be effected if you play a match against this opponent.

- Player Info, otherwise known as "Finger", will display a wealth of information about this player. This information can include how long the player has been online, his rating for different types of chess matches, win/loss statistics, etc.

- Player History shows the results of the last 14 or so games played by this opponent. There are columns in the history display for the players and their ratings (as adjusted by the result of the match), the winner, the type of match (blitz/standard, rated/unrated) and the date.

- Add to Friends tells your ICS that you want to be notified whenever this player logs on and off the server. In the future, Knights will display your friends list so you can easily send them messages, observe their matches, and more.

- Ignore This Player keeps you from hearing anything this player says, including private messages.

#### The Sought Games Graph

The Sought Games Graph performs the same function as the Sought Games List, but with one difference: Instead of displaying a list of players, it displays a graph.

Usually, when you're interested in playing a chess match, you already know how long you want the match to be, and you already know that you want to play against an opponent of a particular skill level. The graph is very useful for this, because it organizes the available games based on it's length, and on your opponent's strength.

Stronger opponents are listed at the top of the graph, while weaker opponents are listed at the bottom. Shorter games are listed at the left, while longer games are listed at the right. Rated games are displayed using a solid square, while unrated games use a hollow square.

Right clicking on a match will display the same menu used in the Sought Games List. That menu includes:

- Tell... will begin a private message between you and the player offering this match. Simply select this and type your message.

- Assess will display a graph that shows you how your rating will be effected if you play a match against this opponent.

- Player Info, otherwise known as "Finger", will display a wealth of information about this player. This information can include how long the player has been online, his rating for different types of chess matches, win/loss statistics, etc.

- Player History shows the results of the last 14 or so games played by this opponent. There are columns in the history display for the players and their ratings (as adjusted by the result of the match), the winner, the type of match (blitz/standard, rated/unrated) and the date.

- Add to Friends tells your ICS that you want to be notified whenever this player logs on and off the server. In the future, Knights will display your friends list so you can easily send them messages, observe their matches, and more.

- Ignore This Player keeps you from hearing anything this player says, including private messages.

## Organizing Your Tabs

Knights often must display more than just the chessboard. For example, when you play chess online, Knights must open up a new window containing several new tools. These tools are stacked on top of each other using tabs to help keep your desktop from getting too cluttered, but what if you want to see more than one of these tools at a time?

At the top of each tab, you'll find a Grip widget. It looks like three horizontal lines, and when you move your pointer over it, the pointer will change into four arrows. When this happens, you can click and drag that tab to a different position on the screen. If you drag it to another tab, then they will merge together into the same window. If you do not drag it onto another tab, it will create it's own window at the new location.

To the right of the Grip is a Close button. Clicking on this button will close out this Tab. If this was the only Tab in it's window, then the window will be closed as well.

Whenever a tab is closed, Knights will remember the size of that tab.

## Settings

One of our primary goals is to make Knights easy to setup and customize. When you need to customize Knights, select Settings Configure Knights.... A new window will be displayed. The following sections describe the various options available from this new window.

### General

Your Name is the name Knights records on saved games for you.

When Knights Begins It Should: This allows you to customize Knights' behavior when you run the program.

Save Match on Close? When you close a chess match, Knights can automatically save it for you. If this match doesn't yet have a file name, you will be prompted for one.

The Append to Save File option tells Knights that you wish to save all your games to a single pgn file. This is useful for players who wish to analyze their matches later in a chess database program like SCID.

Pause on Minimize This will cause Knights to pause all your matches when you minimize the Knights window.

Some types of matches ( like matches on ICS ) can not be paused in this way.

Always Promote to Queen When checked, any of your pawns that get promoted will automatically become a queen. Otherwise Knights will prompt you each time a pawn is promoted.

Call Flag Automatically This option will automatically declare you the winner of the match if your opponent's clock runs out of time.

Delete Log Files on Exit If set, chess engine log files will be deleted on exit. Only files named "game.###" and "log.###" placed in the user home folder will be removed

### Display

#### General

Use the Install New Themes button to install themes that you've downloaded.

Use the Board Themes and Chessman Themes buttons to select the look of your board. Knights only includes one board theme and one chessman theme, but others are available for download.Click here to download the Knights Themepack.

Theme Size can be adjusted to make the board larger or smaller.

Using the Reverse Board Orientation option is like turning the chessboard 180 degrees. Normally, the board is displayed with your army on the bottom and your opponent's army on top. Checking this option puts your army on the top and your opponent's army on the bottom.

Display Startup Logo toggles the welcome screen.

Automatic Preview will enable the Preview feature for the left mouse button.

Show Last Move will highlight the chessman that moved on the previous turn.

Show Coordinates will draw the Rank and File coordinates on the board.

#### Console

The Font buttons allow you to alter the font for each different kind of text displayed on the console. The Color buttons beside them let you change the color which that font will be displayed in. The seventh extra Color button changes the background color.

Restore Defaults will disregard any changes you've made to the font and color options, returning them to their original state.

### Audio

Knights uses sounds to keep you informed of important events both on and off the board. For example, Knights can play a sound when a chessman is moved, or play another sound when someone sends you a private message online. This section describes the different options you have when it comes to Knights' sounds.

The enable Audio checkbox is like the power button on your stereo. Uncheck this, and all of Knights' sounds are turned off.

Audio Themes allows you to choose between different audio themes, which are similar to the graphical themes. Knights only includes one sound theme, but others may be available for download from the internet.

The Volume slider allows you to adjust how loudly Knights will play it's sounds.

This is independent of the volume controls in your mixer and on your speakers. In other words, if the volume in Knights is at maximum, but your mixer's volume is at minimum, then you will not be able to hear Knights' sounds.

For Current Match Only is a checkbox that allows you to turn off all sounds from chess matches that you are not actively watching. So if you have a match vs. GNUChess running, but you're looking at your match vs. Crafty, only the Crafty match will make sounds. When you click on the GNUChess match again, then it will make sounds again and the Crafty match will fall silent.

### Computer Opponents

Here you'll be able to configure Knights to use various "Chess Engines", which are computer opponents you can play chess against. These engines are separate programs that do not come with Knights. To use them, you must first download a chess engine. Tim Mann's Chess Engines page has a great list of available engines for you to download. Knights should work with all of these. See the README and INSTALL instructions that come with each engine to install it.

Once you have a chess engine installed, click the Add... button on the right hand side of the window. A new window will be displayed.

The only things that you MUST enter to use the engine are the Protocol and the Engine Filename.

Engine Name is what Knights will call this engine when you select it as an opponent, or if there is an error. This is set for you if you leave it blank.

Protocol is a list of "languages" that computer opponents can speak. Knights acts like a translator by taking what the engine says and converting it into a move on the virtual chessboard. It is important to have the correct protocol or else the engine won't be able to play.

For most engines, you should select XBoard as the protocol. The Knights protocol is reserved for future engines to use.

Engine Filename should contain the actual location of the engine on your filesystem. Include the full path, unless the engine is in the search path. If you don't want to type this in, you can browse your filesystem with the folder icon on the right. Simply find the engine, left click on it, and left click Open.

Command Line Arguments is where you should add any special options for this engine. See the engine's documentation for a list of options and their useage.

Log File is a special text document which records the "conversation" between Knights and the engine. This is very useful for engine developers and for users who are having trouble getting Knights to work with a particular engine. Most users can leave this blank.

Click OK and Knights is now ready to use this engine!

You'll notice options which enable "Book Engines". Book engines are a kind of helper for the computer opponent. These types of engines are new and experimental. Therefore, you should not enable these unless you are a chess engine developer or unless you're sure that the engine supports "Bookengine" mode ( XBoard version 3 and Knights protocols ).

### Chess Servers

This section is where you'll configure all your options related to Internet Chess Servers.

#### Servers

If you'd like to configure Knights to use a new Chess Server, click the "Add..." button on the right hand side of the window. A new window will be displayed.

This window is used to tell Knights how it can connect to our chess server. Server Name is a descriptive title for the server. You can enter anything you want here. "My Chess Server", "FICS", etc.

Server URL is the address of the server.

Server Port tells Knights which port to communicate with the server on. If this is left blank, Knights will try to guess the port number.

Username and Password will store your login information. If you do not wish for Knights to remember your login information, just leave these blank and you will be prompted each time you connect.

A Timeseal is a program that helps to reduce the effect of Internet lag on your clock. It can be quite unpleasant to lose a match because your Internet connection is slow. If you have a Timeseal program that you'd like to use, enter the full path and filename for it here.

Log File can be used to keep a record of your session online. Be warned though: Knights does not maintain the size of your logfiles.

When all is done you can click OK to add this chess server to the list of those Knights will connect with.

#### Options

The Profanity Filter can be used to garble undesirable words. It has six levels of filtration.

Automatically Close Previous ICS Match does was it says. If you just played a match and you're starting a new one, Knights will go ahead and close the last one for you.

Private Matches will tell your ICS that you don't want your match to be observable.

The enable Premove option allows you to move your next chessman while it's still your opponent's turn. Knights will remember your selection and move the piece for you as soon as it's your turn again.

The enable Kibitzes option will display Kibitz message on the console if enabled.

enable Unregistered Tells will allow you to hear messages from unregistered users.

enable Shouts will allow you to hear shouts.

The enable Seeks option will display Sought Match messages.

Seconds Between Seek Updates This tells Knights how often you want it to refresh it's Sought Games List. Valid numbers range between 3 seconds to 2 minutes ( 120 seconds ).

## Command Reference

- UP - Pressing up will step backwards through the move list and show you the previous position.

- DOWN - Pressing down will step forward through the move list and show you the next board position.

- ENTER - Pressing Enter will always bring up the Console cursor so you can enter text. Pressing Enter again will remove it and send anything you typed in between.

- PAGE UP and PAGE DOWN - Pressing these keys will scroll the Console up and down.

- SHIFT + UP and SHIFT + DOWN - These will scroll through the history of what you've typed previously. Very handy for repeating commands.

- ALT + C - This will begin a reply to the last channel who sent you a tell.

- ALT + K - This will begin a kibitz, which can be heard by everyone observing a match, including the players.

- ALT + R - This will begin a reply to the last person who sent you a private tell.

- ALT + W - This will begin a whisper, which can be heard by everyone observing the current match, but not by the players of that match.

## Credits and License

Knights

Program copyright 2001, 2002 Troy Corbin Jr. tcorbin@users.sf.net

Documentation copyright 2001, 2002 Troy Corbin Jr. tcorbin@users.sf.net

&underFDL; &underGPL;

## Installation

### How to obtain Knights

The Knights Project is holded at http://trinitydesktop.org. It will usually contain the most up-to-date information on Knights available.

A developer area is available at TDE Gitea Workspace (TGW). A translator area is available at TDE Weblate Translation Workspace (TWTW).

### Requirements

Before you can install Knights, you must have the Trinity Desktop Environment installed on your system. Knights also requires that you have cmake (version >= 2.8) as building tool.

### Compilation and Installation

Knights uses cmake to ensure that compiling is easy. Please read the INSTALL file for the basics and the suggested default options.

## Command Line Options

Knights is a graphical chess interface and tries to make full use of it. Most every option you'd ever want should be available from Knights' Settings menu and Configure window. However, there are rare cases where a command line option is an absolute must. Here are descriptions for those options.

    % knights -d path

The use of this command line option is depreciated. If Knights displays garbage rather than a chessboard, then you did not set the TDEDIR environment variable correctly before compiling Knights. Please see the Installation instructions for the proper compiling procedures.

    % knights filename

By appending a filename to the command line, you can start Knights with a chess match already loaded for you.

## Knights Markup Language

The Knights Markup Language is a variation on HTML with the specific purpose of formatting and displaying PGN data. The formatting is actually done using TQt's default rich-text commands. Since these are already explained at length in TQt's documentation, they will not be covered here.

This appendix lists the macros used within KML to represent PGN data. These macros are case-sensitive.

`%whiteimage%` - This will be replaced with an image showing the white player's picture, or a generic image if Knights can't find it.

`%blackimage%` - This will be replaced with an image showing the black player's picture, or a generic image if Knights can't find it.

`%moves%` - This represents the move data. Recursive annotations appear in italics, while comments appear in bold type.

`%site%` - Represents the PGN tag: Site.

`%date%` - Represents the PGN tag: Date.

`%round%` - Represents the PGN tag: Round.

`%result%` - Represents the PGN tag: Result.

`%white%` - Represents the PGN tag: White.

`%whitetitle%` - Represents the PGN tag: White Title.

`%whiteelo%` - Represents the PGN tag: White ELO.

`%whiteuscf%` - Represents the PGN tag: White USCF.

`%whitena%` - Represents the PGN tag: White NA.

`%whitetype%` - Represents the PGN tag: White Type.

`%black%` - Represents the PGN tag: Black.

`%blacktitle%` - Represents the PGN tag: Black Title.

`%blackelo%` - Represents the PGN tag: Black ELO.

`%blackuscf%` - Represents the PGN tag: Black USCF.

`%blackna%` - Represents the PGN tag: Black NA.

`%blacktype%` - Represents the PGN tag: Black Type.

`%time%` - Represents the PGN tag: Time.

`%utctime%` - Represents the PGN tag: UTC Time.

`%utcdate%` - Represents the PGN tag: UTC Date.

`%event%` - Represents the PGN tag: Event.

`%eventdate%` - Represents the PGN tag: Event Date.

`%eventsponsor%` - Represents the PGN tag: Event Sponsor.

`%section%` - Represents the PGN tag: Section.

`%stage%` - Represents the PGN tag: Stage.

`%board%` - Represents the PGN tag: Board.

`%opening%` - Represents the PGN tag: Opening.

`%variation%` - Represents the PGN tag: Variation.

`%subvariation%` - Represents the PGN tag: Subvariation.

`%eco%` - Represents the PGN tag: ECO.

`%nic%` - Represents the PGN tag: NIC.

`%timecontrol%` - Represents the PGN tag: Time Control.

`%termination%` - Represents the PGN tag: Termination.

`%setup%` - Represents the PGN tag: Setup.

`%fen%` - Represents the PGN tag: FEN.

`%annotator%` - Represents the PGN tag: Annotator.

`%mode%` - Represents the PGN tag: Mode.

`%plycount%` - Represents the PGN tag: Plycount.