Kropki (GM[40]), format of RU (=rules) field, PROPOSAL

October 8, 2010: Revised version, after a talk with Vasya. Old version here.

I suggest that we use the following format for RU[simpletext]:

RU[Tag1=value1,Tag2=value2,...]

For simplicity of parsing, tags should contain only letters, and values are always nonnegative integers. No spaces, and also no spaces around the = sign in tag=value. Also use the right case, e.g. 'FirstTag'. There are no default values! So always all possible tags should be listed!

Tags for the RU property (suggestions)

General remarks:
Tag:  Punish
Value:	0 or 1
Meaning:	Specifies if there is a punish for surrounding
		own dots (0=no, 1=yes)
Notes:	This option is present on szkrab.net.pl, but almost nobody uses it.

Tag:  Holes
Value:	0 or 1
Meaning:	Specifies if holes between enclosures are allowed (0=no, 1=yes)
Notes:	On szkrab.net.pl it is always Holes=0.

Tag:	AddTurn
Value:	0 or 1
Meaning:	Specifies if there is an additional move after
		surrounding some enemy dots (0=no, 1=yes)
Notes:	This option is present on vkontakte.ru

Tag:	MustSurr
Value:	0 or 1
Meaning:	Specifies if the surroundings (enclosures) are obligatory (0=no, 1=yes)
Notes:	1. This option is typical for the Russian rules.
	2. When MinArea=1, then
	surroundings may be made automatically.

Tag:	MinArea
Value:	0 or 1
Meaning:	Specifies if the surroundings (enclosures) should always have
	minimal area (0=no, 1=yes), taking the value
	of Holes tag into account.
Notes:	1. This option is typical for the Russian rules.
	2. When this option is on, then there is no need to save
	enclosure information in move properties, and it is ok both to save
	this information or not in this case (for example, eidokropki.reaktywni.pl
	saves it, and VPoints does not).

Tag:	Pass
Value:	0 or 1
Meaning:	Specifies if pass is allowed (0=no, 1=yes).
Notes:	When one player passes and then the other also passes,
	then the game ends.

Tag:	Stop
Value:	0 or 1
Meaning:	Specifies if STOP move is allowed (0=no, 1=yes).
Notes:	Stop is typical for Russian rules: it has a meaning of
'I pass in this move and all subsequent moves'. So it is not possible to answer next moves
of the opponent. Thus typically STOP is used when all player's dots are safe.
After STOP, all unsafe dots of the player who STOPped may be captured by the opponent, and this
may be done automatically.

Tag:	LastSafe
Value:	0 or 1
Meaning:	Specifies if the last dot placed on the board is safe
	(0=no, 1=yes). If no, this means that the opponent may capture
	the last dot, although she cannot place any dot due to lack of
	free space.
Notes:	1. This rule is present on szkrab.net.pl
	(it is always on, cannot be turned off), but maybe this would
	change to always off someday...
	2. This rule only affects scoring, and always at most by 1 point.
	3. Turning this on has strange sideeffects to the result of the game,
	see http://www.kropki.legion.pl/obliczanie-wyniku-t421.html.
	4. This option has no practical importance when Pass
	is allowed (then simply the last player may decide to not to
	play the last dot).

Tag:	ScoreTerr
Value:	0 or 1
Meaning:	Specifies if territory should be scored (0.5 for each
	place in the territory).
Notes:	1. This rule makes sense only when Pass=1.
	2. This rule only affects scoring. The	combination Pass=1,ScoreTerr=1
	gives a score like Pass=0,ScoreTerr=0
	up to 1.5 point with LastSafe=1, and a mere 0.5 point with LastSafe=0.
	3. I know no application using rules with ScoreTerr=1.
	4. A lot of kropki players is against this
	rule http://www.kropki.legion.pl/obliczanie-wyniku-t421.html
	claiming that this would make Kropki too similar to Go,
	however this is a rather irrational fear because of note 2. above.

Tag:	InstantWin
Value:	0,1,2,... (nonnegative integer)
Meaning:	If equals n>0, then capturing at least n dots more
	than the opponent results in an 'instant' win. When n=0, then the game
	is played to a natural end.
Notes:	1. On szkrab it is usually InstantWin=15 (but may be
	also 0 or 30).

Note that (hypothetical) komi could be stored in a KM property.

In a revised version, there are no shortcuts!

(Tags 'szkrab' and 'russian' from previous version are dropped.)

Some examples

RU[Punish=0,Holes=0,AddTurn=0,MustSurr=0,MinArea=0,Pass=0,Stop=0,LastSafe=1,ScoreTerr=0,InstantWin=15]
  -- for standard szkrab rules (for rules with punish, just change 'Punish=0' to 'Punish=1')
RU[Punish=0,Holes=1,AddTurn=0,MustSurr=1,MinArea=1,Pass=0,Stop=1,LastSafe=0,ScoreTerr=0,InstantWin=0]
  -- for Russian rules without an additional move after making an enclosure (for a variant with additonal move, take 'AddTurn=1' instead of 'AddTurn=0')
RU[Punish=0,Holes=1,AddTurn=0,MustSurr=1,MinArea=1,Pass=0,Stop=0,LastSafe=0,ScoreTerr=0,InstantWin=0]
  -- for standard rules on kropki.dl.pl (like Russian, but without Stop - this is a major difference in fact, because it is still possible to 'play for territory' on kropki.dl.pl)