ΠΠ³ΡΠ° Sokoban
C# — ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π² 1998—2001 Π³ΠΎΠ΄Π°Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΠ½Π΄Π΅ΡΡa Π₯Π΅ΠΉΠ»ΡΠ±Π΅ΡΠ³a Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Microsoft .NET. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Ρ C# Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ°ΠΌΠΎΠΉ .NET, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ³ΡΠ° Sokoban (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π£ΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
«ΠΠ΅Π»ΠΎΡΡΡΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ ΡΠ°Π΄ΠΈΠΎΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΈ»
ΠΠ°ΡΠ΅Π΄ΡΠ° ΠΠΠ
ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ° ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΠΊΡΡΡΡ ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ΅ΠΌΠ΅:
ΠΠ³ΡΠ° Sokoban
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»:
Π₯ΠΎΠ»ΡΠΏΠΎΠ² Π .Π.
ΠΠΈΠ½ΡΠΊ 2012
Π‘ΠΠΠΠ ΠΠΠΠΠ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
1. ΠΠ±Π·ΠΎΡ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
2. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
3. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
4. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
5. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠ΅ ΠΌΡ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ Π±ΡΠ»ΠΈ Π΄Π΅ΡΡΠΌΠΈ, Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠ°ΠΌΡΠ΅ ΡΠ²Π΅ΡΠ»ΡΠ΅ Π²ΠΎΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΈ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π½Π°Ρ Ρ ΠΈΠ³ΡΠ°ΠΌΠΈ.
ΠΠ³ΡΠ° ΡΠ΅ΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ Π»ΠΈΡΠ½ΠΎΡΡΠΈ ΠΠ³ΡΠ° — ΡΡΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠ°Π·Π²ΠΈΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΡΠΌΠ°, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΡΡΠ²Π° Π² ΡΠ΅Π»ΠΎΠΌ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈΠ³ΡΠ° «Sokoban». Sokoban (Soko-Ban, ΡΠΏ. ΡΠΎΠΊΠΎΠ±Π°Π½ — «ΠΊΠ»Π°Π΄ΠΎΠ²ΡΠΈΠΊ») — Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ³ΡΠ°-Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°Π΅Ρ ΡΡΠΈΠΊΠΈ ΠΏΠΎ Π»Π°Π±ΠΈΡΠΈΠ½ΡΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°Π½Π°, Ρ ΡΠ΅Π»ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈΠΊΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΡ Π·Π° ΡΠ°Π·, ΠΏΡΠΈΡΡΠΌ Π³Π΅ΡΠΎΠΉ ΠΈΠ³ΡΡ — «ΠΊΠ»Π°Π΄ΠΎΠ²ΡΠΈΠΊ» — ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ»ΠΊΠ°ΡΡ ΡΡΠΈΠΊΠΈ, Π½ΠΎ Π½Π΅ ΡΡΠ½ΡΡΡ ΠΈΡ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ³ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡ.
ΠΠ³ΡΠ° Sokoban Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° Π² 1980 Π³ΠΎΠ΄Ρ Hiroyuki Imabayashi, ΠΈ ΠΈΠ·Π΄Π°Π½Π° Π² 1982 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Thinking Rabbit (Π―ΠΏΠΎΠ½ΠΈΡ). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π²ΡΠΏΡΡΡΠΈΠ»Π° ΡΡΠΈ ΡΠΈΠΊΠ²Π΅Π»Π°: Boxxle, Sokoban Perfect ΠΈ Sokoban Revenge.
ΠΠ³ΡΠ° Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ. Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ³ΡΡ Π΄Π»Ρ ΠΊΠ°ΡΠΌΠ°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΏΡΠΈΡΡΠ°Π²ΠΎΠΊ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ².
1. ΠΠ±Π·ΠΎΡ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
C# — ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π² 1998—2001 Π³ΠΎΠ΄Π°Ρ Π³ΡΡΠΏΠΏΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΠ½Π΄Π΅ΡΡa Π₯Π΅ΠΉΠ»ΡΠ±Π΅ΡΠ³a Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Microsoft .NET. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Ρ C# Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ°ΠΌΠΎΠΉ .NET, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π±Π΅Π· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π²ΡΠΎΠ΄Π΅ Visual Studio.
C# ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΅ΠΌΡΠ΅ ΡΠ·ΡΠΊΠΎΠ² Ρ C-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΠΈΠ· Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Π‘++ ΠΈ Java. Π―Π·ΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠΎΠ³ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠ², Π°ΡΡΠΈΠ±ΡΡΡ, ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ XML. ΠΠ΅ΡΠ΅Π½ΡΠ² ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΎΡ ΡΠ²ΠΎΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠ² — ΡΠ·ΡΠΊΠΎΠ² Π‘++, Java, Delphi, ΠΠΎΠ΄ΡΠ»Π° ΠΈ Smalltalk — Π‘#, ΠΎΠΏΠΈΡΠ°ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π·Π°ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡΠΈΠ΅ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ: ΡΠ°ΠΊ, C# Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ C++).
C# ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ CLR ΠΈ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ, Π·Π°Π²ΠΈΡΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ°ΠΌΠΎΠΉ CLR. ΠΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² C#, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ FCL. ΠΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° Π΄ΠΈΠΊΡΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΡΠ·ΡΠΊΠΎΠ²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π±ΡΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ CLR. Π’Π°ΠΊ, Ρ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ CLR ΠΎΡ Π²Π΅ΡΡΠΈΠΈ 1.1 ΠΊ 2.0 Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΠΎΠ³Π°ΡΠΈΠ»ΡΡ ΠΈ ΡΠ°ΠΌ C#; ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. (ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠ° Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΡ Π±ΡΠ»Π° Π½Π°ΡΡΡΠ΅Π½Π° Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ C# 3.0, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ°, Π½Π΅ ΠΎΠΏΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ Π½Π° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ .NET.) CLR ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ C#, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠΌ .NET-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π»ΠΈΡΠ΅Π½Ρ «ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅» ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ° Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΌΠΎΠΌ C#, Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ CLR Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° C# ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° VB.NET, J# ΠΈ Π΄Ρ.
2. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
1. Π‘ΡΡΡΠΊΡΡΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅:
Β· ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΊΠ°ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅;
Β· ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΡΠΎΠ²Π½Ρ Π±Π΅Π· ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ;
Β· ΠΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π°;
Β· Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ³ΡΡ;
Β· ΠΡΠΎΡΠΌΠΎΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ³ΡΠΎΠΊΠΎΠ²;
2. Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°:
Π ΠΈΡ. 1. Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ°
3. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π±ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»Π°ΡΡ Π½Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (UML), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ «ΡΠ΅ΡΡΠ΅ΠΆΠ΅ΠΉ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ UML ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° Π ΠΈΡ. 2.
Π ΠΈΡ. 2. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ²
public partial class Form1: Form
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ°
public static int CellWeight = 70; | Π¨ΠΈΡΠΈΠ½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΠΎΠ»Ρ | |
public static int CellHeight = 70; | ΠΡΡΠΎΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΠΎΠ»Ρ | |
public static int result = 0; | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Ρ ΠΎΠ΄ΠΎΠ² | |
public static int level = 0; | Π’Π΅ΠΊΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ | |
Field myField; | ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Field | |
public Image myimage; | ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Image | |
public Form1() | ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ, Π² ΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°. | |
protected override void OnPaint (PaintEventArgs e) | ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ (ΠΏΡΠΎΡΠΈΡΠΎΠ²ΠΊΠ°) ΠΎΠΊΠ½Π° ΠΈΠ³ΡΡ. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. | |
Graphics g = Graphics. FromHwnd (this.Handle); | ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° Graphics | |
private void Form1_Load (object sender, EventArgs e) | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ. | |
private void Form1_KeyUp (object sender, KeyEventArgs e) | ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ | |
int kol; | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠ»Π΅ΡΠΎΠΊ (0,2,3) | |
Graphics g1 = Graphics. FromHwnd (this.Handle); | ΠΠ±ΡΠΊΡ Graphics | |
Image myimage1 = new Bitmap (Properties.Resources.Empty); | ΠΠ±ΡΠΊΡ Image | |
public void Π·Π°Π³ΡΡΠ·ΠΈΡΡΠΠ°ΡΡΡToolStripMenuItem_Click (object sender, EventArgs e) | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ°ΡΡΡ | |
string fileName = openFileDialog1. FileName; | Π‘ΡΡΠΎΠΊΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Ρ | |
private void Π²ΡΡ ΠΎΠ΄ToolStripMenuItem_Click (object sender, EventArgs e) | ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΈΠ³ΡΡ | |
private void ΠΎΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ToolStripMenuItem_Click (object sender, EventArgs e) | ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ form2 | |
private void ΠΎΡΠΌΠ΅Π½Π°Π₯ΠΎΠ΄Π°ToolStripMenuItem_Click (object sender, EventArgs e) | ΠΡΠΌΠ΅Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Ρ ΠΎΠ΄Π° | |
Graphics g1 = Graphics. FromHwnd (this.Handle); | ΠΠ±ΡΠ΅ΠΊΡ Graphics | |
Image myimage1 = new Bitmap (Properties.Resources.Empty); | ΠΠ±ΡΠ΅ΠΊΡ Image | |
private void ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉΠ£ΡΠΎΠ²Π΅Π½ΡToolStripMenuItem_Click (object sender, EventArgs e) | ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ | |
private void ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΠ Π΅Π·ΡΠ»ΡΡΠ°ΡToolStripMenuItem_Click (object sender, EventArgs e) | Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΡΠΌΠ° form3 | |
private void ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡΠ Π΅Π·ΡΠ»ΡΡΡToolStripMenuItem_Click (object sender, EventArgs e) | ΠΡΠΎΡΠΌΠΎΡΡ ΡΠ΅ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΡΠΌΠ° form4 | |
public partial class Field
ΠΠ»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ°ΡΡΠΎΠΉ
public int x, y; | ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠΊΠ° | |
public int x1, y1; | ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ΄Π° | |
public int count = 0; | Π‘ΡΠ΅ΡΡΠΈΠΊ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π° ΠΌΠ΅ΡΡΠ° ΡΡΠΈΠΊΠΎΠ² | |
public int count1 = 0; | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΡΠ΅ΡΡΠΈΠΊΠΎΠ² (place) | |
public int width; | Π¨ΠΈΡΠΈΠ½Π° ΠΏΠΎΠ»Ρ | |
public int height; | ΠΡΡΠΎΡΠ° ΠΏΠΎΠ»Ρ | |
public int NextLevel = 1; | Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ | |
public Item[,] f; | ΠΠ°ΡΡΠ° | |
public Item[,] f2; | ΠΠΎΠΏΠΈΡ ΠΊΠ°ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Ρ ΠΎΠ΄Π° | |
public Item GetItem (char cur) | ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ (Empty, Wall, Men, Box, Place, Boxplace, Menplace) | |
public void ReadMap (StreamReader reader) | Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π² ΠΌΠ°ΡΡΠΈΠ² | |
public void CopyMap () | ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Ρ ΠΎΠ΄Π° | |
public int Move (int x1, int y1) | ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ»Ρ | |
public void Draw (int x1, int y1, Graphics g1, Image myimage1, int kol) | ΠΡΠΎΡΠΈΡΠΎΠ²ΠΊΠ° Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΏΠΎΠ»Ρ (Π΄Π²Π΅ ΠΈΠ»ΠΈ ΡΡΠΈ) | |
public void OpenNextLevel () | ΠΡΠΊΡΡΡΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ³ΡΡ | |
public partial class Form2: Form
Π€ΠΎΡΠΌΠ° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΠ³ΡΠ΅
public Form2() | ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ | |
private void button1_Click (object sender, EventArgs e) | ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ± ΠΈΠ³ΡΠ΅ | |
public partial class Form3: Form
Π€ΠΎΡΠΌΠ° Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ³ΡΡ
public Form3() | ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ | |
public void button1_Click (object sender, EventArgs e) | ΠΠ°ΠΏΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ³ΡΡ Π² ΡΠ°ΠΉΠ» (Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½), Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² | |
public partial class Form4: Form
Π€ΠΎΡΠΌΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ³ΡΡ
public Form4() | ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ | |
private void button1_Click (object sender, EventArgs e) | Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π½Π° ΡΠΊΡΠ°Π½, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» Ρ Π΄Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ³ΡΠΎΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ | |
private void button2_Click (object sender, EventArgs e) | ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° | |
4. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΠ° ΡΠΈΡ. 3 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡΠΌΠ΅Π½Π°Π₯ΠΎΠ΄Π°ToolStripMenuItem_Click ()
Π ΠΈΡ. 3. ΠΠ΅ΡΠΎΠ΄ ΠΎΡΠΌΠ΅Π½Π° Π₯ΠΎΠ΄Π°ToolStripMenuItem_Click ()
ΠΠ° ΡΠΈΡ. 4 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π° ReadMap ()
Π ΠΈΡ. 4. ΠΠ΅ΡΠΎΠ΄ ReadMap ()
ΠΠ° ΡΠΈΡ. 5 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π° OpenNextLevel ()
Π ΠΈΡ. 5. ΠΠ΅ΡΠΎΠ΄ OpenNextLevel ()
5. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΠΈΠ³ΡΡ Ρ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΡΠΈΡ.6):
Π ΠΈΡ. 6. ΠΠ°ΡΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΡΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ ΡΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΊΡΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΡΠ±ΠΈΠΊΠΈ. ΠΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π³ΠΎΡΡΡ ΠΊΡΠ±ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ, Π·Π΅Π»Π΅Π½ΡΠΌ — ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΡΠΎΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ (ΡΡΡΠ΅Π»ΠΊΠΈ Π²Π²Π΅ΡΡ , Π²Π½ΠΈΠ·, Π²ΠΏΡΠ°Π²ΠΎ, Π²Π»Π΅Π²ΠΎ), ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π²ΡΠ΅ ΡΡΠΈΠΊΠΈ Π½Π° ΠΌΠ΅ΡΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΡΠΈΡ.7):
Π ΠΈΡ. 7. ΠΠΊΠ½ΠΎ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ
ΠΠ΄Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ Π²Π°ΡΠ΅ ΠΈΠΌΡ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡΡ «ΠΠΎΡΠΎΠ²ΠΎ». Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ³ΡΡ. ΠΠ°Π»Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ.
Π ΠΈΠ³ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΡΠΎΠ²Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΌΠ΅Π½Ρ «Π€Π°ΠΉΠ»» ΠΏΡΠ½ΠΊΡ «ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠ°ΡΡΡ» ΠΈ ΠΎΡΠΊΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ:
Π ΠΈΡ. 8. ΠΠ΅Π½Ρ ΡΠ°ΠΉΠ» Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΡΠΎΠ²Π½Ρ Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΌΠ΅Π½Ρ «Π€Π°ΠΉΠ»» ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ «Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ"(ΡΠΈΡ. 9). ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ.
Π ΠΈΡ. 9. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Ρ ΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΌΠ΅Π½Ρ «Π€Π°ΠΉΠ»» Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ «ΠΡΠΌΠ΅Π½Π° Ρ ΠΎΠ΄Π°"(ΡΠΈΡ. 10). ΠΠ°Π³ΡΡΠ·ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΊΠ°ΡΡΠ΅.
Π ΠΈΡ. 10. ΠΡΠΌΠ΅Π½Π° Ρ ΠΎΠ΄Π° Π ΠΈΡ. 11. ΠΡΠΎΡΠΌΠΎΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ³ΡΡ ΠΈΠ³ΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΌΠ΅Π½Ρ «Π€Π°ΠΉΠ»» ΠΏΡΠ½ΠΊΡ «ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ». ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΠΈΠΌΡ ΠΈΠ³ΡΠΎΠΊΠ°, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ. ΠΠ°ΠΆΠΈΠΌΠ°Π΅ΠΌ «ΠΠΎΡΠΎΠ²ΠΎ»:
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ «Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅». ΠΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ ΠΈΠ³ΡΡ:
Π ΠΈΡ. 12. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΈΠ³ΡΠ° sokoban ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΡ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π°Π½Π°Π»ΠΎΠ³ ΠΈΠ³ΡΡ «Sokoban». ΠΠΎΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°.
ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
— ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ AMD 400 MHz (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ); ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ 32 ΠΠ±; Windows 95/98/NT; ΠΌΠΎΠ½ΠΈΡΠΎΡ.
ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
— ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ AMD 800 MHz (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ); ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ 64 ΠΠ±; Windows XP; ΠΌΠΎΠ½ΠΈΡΠΎΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ 32-ΡΡ Π±ΠΈΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ².
1. Microsoft Corporation — MSDN Library — January 2005;
2. ΠΠ΅ΡΠ±Π΅ΡΡ Π¨ΠΈΠ»Π΄ «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C/C++»;
3. ΠΠΆΠΎΡΠ΄ΠΆ Π¨Π΅ΡΠ΅ΡΠ΄ «ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Visual C++.Net»;
4. http://www.microsoft.com/Rus/Msdn/publish/articles