
рдЖрдЬ рдореИрдВ ZRF рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЧреЗрдореНрд╕ рдХреЗ
Zillions рдореЗрдВ рдЦреЗрд▓реЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕рд░рд▓ рд╕реЗ рдЬрдЯрд┐рд▓ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдЖрдЬ рдХрд╛ рдЦреЗрд▓ (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдкрд┐рдЫрд▓реЗ рд╕рднреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ ZRF рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╢рддрд░рдВрдЬ рдХреЗ рд╕рдорд╛рди рдЦреЗрд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред рдЕрдзрд┐рдХ "рд╢рддрд░рдВрдЬ рдХреА рддрд░рд╣" рдЦреЗрд▓, рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ (рдЬрдм рддрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рдРрд╕реЗ рдкреЗрдЪреАрджрд╛ рдЪрд╛рд▓реЛрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐
рдврд▓рд╛рдИ рдпрд╛
рдЧрд▓рд┐рдпрд╛рд░реЗ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ )ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреЗрдо рдХрд╛ рд╡рд░реНрдгрди рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
рдкреНрд░реАрдЬреЗрдбрдЖрд░рдПрдл , рдЬреЛ рдореИрдВрдиреЗ
рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛
рдерд╛ , рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдХрд╛рдлреА рддреБрдЪреНрдЫред
рд╕рдм рдХреБрдЫ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╢рддрд░рдВрдЬ рдкрд░ рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ) рд╕рдорд╛рди рд╣реИред
рдЧреЗрдо рдСрдл рд▓рд╛рдЗрдл рдпрд╛
рдорд╛рдЗрди рдлрд╛рдЗрдВрдбрд░ рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдПрдХ рдЧрдВрднреАрд░ рдЪреБрдиреМрддреА рд╣реИ, рдЕрдЧрд░ рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╢реБрджреНрдз ZRF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЬ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдРрд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд┐рди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдмрд╛рд░, рдореИрдВ
рдпреБрджреНрдз рдмрдирд╛рдо рд╢рддрд░рдВрдЬ рд╕реЗ рдореИрдирд╛ рдЧреИрджрд░рд┐рдВрдЧ рдорд┐рдиреА-рдЧреЗрдо рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ред рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╢рддрд░рдВрдЬ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрд╕реЗ рдореИрджрд╛рди рдореЗрдВ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд░рдЦреЗ рдЧрдП "рдХреНрд░рд┐рд╕реНрдЯрд▓" рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрддрд╛ рд╣реИ:
рдЖрдЗрдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ ZRF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдорд┐рдиреАрдЧреЗрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдХрд┐рди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдкрд╣рд▓реА рдХрдард┐рдирд╛рдИ рд▓рдбрд╝рд╛рдИ рдХреЗ рддрд╣рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рд╣реИ, рдЬреЛ рдПрдХ "рдХрд╛рдВрдЯрд╛" рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛, ZRF рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЧрдгрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рддрдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди, рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ:
"рдХрд╛рдВрдЯреЗ" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛(define common-check mark (if (on-board? $1) $1 (while (and empty? (on-board? $1)) $1) (if enemy? (if (flag? is-first) (set-flag is-second true) else (set-flag is-first true) ) ) ) back ) (define common-capture mark (if (on-board? $1) $1 (while (and empty? (on-board? $1)) $1) (if enemy? capture) ) back ) (define queen-slide ($1 (while empty? (set-flag is-first false) (set-flag is-second false) (common-check n) (common-check s) (common-check w) (common-check e) (common-check nw) (common-check ne) (common-check sw) (common-check se) (if (flag? is-second) (common-capture n) (common-capture s) (common-capture w) (common-capture e) (common-capture nw) (common-capture ne) (common-capture sw) (common-capture se) ) add $1 ) ) )
рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ "рд╣рдорд▓реЗ рдХреЗ рддрд╣рдд" рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, "рдЧрд┐рдирддреА" рдХреЗ рд▓рд┐рдП рджреЛ "рдмреБрд▓рд┐рдпрди рдЭрдВрдбреЗ" рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рдпрджрд┐, рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ
рдЖрдо-рдЪреЗрдХ рдЪреЗрдХ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд╛рдж,
рджреВрд╕рд░рд╛-рд╕реЗрдХрдВрдб рдзреНрд╡рдЬ
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рддреЛ рдЖрдкрдХреЛ "рдпреБрджреНрдз рдХреЗ рдЕрдВрддрд░реНрдЧрдд" рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ) рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рд╕рднреА рдЪреЗрдХреЛрдВ рдФрд░
рдРрдб рдХреЛ рдХрдорд╛рдВрдб рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдПрдХ
рд╕рдВрднрд╛рд╡рд┐рдд рдЪрд╛рд▓ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛
рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕ рдХрджрдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдпрдорд┐рдд рд╢рддрд░рдВрдЬ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рдПрдХ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ (рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЗ рдЯреБрдХрдбрд╝реЗ рджреНрд╡рд╛рд░рд╛)ред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдЬрдЧрд╣ рдореЗрдВ, ZRF рдХрд╛ "рд╡рд┐рд╢реНрд╡рд╛рд╕рдШрд╛рдд" рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрдЧ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд╛рд▓реВ рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреАрдЫреЗ рд╕реНрдерд┐рдд рдЖрдВрдХрдбрд╝рд╛, рдореЛрдбрд╝ рд╕реЗ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ, "рдпреБрджреНрдз рдХреЗ рддрд╣рдд" рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐, рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рдЧрдгрдирд╛ рдХреЗ рд╕рдордп, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЦрд╛рд▓реА рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
"рдХрд╛рдВрдЯреЗ" рдХреА рд╕рд╣реА рдкрд░рд┐рднрд╛рд╖рд╛ (define common-check mark (if (on-board? $1) $1 (while (and (or (position-flag? is-start) empty?) (on-board? $1)) $1) (if enemy? (if (flag? is-first) (set-flag is-second true) else (set-flag is-first true) ) ) ) back ) (define common-capture mark (if (on-board? $1) $1 (while (and (or (position-flag? is-start) empty?) (on-board? $1)) $1) (if enemy? capture) ) back ) (define queen-slide ( (set-position-flag is-start true) $1 (while empty? (set-flag is-first false) (set-flag is-second false) (common-check n) (common-check s) (common-check w) (common-check e) (common-check nw) (common-check ne) (common-check sw) (common-check se) (if (flag? is-second) (common-capture n) (common-capture s) (common-capture w) (common-capture e) (common-capture nw) (common-capture ne) (common-capture sw) (common-capture se) ) add $1 ) ) )
рд╣рдо рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рд╕реНрдерд┐рддреАрдп рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЖрдЧреЗ рдЦрд╛рд▓реА рдорд╛рдирддреЗ рд╣реИрдВред
рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред
рдпрд╣ рд╕рдорд╛рдзрд╛рди рдПрдХ рд░рд╛рдиреА рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЦреЗрд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдмрджрдорд╛рд╢реЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдЖрдВрдХрдбрд╝рд╛, рдЧрддрд┐рдорд╛рди, рджреВрд╕рд░реЗ рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдкреНрд▓рдЧ рдХреЛ "рдЦреЛрд▓" рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдпрд╣ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди (рдЕрднреА рддрдХ) рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рднреА рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╛рдВрдЯрдиреЗ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рдВрдЯреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмреЛрд░реНрдб рдкрд░ рд╕рднреА рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдЦреЛрдЬ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА "рджрд┐рд╢рд╛" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ:
рд╕рднреА рдлрд╝реАрд▓реНрдб рд▓рд┐рдВрдХ рдХрд░реЗрдВ (define Next-Definitions (dummy offboard) (links next (a1 b1) (b1 c1) (c1 d1) (d1 e1) (e1 f1) (f1 g1) (g1 h1) (h1 a2) (a2 b2) (b2 c2) (c2 d2) (d2 e2) (e2 f2) (f2 g2) (g2 h2) (h2 a3) (a3 b3) (b3 c3) (c3 d3) (d3 e3) (e3 f3) (f3 g3) (g3 h3) (h3 a4) (a4 b4) (b4 c4) (c4 d4) (d4 e4) (e4 f4) (f4 g4) (g4 h4) (h4 a5) (a5 b5) (b5 c5) (c5 d5) (d5 e5) (e5 f5) (f5 g5) (g5 h5) (h5 a6) (a6 b6) (b6 c6) (c6 d6) (d6 e6) (e6 f6) (f6 g6) (g6 h6) (h6 a7) (a7 b7) (b7 c7) (c7 d7) (d7 e7) (e7 f7) (f7 g7) (g7 h7) (h7 a8) (a8 b8) (b8 c8) (c8 d8) (d8 e8) (e8 f8) (f8 g8) (g8 h8) (h8 offboard) ) ) (game ... (board (Board-Definitions) (Next-Definitions)) )
рдЕрдЧрд▓реА рджрд┐рд╢рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбрдореА
рдСрдлрд╝рдмреЛрд░реНрдб рдлрд╝реАрд▓реНрдб рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп ZRF рдореБрд╣рд╛рд╡рд░рд╛ рд╣реИред рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рд▓рд┐рдВрдХ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╕рдВрд╢реЛрдзрд┐рдд рдЯреЛрдкреЛрд▓реЙрдЬреА" рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреЛрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреА рдорджрдж рд╕реЗ, рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреЛрд░реНрдб рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ "рдЧреЛрдВрдж" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕рд┐рд▓реЗрдВрдбрд░, рдЯреЛрд░рд╕ рдпрд╛ рдореЛрдмрд┐рдпрд╕ рдкрдЯреНрдЯреА рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рдЖрдк рдмрдирд╛рдИ рдЧрдИ рджрд┐рд╢рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдзреЗ рдЖрдкрдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ "рдЫрд╛рдБрдЯрдиреЗ" рдХрд╛ рдкреНрд░рдпрд╛рд╕ рддрдХрдиреАрдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИред рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдХреНрд░рдо рдореЗрдВ, рдмрд╛рдж рдореЗрдВ, рдХрджрдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб
рдЬреЛрдбрд╝реЗрдВ )ред рдЖрдорддреМрд░ рдкрд░,
рдорд╛рд░реНрдХ /
рдмреИрдХ рдХрдорд╛рдВрдб рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рд╕рд╛рдорд╛рдиреНрдп-рдЪреЗрдХ рдФрд░
рд╕рд╛рдорд╛рдиреНрдп-рдХреИрдкреНрдЪрд░ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ
рд╣реИрдВ , рдФрд░
рдорд╛рд░реНрдХ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬреЗ рдЧрдП рдкрджреЛрдВ рдХрд╛ рдвреЗрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдмрдирд╛рдПрдВ
? (game ... (players Black ?White ?Clean) (turn-order ?White ?White ?White ?White ?White ?White ?White ?White Black ?Clean) )
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкрд┐рдЫрд▓реЗ
рд▓реЗрдЦ рдореЗрдВ рдХрд╣рд╛ рдерд╛, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдирд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣ рд╕реАрдзреЗ рдЦреЗрд▓ рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рдЪрд╛рд▓ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрдВрдЬрд╛рдо рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рдПрдЧрд╛? рд╣рдореЗрдВ рдЗрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдХрджрдореЛрдВ рдХреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░рдд рд╣реИ (рдЙрд╕рдХреА рдмрд╛рд░реА рдХреЗ рджреМрд░рд╛рди, рдмреЛрд░реНрдб рдкрд░ рдХрд╛рдВрдЯреЗ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдЙрдирдХреЗ рдиреАрдЪреЗ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рдПрдЧреА)ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ
! рдЯреБрдХрдбрд╝реЛрдВ
рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕рд╛рдл рдХрд░реЗрдВ , рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдмреЛрд░реНрдб рдкрд░
рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
рд╕рднреА рдХрд╛рдВрдЯреЗ рдЦреЛрдЬреЗ (define common-check mark (if (on-board? $1) $1 (while (and (or (position-flag? is-start) (or (piece? Cleaner) empty?)) (on-board? $1)) $1) (if (piece? Stone) (if (flag? is-first) (set-flag is-second true) else (set-flag is-first true) ) ) ) back ) (define common-capture mark (if (on-board? $1) $1 (while (and (or (position-flag? is-start) (or (piece? Cleaner) empty?)) (on-board? $1)) $1) (if (piece? Stone) capture) ) back ) (define clean-queen ( (verify empty?) (set-position-flag is-cleaner true) a1 (while (not-position? offboard) (if (piece? Queen) (set-flag is-first false) (set-flag is-second false) (common-check n)(common-check nw) (common-check s)(common-check ne) (common-check w)(common-check sw) (common-check e)(common-check se) (if (flag? is-second) (common-capture n)(common-capture nw) (common-capture s)(common-capture ne) (common-capture w)(common-capture sw) (common-capture e)(common-capture se) ) ) next ) a1 (while (not-position? offboard) (if (position-flag? is-cleaner) add ) next ) ) ) (define slide ( (set-position-flag is-start true) $1 (while empty? add $1 ) ) ) (game ... (players Black ?White ?Clean) (turn-order ?White ?White ?White ?White ?White ?White ?White ?White Black ?Clean) (board (Board-Definitions) (Next-Definitions)) (board-setup (?Clean (Cleaner off 1) ) (?White (Stone off 8) ) (Black (Queen e4) ) ) (piece (name Stone) (image ?White "images\Chess\SHaag\wpawn.bmp") (help " ") (drops (add-to-empty) ) ) (piece (name Cleaner) (image ?Clean "images\DarkChess\Invisible.bmp") (drops (clean-queen) ) ) (piece (name Queen) (image Black "images\Chess\SHaag\bqueen.bmp") (help "Queen: can slide any number of squares in any direction") (moves (slide n)(slide ne) (slide e)(slide nw) (slide s)(slide se) (slide w)(slide sw) ) ) )
рдХрд╛рдлреА рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рдордиреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдЕрдиреБрдорддрд┐ рджреА рд╣реИ
? рдЕрдкрдиреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдореИрджрд╛рди рдкрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП (
рдмреНрд▓реИрдХ рдореВрд╡ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж), рдЬрд╛рдБрдЪ, рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдХрд╛рдВрдЯреЗ рдореЗрдВред рдЪреВрдВрдХрд┐ рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдЧреЗрдордкреНрд▓реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд░рджрд░реНрд╢реА рдЖрдВрдХрдбрд╝реЗ рдХрд╛ рд╕рдВрд╕рд╛рдзрди рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЕрдЬреАрдм
рдЦреЗрд▓ рд╕реЗ ред
рд╕реНрд╡рдЪреНрдЫ рдХрд╛рдВрдЯреЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рддрд╛ рд╣реИ? рдпрджрд┐ рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рддреАрди рдмрд╛рд░ рднреА рдЕрджреГрд╢реНрдп рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдЧреЗрдордкреНрд▓реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗ, рддреЛ рдЗрд╕реЗ рдмреЛрд░реНрдб рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВрдЧреЗ
?рдХрдЪрд░рд╛ рд╕рд╛рдл рдХрд░рдирд╛ (define add-to-empty ( (verify empty?) (set-position-flag is-cleaner true) a1 (while (not-position? offboard) (if (piece? Cleaner) capture ) next ) a1 (while (not-position? offboard) (if (position-flag? is-cleaner) add ) next ) ) )
рддрд╛рдХрд┐;
рд╕реНрд╡рдЪреНрдЫ рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдХрд╛ рдмрд╛рд░-рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗ, рдЗрд╕реА рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:
(option "recycle captures" true)
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░
рдмреНрд▓реИрдХ рдиреЗ рдЗрд╕ рдХрджрдо рдХреЗ рджреМрд░рд╛рди рдкреНрд▓рдЧ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛,
"рдХреНрд▓реАрди рдЕрдкрдиреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЦрд░реНрдЪ рдХрд░реЗрдЧрд╛, рдФрд░
" рд╡реНрд╣рд╛рдЗрдЯ рдЗрд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдПрдХ рдЪрд╛рд▓ рдирд╣реАрдВ рдмрдирд╛ рдкрд╛рдПрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХреЗ рд╕рднреА 8 рдЯреБрдХрдбрд╝реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЛрд░реНрдб рдкрд░ рд╣реИрдВ)ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдХрджрдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
? рдХреЗрд╡рд▓ рдЗрд╕ рд╢рд░реНрдд рдкрд░
рд╕рдлрд╛рдИ рджреЗрдВ рдХрд┐ рд╡рд╣ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рдВрдЯрд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ:
рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рдЦреЛрдЬ (define clean-queen ( (verify empty?) (set-flag is-succeed false) (set-position-flag is-cleaner true) a1 (while (not-position? offboard) (if (piece? Queen) (set-flag is-first false) (set-flag is-second false) (common-check n)(common-check nw) (common-check s)(common-check ne) (common-check w)(common-check sw) (common-check e)(common-check se) (if (flag? is-second) (set-flag is-succeed true) (common-capture n)(common-capture nw) (common-capture s)(common-capture ne) (common-capture w)(common-capture sw) (common-capture e)(common-capture se) ) ) next ) a1 (while (not-position? offboard) (if (and (flag? is-succeed) (position-flag? is-cleaner)) add ) next ) ) )
рдЦреЗрд▓ рдХреЗ рдЕрдЪрд╛рдирдХ рд╕рдорд╛рдкреНрдд рди рд╣реЛрдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдпрджрд┐ рдХреЛрдИ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рд╡рд┐рдХрд▓реНрдк рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗ:
(option "pass turn" 2)
рдЙрдлреНрдлреНрдл ... рдЕрдм рд╕рдм рдХреБрдЫ
рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рдореЗрдВ рдЙрддрдирд╛ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдЦреЗрд▓реЗрдВрдЧреЗ)ред рдмреЗрд╢рдХ, рдпрд╣ рдкреВрд░реА рд╕рдВрд░рдЪрдирд╛ рджреГрдврд╝рддрд╛ рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмреИрд╕рд╛рдЦреА рд╕реЗ рдмрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреЗрдбрдЖрд░рдПрдл рдореЗрдВ рддреБрдЪреНрдЫ рдирд╣реАрдВ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреАрдордд рд╣реИред
рдПрдХ рдорд┐рдард╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╢рддрд░рдВрдЬ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЖрдирдВрдж рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:
рд╕рднреА рдЯреБрдХрдбрд╝реЗ рдирд┐рдпрдорд┐рдд рд╢рддрд░рдВрдЬ рдХреА рддрд░рд╣ рд╣реА рдЪрд▓рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдЦреЗрд▓ рдХреЗ рдкреВрд░реЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЦреВрдмрд┐рдпреЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рд╢рддрд░рдВрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣рд░рд╛рдирд╛ рдЬреНрдпрд╛рджрд╛ рдХрдард┐рди рд╣реИред рдЦреЗрд▓ рдмрд╣реБрдд рдЧрддрд┐рд╢реАрд▓ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА 10 рдЪрд╛рд▓реЛрдВ рддрдХ рд░рд╣рддрд╛ рд╣реИред рдЬреАрддрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдВрдЯреЗ рд░рдЦреЛ!