XTshek рдФрд░ DOS рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реЛрдХреЛрдмрди рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдерд╛, рдЬрд┐рд╕реЗ рдЫреЛрдЯреЗ рдмрд┐рдирд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рджрд╕ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╕реЗ рдХрдо рдерд╛ред рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХреЛ
pusher.exe рдХрд╣рд╛ рдЧрдпрд╛ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:

рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрддрд░ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдпрд╣ DOSEmu: DOSEmu -exit pusher.exe
рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА, рдЖрдк рдбреЗрдореЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╕рд╛рда рдХрд╛ рд╕реНрддрд░ рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдмрд┐рдирд░ рдореЗрдВ рдХреИрд╕реЗ рдлрд┐рдЯ рд╣реЛрддрд╛ рд╣реИред рдереЛрдбрд╝рд╛ IDA рдЦреЛрджрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрд╛ рдЬреЛ рд╕рднреА рд╕реНрддрд░реЛрдВ рдХреЛ рдмрд┐рдирд╛рд░ `pusher.exe` рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╛рда рд░реВрдк рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ:
************************************* Maze: 1 File offset: 148C, DS:00FC, table offset: 0000 Size X: 22 Size Y: 11 End: 14BD Length: 50 XXXXX XX X* X XXX *XXX X * * X XXX X XXX X XXXXXX XX XXX XXXXXXX ..X X * * ..X XXXXX XXXX X@XXXX ..X X XXX XXXXXX XXXXXXXX *************************************
рдЖрдк
рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рд╕реНрддрд░реЛрдВ рдХреЛ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрддрд░реЛрдВ рдХреЛ рд╣рдлрдореИрди рдХреА рддрд░рд╣ рдХреБрдЫ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЪрд░-рд▓рдВрдмрд╛рдИ рдмрд┐рдЯ рдЪреЗрдиред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ:
- X (1 рдмрд╛рдЗрдЯ) рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдб рдХрд╛ рдЖрдХрд╛рд░ред
- рд╡рд╛рдИ (1 рдмрд╛рдЗрдЯ) рдореЗрдВ рдХрд╛рд░реНрдб рдХрд╛ рдЖрдХрд╛рд░ред
- рдХрд╛рд░реНрдб рдХреЗ X * Y рдмрд╛рдЗрдЯреНрд╕, рдЬреЛ рдЬреЛрдбрд╝реЗ рдХреЗ рдЕрдиреБрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ
[COUNTER] [рд╕рд┐рдВрдмрд▓ рдХреЛрдб]ред рдпрджрд┐ рдЪрд░рд┐рддреНрд░ рд╣реИ, рддреЛ COUNTER рдПрдХ рдмрд┐рдЯ 0 рд╣реИ
"1 рдбреА 3 рдбреА 2 рдбреА 1" рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдпрд╛ рдЪрд╛рд░ рдмрд┐рдЯреНрд╕, рдФрд░ рдлрд┐рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рд╕рдВрдЦреНрдпрд╛
рд╕реВрддреНрд░ "рдПрди = 2 + рдбреА 3 * 4 + рдбреА 2 * 2 + рдбреА 1", рдЕрд░реНрдерд╛рдд 2 рд╕реЗ рд▓реЗрдХрд░
9 рдЕрдХреНрд╖рд░ред рдкреНрд░рддреАрдХ рдХреЛрдб рдХреЗ рдкрд╛рдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд░реНрде рд╣реИрдВ: 00 - рдПрдХ рдЦрд╛рд▓реА рдЬрдЧрд╣,
01 - рджреАрд╡рд╛рд░, 10 - рдмреИрд░рд▓, 110 - рдПрдХ рдмреИрд░рд▓ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣, 111 - рдмреИрд░рд▓, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦрдбрд╝реА рд╣реИ - рдПрдХреНрд╕ (1 рдмрд╛рдЗрдЯ) рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ред
- рд╡рд╛рдИ (1 рдмрд╛рдЗрдЯ) рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╢реБрд░реБрдЖрддреА рд╕реНрдерд┐рддрд┐ред
рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рднреА 60 рд╕реНрддрд░ред
Pushermaps.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
рдЖрдк рдкреВрд░реЗ рд╕рд╛рдзрд╛рд░рдг
рдбрд┐рдХрдВрдкреНрд░реЗрд╕рд░ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреБрджрд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╛рда рдореЗрдВ рд╕реНрддрд░реЛрдВ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
level_01 db 16h, 0Bh, 0A2h, 0DFh, 38h, 32h, 1Fh, 38h, 2Ah, 3, 0E6h db 12h, 0C0h, 0A5h, 0F2h, 83h, 2, 81h, 3, 0E4h, 12h, 82h db 25h, 6, 0CDh, 64h, 22h, 51h, 0ACh, 11h, 0A1h, 0Ah, 5 db 0E5h, 11h, 0B1h, 14h, 82h, 29h, 82h, 31h, 0A0h, 0E1h db 2Ch, 18h, 0D1h, 0CFh, 80h, 0Ch, 8 level_02 db 0Eh, 0Ah, 0F6h, 58h, 0Ch, 68h, 0Dh, 94h, 0C6h, 80h db 85h, 2, 82h, 18h, 0D0h, 15h, 4Ch, 10h, 0C6h, 0C2h, 18h db 21h, 8Dh, 1, 6, 4, 39h, 10h, 0A0h, 81h, 80h, 85h, 2 db 8, 20h, 60h, 34h, 1Bh, 0Ch, 1Eh, 0CAh, 7, 4 level_03 db 11h, 0Ah, 0E3h, 9Fh, 0Eh, 7, 0C2h, 11h, 42h, 1Fh, 8 db 50h, 23h, 0E0h, 85h, 4, 0Ch, 1Eh, 84h, 8, 0A6h, 0B4h db 10h, 85h, 2, 82h, 59h, 0D4h, 28h, 14h, 90h, 0D6h, 83h db 0DFh, 7Ch, 0Eh, 1
рдЖрджрд┐
рддреЛ рдЕрдЧрд░ рдЖрдк рдХрд╣реАрдВ рдЕрдкрдиреЗ рд╕рд░рд▓ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕реЛрдХреЛрдмрди рдХрд╛ рдордЬрд╝рд╛рдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдИ рд╕реНрддрд░реЛрдВ рдкрд░
рддреИрдпрд╛рд░ рд╣реЛ рд╕рдХрддреЗ
рд╣реИрдВ ред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЛрдХреЛрдмрди рдХреЗ рд▓рд┐рдП рд╕реНрддрд░реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИ, рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓рдЯреНрдЯреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреАрд╕ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рдмрд┐рдирд░ рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рдХреЗ рд╕рд╛рде рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢рдВрд╕рдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рджреНрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
GitHub'e -
github.com/begoon/sokoban-maps рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред