Madrasi and KöKo or KöKo and Madrasi ?

(Václav Kotěšovec, 1.3.2018)

Při testování úloh z oblasti exošachu se občas stává, že dva různé programy nedávají shodné výsledky. Nemusí to být ale nutně tím, že některý z programů obsahuje chyby. Důvod je v různé interpretaci některých exopodmínek. Zejména při kombinaci dvou či více exopodmínek je podstatné v jakém pořadí jsou exopodmínky aplikovány.

When we testing the fairy problems, it sometimes happens that two different programs do not produce the same results. But it does not necessarily mean that one of the programs contains errors. The reason is in the various interpretations of some fairy conditions. Especially when combining two or more conditions, it is important in which order the conditions are applied.

Nedávno jsem na takový problém narazil při skládání úloh s exopodmínkami Madrasi a KöKo.

I recently encountered such a problem when composing a chess problems with fairy conditions Madrasi and KöKo.

Programy WinChloe, Popeye a VKSach implementují tuto kombinaci takto
1) Madrasi
2) KöKo
Program Alybadix to dělá obráceně:
1) KöKo
2) Madrasi

Vše je nejlepší ukázat na příkladech:
Úlohy KM2, KM4 a KM6 řeší správně jen WinChloe a Popeye.
Úlohy KM1, KM3 a KM5 řeší správně jen Alybadix.
Úloha KM7 dává stejné výsledky se všemi programy.


KM1 Vaclav Kotesovec, original
white Kd2 Sd7 black Kf5 Sc4
h#5, 3.1.1..., Köko Madrasi (Alybadix rule)

WinChloe, Popeye: 0 solutions
Alybadix: C+


1.Sc4-d6 Sd7-e5 2.Sd6-e4 Se5-f3 3.Se4-g3 Sf3-h4 4.Sg3-e2 Kd2-e3 5.Se2-d4 Ke3-f4# 1.Sc4-e5 Sd7-f6 2.Kf5-g5 Sf6-h5 3.Kg5-g4 Sh5-f6 4.Se5-d3 Kd2-e3 5.Sd3-f2 Ke3-f4# 1.Kf5-e6 Sd7-c5 2.Ke6-d5 Sc5-e6 3.Sc4-e3 Se6-f4 4.Se3-c2 Kd2-c3 5.Sc2-b4 Kc3-d4#

Diagram KM1 ukazuje základní problém. Je ve druhém řešení po tahu černého jezdce na e5, bílý jezdec d7 paralyzován ?

The main question is: after the move of black knight from c4 to e5, is now the white knight d7 paralyzed ?

V Madrasi jistě ano. Když přidáme podmínku KöKo, tak programy WinChloe a Popeye říkají, že ANO, protože už předtím provedly podmínku Madrasi.

WinChloe and Popeye say YES (Madrasi first).

Alybadix říká, že NE, protože aplikuje podmínku KöKo a v takovém případě jezdec e5 nenapadá bílého jezdce d7, protože by po jeho teoretickém braní neměl souseda. Když jej nenapadá, nemůže jej proto ani paralyzovat. Je možno ještě poznamenat, že jde (podobně třeba jako u cvrčků) o jednostranou paralyzaci, protože jezdec d7 paralyzuje jezdce e5, ale nikoliv obráceně. Pokud bychom do pozice přídali např. pěšce c7, měl by již černý jezdec po braní na d7 souseda a paralyzace by proto byla oboustranná.

But Alybadix say NO - move of black knight from e5 to d7 is in KöKo impossible, because in KöKo is a move legal only if at least one of the squares adjacent to the arrival square is occupied. This would require, for example, to add a pawn to the c7. If the white knight d7 is not paralysed, then his next move to f6 is allowed.

Implementace Alybadixu se mi zdá logičtější a využívá exopodmínky do všech důsledků, ale je třeba se smířit s tím, že tu máme (podle pořadí exopodmínek) dva různé exošachy.

I prefer the Alybadix's implementation. But it's obvious, that we have two different fairy conditions: MaKo and KoMa.


KM2 Vaclav Kotesovec, original
white Kg4 Qa3 black Kd4 Qd5
h#5, 3.1.1..., Madrasi Köko

WinChloe, Popeye: C+
Alybadix: more solutions
(even in 3 moves!)

1.Kd4-c4 Qa3-b4 + 2.Kc4-c3 Qb4-f4 3.Qd5-b3 Kg4-f3 4.Kc3-c2 + Qf4-c1 + 5.Kc2-d1 Kf3-e2 # 1.Qd5-c4 Qa3-f3 2.Qc4-c3 Kg4-g3 3.Kd4-e3 Qf3-g4 4.Ke3-d2 + Qg4-d1 + 5.Kd2-e1 Kg3-f2 # 1.Kd4-e4 Qa3-g3 2.Qd5-d3 Kg4-h3 3.Ke4-f3 Qg3-h4 4.Kf3-e2 + Qh4-e1 + 5.Ke2-f1 Kh3-g2 #

KM3 Vaclav Kotesovec, original
white Kd2 Qh3 black Ke6 Qb1
h#4, 4.1.1..., Köko Madrasi (Alybadix rule)

WinChloe, Popeye: 0 solutions
Alybadix: C+


1.Qb1-c2 Kd2-d3 2.Qc2-c4 Kd3-c3 3.Ke6-d5 Qh3-e6+ 4.Qc4-c6 Kc3-d4# 1.Qb1-d3 Kd2-e3 2.Qd3-d2 Qh3-f5 3.Ke6-e5 Qf5-f6 4.Qd2-d6 Ke3-e4# 1.Qb1-c1 Qh3-f5 2.Ke6-e5 Qf5-e4 3.Ke5-d4 Qe4-e5 4.Qc1-c5 Kd2-d3# 1.Qb1-d1 Qh3-f5 2.Ke6-e5 Kd2-e1 3.Ke5-e4 Ke1-e2 4.Qd1-d5 Ke2-e3#
KM4 Vaclav Kotesovec, original
white Kc2 Nb8 black Kd6 Ng6
h#6, Nightriders, 0.3.1.1..., Madrasi Köko

WinChloe, Popeye: C+
Alybadix: more solutions


1...Nb8-c6 2.Kd6-c5 Nc6-d4 3.Ng6-e5 Kc2-c3 4.Kc5-b4 + Kc3-b3 5.Kb4-a3 Kb3-a2 6.Ne5-d3 Nd4-c2 #{ } 1...Nb8-h5 2.Ng6-e7 Nh5-d3 3.Ne7-d5 Nd3-b2 + 4.Kd6-c5 Kc2-b3 5.Kc5-b4 + Kb3-a4 6.Kb4-a5 Nb2-c4 #{ } 1...Nb8-d7 2.Kd6-c6 Nd7-b3 3.Ng6-c4 Kc2-c3 4.Nc4-d6 Kc3-b4 5.Kc6-b5 + Kb4-a5 6.Kb5-a6 Nb3-c5 #

KM5 Vaclav Kotesovec, original
white Kd4 Na1 black Kf5 Nh7
h#5, Nightriders, 4.1.1..., Köko Madrasi (Alybadix rule)

WinChloe, Popeye: 0 solutions
Alybadix: C+


1.Kf5-g6 Na1-c5 2.Nh7-d5 Nc5-e6 3.Nd5-e7 Ne6-f8 4.Ne7-d5 Kd4-e5 5.Nd5-f4 Ke5-f6# 1.Nh7-g5 Na1-g4 2.Ng5-e6 Kd4-d5 3.Ne6-d4 Ng4-e3 4.Nd4-c6 Kd5-d6 5.Nc6-e7 Kd6-e5# 1.Nh7-f6 Na1-e3+ 2.Kf5-f4 Ne3-g7 3.Nf6-d5 Ng7-e6 4.Nd5-c3 Kd4-d3 5.Nc3-e2 Kd3-e4# 1.Nh7-d5 Kd4-c4 2.Kf5-e4 Na1-b3 3.Nd5-c3 Nb3-d2 4.Nc3-b5 Kc4-c5 5.Nb5-d6 Kc5-d4#

KM6 Vaclav Kotesovec, original
white Kd3 Rd5 black Kb5 Rb8
h#5, 0.3.1.1..., Madrasi Köko

WinChloe, Popeye: C+
Alybadix: more solutions


1...Rd5-d4 2.Rb8-b6 Kd3-c3 3.Rb6-c6 + Rd4-d5 + 4.Kb5-b4 + Kc3-b3 5.Kb4-a4 Rd5-a5 # 1...Rd5-c5 2.Kb5-b6 Kd3-c4 3.Rb8-b7 Rc5-a5 4.Rb7-c7 Ra5-a6 + 5.Kb6-a5 Kc4-b4 # 1...Kd3-d4 2.Kb5-c6 Rd5-d7 3.Rb8-c8 Kd4-c5 + 4.Kc6-b6 + Kc5-b5 5.Kb6-a6 Rd7-a7 #

KM7 Vaclav Kotesovec, original
white Kd3 Rb4 black Ke6 Re1
h#6, 0.3.1.1..., Köko Madrasi (or Madrasi Köko)

WinChloe, Popeye: C+
Alybadix: C+


1...Kd3-c4 2.Ke6-d5 + Kc4-b5 3.Re1-e6 Rb4-d4 + 4.Kd5-c6 Kb5-b6 5.Kc6-c7 + Kb6-b7 6.Kc7-c8 Rd4-d8 # 1...Rb4-d4 2.Ke6-d5 Kd3-c3 3.Kd5-c5 Rd4-d2 4.Kc5-b4 + Kc3-b3 5.Kb4-a3 Kb3-b4 6.Re1-c1 Rd2-a2 # 1...Rb4-c4 2.Re1-e3 + Kd3-e4 3.Re3-f3 Ke4-e5 4.Ke6-f5 Ke5-f6 5.Kf5-g5 + Kf6-g6 6.Kg5-h5 Rc4-h4 #


Závěr: osvědčilo se pravidlo, považovat šachovou úlohu za korektní, když alespoň jeden ze základních programů (WinChloe, Alybadix, Popeye, Gustav) ji za takovou považuje.

The rule is to consider the chess problem to be correct when at least one of the basic programs (WinChloe, Alybadix, Popeye, Gustav) considers it a good one.



Diagrams created with Py2Web