ΠΠΎΠΈΡΠΊ ΠΏΡΡΠΈ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ komnat. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΡΡΠ΅Π½ΠΎΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Ρ ΠΎΠ΄Π½Π°Ρ Π΄Π²Π΅ΡΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½Π°Ρ Π΄Π²Π΅ΡΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, Π° Π²Π΅ΡΠ²ΠΈ — ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠ½Π°ΡΠ°ΠΌ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠΈΡΠΊ ΠΏΡΡΠΈ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
- 1. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
- 1.1 ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
- 1.2 ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
- 1.3 Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
- 1.4 ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠ΅ΠΌΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ
- 1.5 Π’Π΅ΡΡΡ
- 2. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
- 2.1 ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ²
- 3. Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
- 3.1 ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 3.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠ° leaf
- 3.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠ° TForm1
- 3.4 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠ° TForm2
- Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
1. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
1.1 ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΡΠ»ΡΠΆΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «Π‘ΡΡΡΠΊΡΡΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ » .
1.2 ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ°Π΄Π°Π½ Π»Π°Π±ΠΈΡΠΈΠ½Ρ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°Ρ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΡΠ΅Ρ Π΄Π²Π΅ΡΠ΅ΠΉ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΠ΄Π½Π° ΠΈΠ· Π΄Π²Π΅ΡΠ΅ΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²Ρ ΠΎΠ΄ΠΎΠΌ Π² Π»Π°Π±ΠΈΡΠΈΠ½Ρ, Π΄ΡΡΠ³Π°Ρ — Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ°: ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ ΡΡΠ° Π·ΠΎΠ»ΠΎΡΡΡ ΠΌΠΎΠ½Π΅Ρ. ΠΠ°ΠΉΡΠΈ ΠΏΡΡΡ ΠΎΡ Π²Ρ ΠΎΠ΄Π° Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΊ Π΅Π³ΠΎ Π²ΡΡ ΠΎΠ΄Ρ, Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ Π΄Π²Π° ΡΠ°Π·Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ½Π΅ΡΡΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΊΡΠΎΠ²ΠΈΡ. ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π²ΡΠ΄Π΅Π»ΠΈΠ² ΡΠ²Π΅ΡΠΎΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ
ΠΡΠΈ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Borland C++Builder 6 Π² ΡΠΈΠ»Ρ Π»Π΅Π³ΠΊΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π‘ΡΠ°Π½Π΄Π°ΡΡΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΠΠ‘Π’ 19.701−90, ΠΠΠ‘Π’ 2.304−88. ΠΠ΄ΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΈΠ·Π΄Π΅Π»ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Β· Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»Π°Π±ΠΈΡΠΈΠ½Ρ, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π·Π°Π΄Π°Π½ΠΈΡ.
Β· Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ½Π΅Ρ, ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ ΡΡΠ°.
Β· ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΡΡΡ ΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π²Π΅ΡΠΈ ΠΊ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π²Π΅ΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ½Π΅ΡΡΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΊΡΠΎΠ²ΠΈΡ, ΠΈ Π²ΡΠ΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π΅Π»ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Windows. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°.
ΠΠΎΡΠΈΡΠ΅Π»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π΅Π»ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π½Π° Π΄ΠΈΡΠΊΠ΅ CD-R, Π»ΠΈΠ±ΠΎ Π½Π° ΠΆΠ΅ΡΡΠΊΠΎΠΌ Π΄ΠΈΡΠΊΠ΅, Π»ΠΈΠ±ΠΎ Π½Π° flash-Π½ΠΎΡΠΈΡΠ΅Π»Π΅.
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π±ΡΠ΄ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ½Π΅Ρ, ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ Π½Π° ΡΡΠΎΠΌ ΠΏΡΡΠΈ, ΠΈ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠΌΠ½Π°Ρ Π² ΠΏΡΡΠΈ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ komnat. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΡΡΠ΅Π½ΠΎΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Ρ ΠΎΠ΄Π½Π°Ρ Π΄Π²Π΅ΡΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½Π°Ρ Π΄Π²Π΅ΡΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, Π° Π²Π΅ΡΠ²ΠΈ — ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠ½Π°ΡΠ°ΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ. ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ° Π²Π΅ΡΠΊΠ° Π΄ΠΎΡΡΠΈΠ³Π»Π° Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΡΠΎ ΠΏΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ, Π° ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ° ΡΡΠΌΠΌΠΈΡΡΡΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π²ΡΠ΅ Π²Π΅ΡΠ²ΠΈ, Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π΄Π²Π΅ΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°ΠΌΠΈ.
Π Π΅ΡΡΠ°ΡΡ
Π ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΠ°ΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠ΅ΡΡΠ°ΡΡΠ΅ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΎΡΡΠ°Π²Ρ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π΄ΡΡΠ²
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 300 ΠΠ±, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 12 ΠΠ±, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1024×768, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ 80 486 ΠΈΠ»ΠΈ Π²ΡΡΠ΅.
Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ·Π΄Π΅Π»ΠΈΡ
Π€Π°ΠΉΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ LABIRINT. exe.
1.3 Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ:
1) ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅;
2) ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ;
3) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π»ΠΈΡΡΠΈΠ½Π³ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ).
1.4 ΠΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΈΠ΅ΠΌΠΊΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ
ΠΡΠΈΠ΅ΠΌΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ΄Π°ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΡ ΡΡΠ°ΠΏΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ². Π’Π΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π΄Π΅Π»ΠΈΡ.
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ borland builder
1.5 Π’Π΅ΡΡΡ
Π’Π΅ΡΡ № 1
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ: Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.1).
Π ΠΈΡΡΠ½ΠΎΠΊ 1.1 Π’Π΅ΡΡ № 1
Π’Π΅ΡΡ № 2
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ: ΠΊΠ»ΠΈΠΊ ΠΌΡΡΡΡ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ.
Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠΎΠΌ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.2).
Π’Π΅ΡΡ № 3
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ: ΠΊΠ»ΠΈΠΊ ΠΌΡΡΡΡ ΠΏΠΎ Π»Π°Π±ΠΈΡΠΈΠ½ΡΡ Ρ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ.
Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.2), Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ. ΠΡΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠΈΡΠΊΠ° Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ: Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ Π»Π°Π±ΠΈΡΠΈΠ½Ρ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.3), Π° Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΡΠΈ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.4, 1.5).
Π ΠΈΡΡΠ½ΠΎΠΊ 1.2 Π’Π΅ΡΡ № 2,3
Π ΠΈΡΡΠ½ΠΎΠΊ 1.3 Π’Π΅ΡΡ № 3
Π ΠΈΡΡΠ½ΠΎΠΊ 1.4 Π’Π΅ΡΡ № 3
Π ΠΈΡΡΠ½ΠΎΠΊ 1.5 Π’Π΅ΡΡ № 3
Π’Π΅ΡΡ № 4
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ: Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΡΠΎΠ±Π΅Π»»
Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.2, 1.6, 1.7).
Π ΠΈΡΡΠ½ΠΎΠΊ 1.4 Π’Π΅ΡΡ № 6
Π ΠΈΡΡΠ½ΠΎΠΊ 1.4 Π’Π΅ΡΡ № 7
Π’Π΅ΡΡ № 5
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ: Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Escape Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ.
Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ Π΄ΠΎΡΡΠΎΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ (ΡΠΌ. ΡΠΈΡΡΠ½ΠΎΠΊ 1.3, 1.4, 1.5).
2. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
2.1 ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ²
3. Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ
3.1 ΠΠ±ΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π΅Π»ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 2 ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΈΠ·Π΄Π΅Π»ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ TCanvas. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΠΌΡΡΠΈ.
3.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠ° leaf
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ leaf: leaf ()
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π²Π΅ΡΠ²Π΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π° Π΄Π΅ΡΠ΅Π²Π° ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: kids.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° bool leaf: IsVisited (int x, int y, leaf* obj)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: int x, int y — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ, leaf* obj — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΉ ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π°.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π±ΡΠ»Π΅Π²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠΎΠΉ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ obj->parent. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΊΠΎΠΌΠ½Π°Ρ Π½Π°ΡΠ»Π°ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΠ° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ x ΠΈ Ρ, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ true, ΠΈΠ½Π°ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ false.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void leaf: SetNewLeaf (leaf *obj, int n)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π° leaf* obj, Π½ΠΎΠΌΠ΅Ρ ΡΠ·Π»Π° int n.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π΄Π΅ΡΠ΅Π²Π°.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void leaf: Tracing (leaf* obj, int n)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ·Π΅Π» ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ leaf* obj, Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ int n.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΊΠΎΠΌΠ½Π°ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΠΈΠ· ΡΠ·Π»Π° Π΄Π΅ΡΠ΅Π²Π° ΠΏΠΎΠΈΡΠΊΠ° obj ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ·Π΅Π» Π² Π΄Π΅ΡΠ΅Π²Π΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° a.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void leaf: GrowTree (TPoint p, leaf* obj)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π° leaf* obj, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ TPoint p.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠΎΠΉ. ΠΡΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ ΠΌΠΎΠ½Π΅Ρ ΠΈ ΠΏΡΡΡ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ, ΠΈΠ½Π°ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠ½Π°Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° a.
3.3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠ° TForm1
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void __fastcall TForm1: Image1Click (TObject *Sender)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π½Π΅Ρ.
3.4 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠ° TForm2
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void CreateLabirint ()
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ, Π·Π°ΡΠ΅ΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ° ΠΈ ΠΎΡ Π½Π΅Π΅ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²Ρ ΠΎΠ΄Π½Π°Ρ ΠΈ Π²ΡΡ ΠΎΠ΄Π½Π°Ρ Π΄Π²Π΅ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° a, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°Ρ A ΠΈ B.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void Draw ()
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±ΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΈ ΡΠΈΡΠ»Π° (Π½ΠΎΠΌΠ΅ΡΠ° ΠΊΠΎΠΌΠ½Π°Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ½Π΅Ρ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ), Π·Π°ΡΠ΅ΠΌ ΠΈΠ· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±ΡΡΠ΅Ρ buffer, ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ int info, ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° a.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void InNul ()
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π½ΠΎΠΌΠ΅ΡΠ° Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΎΠ±Π½ΡΠ»ΡΡΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° a.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void __fastcall TForm2: FormKeyPress (TObject *Sender, char &Key)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΡΡΠ»ΠΊΠ° Π½Π° Π½Π°ΠΆΠ°ΡΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ &Key, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ *Sender.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π°ΠΆΠ°ΡΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ°. ΠΡΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ΅ «ΠΡΠΎΠ±Π΅Π»» ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΏΡΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ΅ «Escape» ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΡΡΡ. ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ int info, Π±ΡΠ»Π΅Π²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ — Π·Π°ΠΏΡΡΠ΅Π½ Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ — bool process.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void __fastcall TForm2: FormCloseQuery (TObject *Sender, bool &CanClose)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΡΡΠ»ΠΊΠ° Π½Π° Π±ΡΠ»Π΅Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — &CanClose, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ *Sender.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΡΠΈ, ΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»ΠΈΡΠ°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΊΡΡΡΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π±ΡΠ»Π΅Π²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ — Π·Π°ΠΏΡΡΠ΅Π½ Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ — bool process.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void __fastcall TForm2: FormClose (TObject *Sender, TCloseAction &Action)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΡΡΠ»ΠΊΠ° Π½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ &Action, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ *Sender.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void __fastcall TForm2: FormClick (TObject *Sender)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ *Sender.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: ΠΊΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° root, Π±ΡΠ»Π΅Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ — ΡΠ»Π°Π³ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠΈΡΠΊΠ° process, ΡΠ»Π°Π³ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠΈΡΠΊΠ° newprocess, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΡΡ ΡΠΎΠΊΡΠΎΠ²ΠΈΡ — int max, ΠΌΠ°ΡΡΠΈΠ² ΠΊΠΎΠΌΠ½Π°Ρ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° a.
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° void __fastcall TForm2: FormCreate (TObject *Sender)
ΠΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ *Sender.
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅Ρ.
ΠΡΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ: ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π»Π°Π±ΠΈΡΠΈΠ½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±ΡΡΠ΅Ρ buffer.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
1 ΠΠΎΠ·Π³ΠΎΠ²ΠΎΠΉ Π. Π. ΠΠ°Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ. 1-Π΅ ΠΈΠ·Π΄. [Π’Π΅ΠΊΡΡ] - Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2004. — 208 Ρ.
2 ΠΡΠ»ΡΡΠΈΠ½ Π. Π. C/C++ ΠΈ Π² Π·Π°Π΄Π°ΡΠ°Ρ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. [Π’Π΅ΠΊΡΡ] - Π‘ΠΠ±.: ΠΠ₯Π — ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2011. — 368 Ρ.
3 ΠΡΡ Π°Π³Π΅Π»ΡΡΠΊΠΈΠΉ Π. Π―. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++ Builder 6. [Π’Π΅ΠΊΡΡ] - Π.: ΠΠΈΠ½ΠΎΠΌ, 2008. — 1152 Ρ.: ΠΈΠ».
4 ΠΡ ΠΎ Π. Π., Π₯ΠΎΠΏΠΊΡΠΎΡΡ Π. Π., Π£Π»ΡΠΌΠ°Π½ Π. Π. Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. [Π’Π΅ΠΊΡΡ] - Π‘ΠΠ±.: ΠΠΈΠ»ΡΡΠΌΡ, 2000. — 382 Ρ.: ΠΈΠ».
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠΈΡΡΠΈΠ½Π³ ΡΠ°ΠΉΠ»Π° Unit1. cpp
// —————————————————————————————————————;
#include
#pragma hdrstop
#include «Unit1. h»
#include «Unit2. h»
// —————————————————————————————————————;
#pragma package (smart_init)
#pragma resource «*. dfm»
TForm1 *Form1;
// —————————————————————————————————————;
__fastcall TForm1: TForm1 (TComponent* Owner)
: TForm (Owner)
{
}
// —————————————————————————————————————;
void __fastcall TForm1: Image1Click (TObject *Sender)
{
Form1->Visible = false;
Form2->Visible = true;
Form2->Show ();
Form2->SetFocus ();
Form2->FormClick (Form2);
}
// —————————————————————————————————————;
ΠΠΈΡΡΠΈΠ½Π³ ΡΠ°ΠΉΠ»Π° Unit2. cpp
// —————————————————————————————————————;
#include
#pragma hdrstop
#include «Unit1. h»
#include «Unit2. h»
// —————————————————————————————————————;
#pragma package (smart_init)
#pragma resource «*. dfm»
TForm2 *Form2;
// ΡΡΡΡΠΊΡΡΡΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ
struct komnata{
// ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΠ° ΠΏΡΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ
bool stena;
// ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ°
int sokrovihe;
// Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΏΡΡΠΈ
int number;
};
// ΡΡΡΡΠΊΡΡΡΠ° ΡΠ·Π»Π° Π΄Π΅ΡΠ΅Π²Π° (ΠΊΠΎΠΌΠ½Π°ΡΡ), ΡΡΡΠΎΡΡΠ΅Π³ΠΎΡΡ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΡΠΈ
struct leaf{
// ΡΠΎΡΠΊΠ°, Π΅Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ — ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ
// ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
TPoint id;
// ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π½Π΅Π³ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ
int mone;
// ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ
leaf* parent;
// ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ
leaf** kids;
// ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠ·Π»Π°
leaf () {
// Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠ½Π°Ρ
kids = new leaf* [4];
for (int i=0; i<4; i++)
kids [i] =NULL;
}
bool IsVisited (int x, int y, leaf* obj);
void SetNewLeaf (leaf *obj, int n);
void Tracing (leaf* obj, int n);
void GrowTree (TPoint p, leaf* obj);
};
// ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
const int N = 15;
// ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· ΠΊΠΎΠΌΠ½Π°Ρ
komnata a [N] [N];
// ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΡ ΡΠΎΠΊΡΠΎΠ²ΠΈΡ
int max = 0;
// ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
int info = 0;
// ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°
leaf* root = NULL;
// ΡΠΎΡΠΊΠΈ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΠΌΠ½Π°Ρ Π²Ρ ΠΎΠ΄Π° ΠΈ Π²ΡΡ ΠΎΠ΄Π°
TPoint A, B;
// Π±ΡΠ» Π»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ
bool process = false;
// Π±ΡΠ» Π»ΠΈ ΠΏΡΠ΅ΡΠ²Π°Π½ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ
bool newprocess = false;
// Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±ΡΡΠ΅Ρ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
Graphics: TBitmap *buffer = new (Graphics: TBitmap);
// —————————————————————————————————————;
__fastcall TForm2: TForm2 (TComponent* Owner)
: TForm (Owner)
{
}
// —————————————————————————————————————;
// ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
void CreateLabirint ()
{
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²Π΅Π·Π΄Π΅ ΡΡΠ΅Π½Ρ
for (int i=0; i<=N; i++)
for (int j=0; j<=N; j++) {
a [i] [j]. stena = true;
a [i] [j]. sokrovihe=random (99) +1;
a [i] [j]. number=0; }
// ΡΠ΅ΠΊΡΡΠ°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ° ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ
int x, y, c;
// Π΄Π΅Π»Π°Π΅ΠΌ N/2 ΡΠΈΠΊΠ»ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΡΠΈΠ΄ΠΎΡΠΎΠ²
for (int i=0; i<=N/2; i++) {
// Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ Π²Π½ΡΡΡΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
x = random (N-2) +1;
y = random (N-2) +1;
// Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ
c = random (4);
// Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡΠΎΠ² ΠΊΠΎΡΠΈΠ΄ΠΎΡΠ°
for (int d = random (3) +2; d>=0; d—) {
// Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ½Π°Ρ Π΄ΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°
for (int k = random (3) +2; k>=0; k—) {
switch © {
// ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½
case 0: x++; break;
case 1: y++; break;
case 2: x—; break;
case 3: y—; break; }
// ΡΠ°ΠΌΡΠ΅ ΠΊΡΠ°ΠΉΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΠ°ΠΌΡ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ
if (x<=0||y<=0||x>=N-2||y>=N-2) break;
a [x] [y]. stena = false; }
// ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
c = (c+1) %4; }}
// ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠΎΠΈΡΡ ΠΏΡΡΡ
A. x=0; A. y=0;
while (A. x==0&&A. y==0)
if (a [x=random (N)] [y=random (N)]. stena==false)
{A. x=x; A. y=y; };
// ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠΎΠΈΡΡ ΠΏΡΡΡ
B. x=0; B. y=0;
while (B. x==0&&B. y==0)
if (a [x=random (N)] [y=random (N)]. stena==false)
{B. x=x; B. y=y; };
}
// ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ°
void Draw ()
{
// ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ΅ΡΠΊΠΈ Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ° ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
int n=buffer->Height/N;
int m=buffer->Width/N;
// Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ
buffer->Canvas->Brush->Color = clWhite;
buffer->Canvas->Pen->Color = clWhite;
buffer->Canvas->Rectangle (0,0,buffer->Width, buffer->Height);
// ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠΌ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΊΠΎΠΌΠ½Π°Ρ
for (int i=0; i
for (int j=0; j
// Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΡΠ΅Π½Π°, ΡΠΎ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ ΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ
if (a [i] [j]. stena) {
buffer->Canvas->Pen->Color = clBlack;
buffer->Canvas->Brush->Color = clBlack;
buffer->Canvas->Rectangle (i*m, j*n, i*m+m, j*n+n);
}else{
// Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ°, ΡΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ
switch (int inf=info) {
// Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
case (0): {
buffer->Canvas->Brush->Color = clWhite;
buffer->Canvas->Font->Color = clRed;
// Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ° Π²Ρ ΠΎΠ΄Π°, ΡΠΎ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ ΠΆΠ΅Π»ΡΡΠΌ
if (i==A. x&&j==A. y) {
buffer->Canvas->Brush->Color = clYellow;
buffer->Canvas->Pen->Color = clYellow;
buffer->Canvas->Font->Color = clBlack;
buffer->Canvas->Rectangle (i*m, j*n, i*m+m, j*n+n); }
// Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ° Π²ΡΡ ΠΎΠ΄Π°, ΡΠΎ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π³ΠΎΠ»ΡΠ±ΡΠΌ
if (i==B. x&&j==B. y) {
buffer->Canvas->Brush->Color = clSkyBlue;
buffer->Canvas->Pen->Color = clSkyBlue;
buffer->Canvas->Font->Color = clBlack;
buffer->Canvas->Rectangle (i*m, j*n, i*m+m, j*n+n); }
// Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ½Π΅Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±ΡΠ°ΡΡ Π² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅
buffer->Canvas->TextOutA (i*m+1,j*n+1, IntToStr (a [i] [j]. sokrovihe));
// Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½Π΅ Π²Π΅Π΄Π΅Ρ ΠΏΡΡΡ, ΡΠΎ ΡΡ ΠΎΠ΄ΠΈΠΌ
if (a [i] [j]. number==0) continue;
// ΠΈΠ½Π°ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΏΡΡΠΈ
String s=IntToStr (a [i] [j]. number);
// Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅
int I=i*m+m-buffer->Canvas->TextWidth (s);
int J=j*n+n-buffer->Canvas->TextHeight (s);
buffer->Canvas->Brush->Color = clLime;
buffer->Canvas->Font->Color = clBlack;
// ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° Π·Π΅Π»ΡΠ½ΠΎΠΌ ΡΠΎΠ½Π΅
buffer->Canvas->TextOutA (I, J, s);
break; }
// ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ
case 1: {
buffer->Canvas->Brush->Color = clLime;
buffer->Canvas->Pen->Color = clBlack;
buffer->Canvas->Font->Color = clBlack;
// ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ°
buffer->Canvas->Font->Size+=3;
// Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ Π½Π°Π΄ΠΏΠΈΡΠΈ
String s=IntToStr (a [i] [j]. number);
int I=buffer->Canvas->TextWidth (s);
int J=buffer->Canvas->TextHeight (s);
// ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π΅Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅
int x=i*m+ (m-I) /2;
int y=j*n+ (n-J) /2;
// Π΅ΡΠ»ΠΈ ΡΡΠ° ΠΊΠΎΠΌΠ½Π°ΡΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΏΡΡΡ ΡΠΎ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π΅Π΅
if (a [i] [j]. number==0)
buffer->Canvas->Brush->Color = clWhite;
buffer->Canvas->Rectangle (i*m, j*n, i*m+m, j*n+n);
// ΠΈΠ½Π°ΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π½ΠΎΠΌΠ΅Ρ ΠΎΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ
if (a [i] [j]. number! =0)
buffer->Canvas->TextOutA (x, y, s);
buffer->Canvas->Font->Size-=3;
break; }
// Π²ΡΠ²ΠΎΠ΄ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ°Ρ
case 2: {
buffer->Canvas->Font->Color = clBlack;
buffer->Canvas->Brush->Color = clYellow;
buffer->Canvas->Pen->Color = clBlack;
buffer->Canvas->Font->Size+=3;
// Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π½Π°Π΄ΠΏΠΈΡΠΈ
String s=IntToStr (a [i] [j]. sokrovihe);
int I=buffer->Canvas->TextWidth (s);
int J=buffer->Canvas->TextHeight (s);
int x=i*m+ (m-I) /2;
int y=j*n+ (n-J) /2;
// Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΏΡΡΡ, ΡΠΎ ΡΠΎΠ½ Π΄Π΅Π»Π°Π΅ΠΌ Π±Π΅Π»ΡΠΌ
if (a [i] [j]. number==0)
buffer->Canvas->Brush->Color = clWhite;
buffer->Canvas->Rectangle (i*m, j*n, i*m+m, j*n+n);
buffer->Canvas->TextOutA (x, y, s);
buffer->Canvas->Font->Size-=3; }
}}
// ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ Π²ΡΠ΅ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° Π² ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Form2->Canvas->CopyRect (TRect (0,0,Form2->Width, Form2->Height),
buffer->Canvas, TRect (0,0,Form2->Width, Form2->Height));
}
// ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ½Π°ΡΡ
bool leaf: IsVisited (int x, int y, leaf* obj)
// ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΡΡΠ°
void leaf: SetNewLeaf (leaf *obj, int n)
{
// Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΡ
obj->kids [n] =new leaf;
// Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠΉ
obj->kids [n] - >parent = obj;
}
// ΡΠ΅Π²Π΅ΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ΠΏΡΡΠΈ
void leaf: Tracing (leaf* obj, int n)
{
if (obj! =NULL) {
// ΠΎΡΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n
a [obj->id. x] [obj->id. y]. number=n;
// ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ n-1
Tracing (obj->parent, n+1); }
}
// ΡΡΠ½ΠΊΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ½Π°Ρ Π² 0
void InNul ()
{
for (int i=0; i
for (int j=0; j
a [i] [j]. number=0;
}
// ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΡΠΈ Π² Π»Π°Π±ΠΈΡΠΈΠ½ΡΠ΅
// Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°Ρ
void leaf: GrowTree (TPoint p, leaf* obj)
{
// ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: Π½Π°ΠΆΠ°ΡΠΈΡ ΠΌΡΡΠΈ, ΠΊΠ»Π°Π²ΠΈΡ
Application->ProcessMessages ();
// Π΅ΡΠ»ΠΈ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ
// ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
if (info==1)
Form2->Caption="ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΠ° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ «+IntToStr (p. x) +» ," +IntToStr (p. y) +". «;
if (info==2)
if (max! =0)
Form2->Caption="Π’Π΅ΠΊΡΡΠΈΠΉ ΠΏΡΡΡ Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΌΠΎΠ½Π΅Ρ: «+IntToStr (max)
+"; ΡΠ΅ΡΠ΅Π· «+IntToStr (a [A. x] [A. y]. number) +» ΠΊΠΎΠΌΠ½Π°Ρ" ;
else
Form2->Caption="ΠΡΡΡ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½" ;
// Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π±ΡΠ°Π½Π½ΡΡ ΠΌΠΎΠ½Π΅Ρ
if (obj->parent == NULL)
obj->mone=a [p. x] [p. y]. sokrovihe;
else
obj->mone=obj->parent->mone+a [p. x] [p. y]. sokrovihe;
// Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ
obj->id = p;
// Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ — ΡΡΠΎ ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΡΠΈ
if (p. x==B. x&&p. y==B. y) {
// Π΅ΡΠ»ΠΈ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ½Π΅Ρ
// ΠΈΠ»ΠΈ Π½Π°ΡΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ
if (max==0||obj->mone>max) {
// Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ½Π΅Ρ
max=obj->mone;
// ΠΎΠ±Π½ΡΠ»ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ
InNul ();
// Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ
Tracing (obj, 1);
// ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ
Draw ();
}
// ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ
delete [] obj->kids;
delete obj;
// Π²ΡΡ ΠΎΠ΄ΠΈΠΌ
return;
}
// Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ Escape
// ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ
if (! newprocess) {
if (! a [p. x-1] [p. y]. stena&&! IsVisited (p. x-1,p. y, obj))
SetNewLeaf (obj, 0);
if (! a [p. x+1] [p. y]. stena&&! IsVisited (p. x+1,p. y, obj))
SetNewLeaf (obj, 1);
if (! a [p. x] [p. y-1]. stena&&! IsVisited (p. x, p. y-1,obj))
SetNewLeaf (obj, 2);
if (! a [p. x] [p. y+1]. stena&&! IsVisited (p. x, p. y+1,obj))
SetNewLeaf (obj, 3);
// ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ
if (obj->kids [0]! =NULL)
GrowTree (TPoint (p. x-1,p. y), obj->kids [0]);
if (obj->kids [1]! =NULL)
GrowTree (TPoint (p. x+1,p. y), obj->kids [1]);
if (obj->kids [2]! =NULL)
GrowTree (TPoint (p. x, p. y-1), obj->kids [2]);
if (obj->kids [3]! =NULL)
GrowTree (TPoint (p. x, p. y+1), obj->kids [3]);
}
// ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ
delete [] obj->kids;
delete obj;
}
// —————————————————————————————————————;
// ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ
void __fastcall TForm2: FormKeyPress (TObject *Sender, char &Key)
{
// Π΅ΡΠ»ΠΈ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ ΠΡΠΎΠ±Π΅Π», ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
if (Key==VK_SPACE)
info = (info+1) %3;
// Π΅ΡΠ»ΠΈ Escape, ΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΡΡΠΎΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ
// ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°
if (Key==VK_ESCAPE)
newprocess = true;
// ΠΏΡΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
if (info==0)
if (process)
Caption="ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΡΠΈ. (Π²ΠΊΠ»/ΠΎΡΠΊΠ» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ — ΠΡΠΎΠ±Π΅Π»)" ;
else
Caption="ΠΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½ (Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ Π²ΠΈΠ΄Π° — ΠΡΠΎΠ±Π΅Π»)" ;
if (! info&&! process)
Caption="Π’Π΅ΠΊΡΡΠΈΠΉ ΠΏΡΡΡ Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΌΠΎΠ½Π΅Ρ: «+IntToStr (max)
+"; ΡΠ΅ΡΠ΅Π· «+IntToStr (a [A. x] [A. y]. number) +» ΠΊΠΎΠΌΠ½Π°Ρ" ;
Draw ();
}
// Π΅ΡΠ»ΠΈ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠΎ Π½Π΅Π»ΡΠ·Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ
// —————————————————————————————————————;
void __fastcall TForm2: FormCloseQuery (TObject *Sender, bool &CanClose)
{
if (process) CanClose=false;
}
// —————————————————————————————————————;
// Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
void __fastcall TForm2: FormClose (TObject *Sender, TCloseAction &Action)
{
Application->Terminate ();
}
// —————————————————————————————————————;
// Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ
void __fastcall TForm2: FormClick (TObject *Sender)
{
// Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½, ΡΠΎ ΡΠ²Π΅Π΄ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΈ ΡΡ ΠΎΠ΄ΠΈΠΌ
if (process) {
Caption="ΠΠ΄Π΅Ρ ΠΏΠΎΠΈΡΠΊ. ΠΠ»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Escape" ;
return; }
// Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π»Π°Π±ΠΈΡΠΈΠ½Ρ
newprocess = false;
CreateLabirint ();
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΡΠ΅Π½Ρ Π΄Π΅ΡΠ΅Π²Π°
root = new leaf;
root->parent = NULL;
max = 0;
info = 0;
// ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡΠΎ Π»Π°Π±ΠΈΡΠΈΠ½Ρ
Draw ();
Caption="ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΡΠΈ. (Π²ΠΊΠ»/ΠΎΡΠΊΠ» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ — ΠΡΠΎΠ±Π΅Π»)" ;
process = true;
// ΠΈΡΠ΅ΠΌ ΠΏΡΡΡ.
root->GrowTree (A, root);
// ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ
Draw ();
// Π΅ΡΠ»ΠΈ ΡΠ°ΠΊ ΠΈ Π½Π΅ Π½Π²ΡΠ»ΠΈ
if (max==0) {
Caption="ΠΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ! ΠΠ°Π±ΠΈΡΠΈΠ½Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ!" ;
ShowMessage («ΠΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ! ΠΠ°Π±ΠΈΡΠΈΠ½Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ!»);
} else {
// Π΅ΡΠ»ΠΈ Π½Π°ΡΠ»ΠΈ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Caption = «ΠΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½!» ;
ShowMessage («ΠΠ°ΠΉΠ΄Π΅Π½ ΠΏΡΡΡ, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· „+IntToStr (a [A. x] [A. y]. number) +“ ΠΊΠΎΠΌΠ½Π°Ρ»);
ShowMessage («Π‘ΠΎΠ±ΡΠ°Π½ΠΎ ΠΌΠΎΠ½Π΅Ρ: «+IntToStr (max)); }
process = false;
}
// —————————————————————————————————————;
// ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°
void __fastcall TForm2: FormCreate (TObject *Sender)
{
buffer->Width=Form2->Width;
buffer->Height=Form2->Height;
Draw ();
}
// —————————————————————————————————————;