Website founded by
Milan Velimirović
in 2006

5:52 CET



Remember me

Forgot your
Click here!
to create your account if you don't already have one.

Rating lists


MatPlus.Net Forum General How to draw fairy pieces
You can only view this page!
(1) Posted by Administrator [Tuesday, Aug 29, 2006 05:17]

How to draw fairy pieces

An attempt was made to make an easy-to-remember method.
A piece code consists of an optional neutral poece prefix (!), piece symbol and optional rotation determination sufix (niether present, nor allowed for upright, i.e. orthodox pieces).

It is assumed that rotation goes counterclockwise, and the angles are:
For sufixes 1-3: sufix*90 degrees
For sufixes 4-7: (sufix-4)*90 + 45 degrees
Or: 1=90, 2=180, 3=270, 4=45, 5=135, 6=225, 7=315 degrees
However, at the moment there are no images for rotations 4-7.

If code consists of 2 or more characters, it MUST be parenthesized in Forsyth or Algebraic diagram definition, while for inline notation it is allowed but not required.

Examples (inline), code is surrounded by pairs of brackets:

[[=Q2]] = White Grasshoper
[[=q2]] = Black Grasshoper
[[=!Q2]] = Neutral Grasshoper (letter may be upper- or lowercase)

[[=S1]] = White Zebra (usually)

The code pieces which are represented by images different from rotated chess pieces contains an minus sign (-) in front of the symbol. As I do not know exactly what pieces most of these images represent, I decided to name (some of) them as follows:
(-E) , (-e), , (!-e) = Equihopper, everybody knows it!
(-E1) , (-e1), , (!-e1) = Equihopper rotated 90 degrees (why?)
(-S) , (-s), , (!-s) = 'star' (no image for neutral!)
(-O) , (-o), , (!-o) = 'circle' (Orphan?)
(-F) , (-f), , (!-f) = 'flake' (no image for neutral!)

The complete set of images is not available yet, but meanwhile fairy experts are invited to help me...
Post Scriptum: meanwhile all images became available!

Finally, sample diagram (randomly chosen):

Juraj Lorinc
Sp. Pr Uralsky Problemist 2001
(= 6+14 )

h#2 2111
= Lion
= R-Lion
= B-Lion
= Nightrider

Diagram is entered as:

Not simply at all. Perhaps the agreement about the symbols for most popular symbols (e.g. Grasshopper, Nightrider...) should be made, at least when members of MatPlus.Net are concerned.

Another improvement (which I plan to do) is to allow one-time aliases in position code, for instance at the beginning of the definition (or better/worse? on first occurence of the fairy piece) something like "L=(Q1)" may declare that all subsequent occurences of "L" or "l" should be treated as (Q1) or (q1) respective until the end of the definition. Of course, it does not help at all if there is only one Lion on the board. But...

The improvement of above improvement (which I also intend to implement) is to give the user the opportunity to save the aliases in his/her profile and reuse them when needed without the declaration.

I would like to hear other opinions before I take any action in that direction.

(Read Only)pid=3
(2) Posted by Harry Fougiaxis [Saturday, Sep 9, 2006 15:45]; edited by Harry Fougiaxis [06-09-09]

Could you please, Milan, provide a link to the javascript of the diagram creation? I would like to test some examples off-line. Thanks!
(Read Only)pid=24
(3) Posted by Milan Velimirović (+) [Saturday, Sep 9, 2006 16:06]

The functions for diagram creation are very primitive at the moment, and will be changed (enhanced) soon. The one used at the moment depends of image filenames and is not very flexible.

If you really want to test it, download this file:

It contains the script newdiag.js, as well as over 360 PNG images. You have to write the HTML document that uses the script. In script file you also have to to set the global variable g_imgpath to correct relative path (or to empty string if script and images reside in the same directory).
(Read Only)pid=25
(4) Posted by Harry Fougiaxis [Sunday, Sep 10, 2006 09:44]

There is a dot inside the Forsyth string of the example, how does this work?
(Read Only)pid=28
(5) Posted by Administrator [Sunday, Sep 10, 2006 17:38]

A dot means: next row

Same applies to huphen or dash (-), comma (,) and slash (/)

Another useful interpunction is a semicolumn (;) meaning: go down

Example: [[Frs;p;p;ps]]
(= 0+6 )

In algebraic notation it is also possible to save some typing, for instance for position above:
[[A-Ra8 Sb8 c5 Pb5 6 7]] (dash after "A" switches to black pieces)(= 0+6 )

(Read Only)pid=36

No more posts

MatPlus.Net Forum General How to draw fairy pieces