ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π˜Π³Ρ€Π° 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

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ