ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ Β«Π‘Π°ΠΏΠ΅ΡΒ»
ΠΠ»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΡΠΊ, Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΏΡΠ½ΠΊΡΠ΅ ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Microsoft Visual Studio .NET 2005Microsoft Visual Studio .NET 2005. ΠΠ°Π»Π΅Π΅ Π² Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Open Project ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ, Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» Π‘Π°ΠΏΠ΅Ρ.sln. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ»ΡΠΊΠΎΠΌ Design. ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ Β«Π‘Π°ΠΏΠ΅ΡΒ» (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ
«ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠΈΠΉ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°»
ΠΠ°Π»ΡΠΆΡΠΊΠΈΠΉ ΡΠΈΠ»ΠΈΠ°Π» ΠΊΠ°ΡΠ΅Π΄ΡΠ°
«Π‘ΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ»
ΠΠΎΡΡΠ½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΠΊΠ° ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅:
«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ»
Π½Π° ΡΠ΅ΠΌΡ:
«ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³ΡΡ „Π‘Π°ΠΏΠ΅Ρ“»
ΠΠ°Π»ΡΠ³Π° 2007
- Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅3
- 1.ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ4
- 1.1.ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»
- 1.2.Π¦Π΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ·ΡΠΊΠ°
- 2.ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
- 2.1.Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- 2.2. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² C#.
- 2.2.1.ΠΠ»Π°ΡΡΡ
- 2.2.2.Π§Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°
- 3.Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
- 3.1.Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
- 3.2.ΠΠ°ΠΏΡΡΠΊ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³ΡΡ.
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΌΠ° ΠΌΠΎΠ΅ΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ «ΠΈΠ³ΡΠ° „Π’Π΅ΡΡΠΈΡ“». Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π»ΠΈ:
Ρ ΠΈΠ·ΡΡΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Windows ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ;
Ρ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΡΠΈ Π½Π°Π²ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ 2D Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ Π² Windows ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π² Π‘#;
Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π».
ΠΠ°Π΄Π°ΡΠ΅ΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ³ΡΡ «Π‘Π°ΠΏΠ΅Ρ» Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠ½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π».
ΠΠ°Π½Π°Ρ ΡΠ΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Ρ ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³ΡΡ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Windows ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ 2D Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ, Π° «Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» — ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π°ΠΆΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Ρ Π½Π° Π²ΠΎΠ»Ρ ΡΠ»ΡΡΠ°Ρ» (ΠΠΆΠΎΠ½ ΡΠΎΠ½ ΠΠ΅ΠΉΠΌΠ°Π½).
1.ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
1.1.ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»
ΠΠ»Ρ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π² ΠΈΠ³ΡΠ΅ «Π‘Π°ΠΏΠ΅Ρ» Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ Ρ ΠΌΠΈΠ½ΠΎΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» (ΠΠΠ‘Π§) — Π°Π»Π³ΠΎΡΠΈΡΠΌ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π», ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΈ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. 1]
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π² ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ — ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΠΎΠ½ΡΠ΅-ΠΠ°ΡΠ»ΠΎ Π΄ΠΎ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠΈ. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΈΠΌΠΈΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
Π’Π΅ΡΠΌΠΈΠ½ ΠΠΠ‘Π§ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΠΠ‘Π (PRBG) — Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π±ΠΈΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠΎΠ². ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΠΠ‘Π§ — Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ . ΠΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, Π° ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π».
Π‘Π°ΠΌΡΠ΅ ΠΏΡΠΎΡΡΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΠ‘Π§ (ΠΠΠ‘Π§) ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΡ Π΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΡΠΏΠΎΡΠ½ΠΎ Π±ΠΎΡΠΎΠ»ΠΈΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ — ΡΡ Π΅ΠΌΠΎΡΠ΅Ρ Π½ΠΈΠΊΠΈ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ — ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠΌΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ±ΠΎΡΠ°.
Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΠΠΠ‘Π§ ΡΡΠΎΠΈΡ Π²ΡΠ½Π΅ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½Π°Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΡΠ»ΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ²Π΅ΡΠ° ΠΠΠ‘-ΠΌΠ°ΡΡΠΈΡΠ° ΠΊΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π² Π½Π°ΠΈΡ ΡΠ΄ΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΌΠΎΠ²ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Ρ ΠΈ ΠΊΠ°ΡΡΠΈΠ½Π° ΡΠΈΡΡΠΎΠ³ΠΎ, ΠΏΡΠΈΡΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ Π°ΠΎΡΠ° ΠΏΡΠΈΠ³ΠΎΠ΄Π½Π° ΠΊ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΡΠΎΡΠΎΠΌΡ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΠΠΠ‘Π§ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ «ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ». ΠΠ΄Π΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ «ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ½ΡΡΠΎΠΏΠΈΠΈ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ±ΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² ΠΠ΅ΠΉΠ³Π΅ΡΠ°-ΠΡΠ»Π»Π΅ΡΠ°. ΠΠ΅ΠΏΡΠΈΡΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π΄ΠΈΠΎΠΈΠ·ΠΎΡΠΎΠΏΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ².
Π’ΡΠ΅ΡΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΠΠ‘Π§ΡΡΠΎ «ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ» ΠΊΠ»Π°ΡΡ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠΊΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Ρ «ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ » ΠΠΠ‘Π§ — ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ²Π°Π½ΡΠΎΠ²ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»". Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°ΠΌΠ°Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ° ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΡ ΡΡ 100 ΡΡΡ. ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ ΠΊΠ»Π°ΡΡ ΠΠΠ‘Π§ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ Π½Π°Π·Π²Π°ΡΡ «ΠΏΠ°ΡΠ°Π·ΠΈΡΠ½ΡΠΌ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎ-ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ». Π ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠ»ΠΎΠ²ΡΠ΅ ΡΡΠΌΡ ΠΈ ΡΠ»ΡΠΊΡΡΠ°ΡΠΈΠΈ Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π·Π²ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°.
Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ «ΠΊΡΡΡΠ΅Π·Π½ΡΡ » ΠΠΠ‘Π§ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠ±ΠΎΡΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ½ΠΎ Π±ΡΠΎΡΠ°ΡΡΠΈΡ … ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ³ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΡΡΠΈ ΠΈ ΠΎΡΠ½Π°ΡΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π²ΡΠΏΠ°Π²ΡΠΈΡ ΠΎΡΠΊΠΎΠ².
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΡΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Ρ ΠΎΡΡ ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ, Π½ΠΎ ΡΡΡΠ°Π΄Π°ΡΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΡΡΠ·Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ²:
Ρ Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄/ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ
Ρ ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ
Ρ ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΈΡΡ «ΠΌΠ΅Π½Π΅Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½Ρ», ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅
Ρ ΠΠ΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Ρ ΠΠ±ΡΠ°ΡΠΈΠΌΠΎΡΡΡ ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΌΠ΅ΡΠΎΠ΄ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ Π·Π°ΠΏΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡΠΌΠΈ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°, ΠΠΈΡ ΡΡ ΠΠ΅ΡΡΠ΅Π½Π½Π°.
ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
ΠΠ°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΠ» ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π. Π₯. ΠΠ΅ΠΌΠ΅ΡΠΎΠΌ Π² 1948 Π³ΠΎΠ΄Ρ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠΎΠΉΠΊΠΎΡΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ.
ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΠΌΡΠ»Ρ (1):
(1)
Π³Π΄Π΅ a > 0, c > 0, M > 0 — Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. ΠΠΎΠ»ΡΡΠ°Π΅ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° X0 ΠΈ ΠΏΡΠΈ ΡΠ°Π·Π½ΡΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π». Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Xj ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² Π² ΡΠΎΡΠΌΡΠ»Π΅ ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. Π―ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π», Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ°ΠΊΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½Π° Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΎΠΌ, Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠΈΠΌ m. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π»ΠΈΠ½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΡΠ°Π²Π½Π° m ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π°:
1. ΠΠΠ (c, m) = 1 (ΡΠΎ Π΅ΡΡΡ c ΠΈ m Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΏΡΠΎΡΡΡ);
2. a — 1 ΠΊΡΠ°ΡΠ½ΠΎ p Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΡ p — Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ m;
3. a — 1 ΠΊΡΠ°ΡΠ½ΠΎ 4, Π΅ΡΠ»ΠΈ m ΠΊΡΠ°ΡΠ½ΠΎ 4.
ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ m = 2e, Π³Π΄Π΅ e — ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ»ΠΎΠ²Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π€ΠΎΡΠΌΡΠ»Π° (2) Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ n-ΠΉ ΡΠ»Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π·Π½Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ 0-ΠΉ
(2)
ΠΠ΅ΡΠΎΠ΄ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ Π·Π°ΠΏΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡΠΌΠΈ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ , ΡΡΠ΅Π±ΡΡΡΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ. 2]
Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΠ²ΠΎΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΈ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎ Π·Π°Π½ΡΠ»ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΠ΅Π²ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ , ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΠΊ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π».
ΠΠ°ΠΈΠ±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΠ΅Π²Ρ Π΄Π°ΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ ΡΡΠ°Π²Π½ΡΠ»Π°ΡΡ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, Π° ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΠ΅Π²Ρ Π΄Π°ΡΡΠΈΠΊΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π² Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΠ΅Π²ΡΡ Π΄Π°ΡΡΠΈΠΊΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΡΠ»Π΅ (3):
X (k) = left{ begin{matrix} X (k-a)-X (k-b), & mbox{if } X (k-a)geq X (k-b); \ X (k-a)-X (k-b)+1, & mbox{if } X (k-a) < X (k-b);end{matrix}right. (3)
Π³Π΄Π΅ X (k) — Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΡΠ»Π° ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° [0, 1),
a, b — ΡΠ΅Π»ΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π»Π°Π³Π°ΠΌΠΈ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΠ΅Π²Ρ Π΄Π°ΡΡΠΈΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°ΡΡ max (a, b) ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π». ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π° Π±Π°Π·Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ»Ρ ΡΡΠ°ΡΡΠ° ΡΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΠ΅Π²ΠΎΠΌΡ Π΄Π°ΡΡΠΈΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ max (a, b) ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΌ Π΄Π°ΡΡΠΈΠΊΠΎΠΌ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: a = 55, b = 24; a = 17, b = 5;
a = 97, b = 33.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π° (Blum Blum Shub, BBS)
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² 1986 Π³ΠΎΠ΄Ρ ΠΠ΅Π½ΠΎΡ ΠΈ ΠΠ°Π½ΡΡΠ»Π΅ΠΌ ΠΠ»ΡΠΌ ΠΈ ΠΠ°ΠΉΠΊΠ»ΠΎΠΌ Π¨ΡΠ±ΠΎΠΌ.
BBS Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΡΠΌΡΠ»Ρ (4):
xn+1 = (xn)2 mod M (4)
Π³Π΄Π΅ M=p*q ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΡ p ΠΈ q.
ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· xn ΠΏΡΡΡΠΌ Π²Π·ΡΡΠΈΡ Π»ΠΈΠ±ΠΎ Π±ΠΈΡΠ° ΡΡΡΠ½ΠΎΡΡΠΈ, Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΡΡ Π±ΠΈΡ xn.
ΠΠ²Π° ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ»Π°, p ΠΈ q, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±Π° ΡΡΠ°Π²Π½ΠΈΠΌΡ Ρ 3 ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 4 ΠΈ ΠΠΠ (?(p-1), ?(q-1)) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ°Π».
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΡΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ xn Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΠ΅ n — 1 ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΈΡΠ΅Π», Π΅ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° x0 ΠΈ ΡΠΈΡΠ»Π° p ΠΈ q. n-Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΎ «Π½Π°ΠΏΡΡΠΌΡΡ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠΌΡΠ»Ρ (5):
xn = x0 (2 ^ n) mod ((p-1)(q-1)) mod M (5)
ΠΠΈΡ ΡΡ ΠΠ΅ΡΡΠ΅Π½Π½Π° (Mersenne twister)
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π² 1997 ΡΠΏΠΎΠ½ΡΠΊΠΈΠΌΠΈ ΡΡΡΠ½ΡΠΌΠΈ ΠΠ°ΠΊΠΎΡΠΎ ΠΠ°ΡΡΠΌΠΎΡΠΎ ΠΈ Π’Π°ΠΊΡΠ΄Π·ΠΈ ΠΠΈΡΠΈΠΌΡΡΠ°. ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΡΡΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ ΡΡΡΡΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ, Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ Π² Π΄ΡΡΠ³ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ .
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π²Π° ΠΎΠ±ΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΠΈΡ ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΠ΅ΡΡΠ΅Π½Π½Π°. ΠΠΎΠ²Π΅ΠΉΡΠΈΠΉ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Mersenne Twister MT 19 937.
MT 19 937 ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
1. ΠΠ½ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ ΡΠ΅Π»ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 219 937? 1.
2. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ²ΠΈΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ.
3. ΠΠ½ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ-Π΄Π΅ΡΠ΅ΠΊΡΠ½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ².
4. ΠΠ½ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΡΡΠ°Π΅Π½ Π²ΠΎ Π²ΡΠ΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π±ΠΈΡΠ°Ρ .
ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠ° Random Π² Π‘#.
Π§ΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ Random. ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ Random ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π ΠΊΠ»Π°ΡΡΠ΅ Random ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°:
public Random ()
public Random (int seed)
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Random, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠΎΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ seed.
ΠΠ»Π°ΡΡ Random (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ)
//ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ
Random ()
Random (int Π°);
//ΠΠ΅ΡΠΎΠ΄Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
int Next () ;
int Next (int ΠΌΠ°ΠΊΡ_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) ;
int Next (int ΠΌΠΈΠ½_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, int ΠΌΠ°ΠΊΡ_Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) ;
double NextDouble () ;
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π». ΠΠ΅ΡΠΎΠ΄Ρ Next Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. NextDouble Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0.0 Π΄ΠΎ 1.0.
Π‘ΡΠ°Π²Π½ΠΈΠ² ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Ρ Π²ΡΠ±ΡΠ°Π», ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Random, Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ:
Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ;
Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ.
1.2.Π¦Π΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ·ΡΠΊΠ°
Π ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π±ΡΠ»Π° ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π·Π°Π΄Π°ΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ. ΠΡΠΎ:
1. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Windows ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π² ΡΠ°Π±ΠΎΡΠ΅
3. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌ
4. ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
5. ΠΡΠΎΡΡΠΎΡΠ° ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π·Π½Π°Π½ΠΈΠΉ.
ΠΠ΅ΡΠ²ΡΠΉ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΡΠ΅Π·ΠΊΠΎ ΠΎΡΡΠ΅ΠΊΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ², Ρ. ΠΊ. ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π‘ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π² ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π‘ΠΎΡΠ½ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° ΡΡΠΈ ΠΎΠ±ΡΠΈΡ ΡΠΈΠΏΠ°: ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅, Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠ΅ ΠΈ ΡΠ·ΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
ΠΠ°ΡΠΈΠ½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π΅ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ. ΠΠ°ΡΠΈΠ½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ, Ρ. Π΅. ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°ΠΌΠΈ. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΎΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΡΡ Π΅ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ Π·Π°Π΄Π°Ρ.
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠ·ΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ-ΠΎΠ΄ΠΈΠ½ΠΎΡΠΊΠ΅ ΠΈΠ»ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΌΠΎΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, Π²ΡΠΎΠ΄Π΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Visual Basic, C++Builder, Π‘#, Delphi) ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠΏΠ° Borland C++ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ OWL ΠΈΠ»ΠΈ MFC. [3]
ΠΡΡΠ½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ «Π±ΡΡΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ», ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Borland Delphi, Microsoft Visual Basic. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Visual Basic ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Windows Π½Π΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ, Π½ΠΎ ΠΎΠ½ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ (Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π²).
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Windows, ΡΠΎ Π½Π΅Π»ΡΠ·Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ C++Builder. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ ΡΡΠ΄ΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠ°ΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΡΠ΅Π΄Π΅ Windows, Ρ. ΠΊ. Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΡΠ» Borland C++ for Windows, ΡΠ²Π½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ², ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΠΎΠΏΡΡΠΎΠΌ. C++ Builder Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½Π°Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΎΡΠΎΠ±ΠΎΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Ρ C++ Builder Π½Π° ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΡΠΆΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ. Π‘++ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Delphi — ΡΡΠΎ ΡΡΠ΅Π΄Π° Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊ Delphi. Π―Π·ΡΠΊ Delphi — ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ Object Pascal. Borland Delphi 7 Studio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΎΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ. DelphiΠ½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠΈ Π²ΡΠ΅ΠΌ ΡΡΠΎΠΌ Π²ΡΠ±ΠΎΡ ΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΠ·ΡΠΊ Π‘#, Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π² Visual Studio .Net, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
C# ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ Microsoft, ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ .NET Framework. Microsoft ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»Π° C# ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π±Ρ Π‘, Π‘++ ΠΈ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½Π΅Π³ΠΎ. C# ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΡΠ½ΠΈ Π² ΡΠ·ΡΠΊΠ°Ρ Π‘, Π‘++ ΠΈ Java, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ C# Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΊΠ°ΠΊ Ρ Π‘++, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³ΡΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π½Π° Π‘++, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π½Π° C#, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ (ΡΡΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°).
Π‘# - ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Π²Π΅ΡΡΠΈΡΠΌΠΈ .NET Framework Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
C# ΠΈΠΌΠ΅Π΅Ρ ΡΡ ΠΎΠΆΠΈΠΉ Ρ C ΡΡΠΈΠ»Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° (Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ.), ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ Java (ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°) ΠΈ Delphi (ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ), Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΠΈ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΡΠΈΡ.
C# ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° .NET[7].
Π C# ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ Π² Java. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ², Π΄Π΅Π»Π°Ρ ΠΊΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΡΠΊΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠΏΠΎΠ², ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ΄Π΅Ρ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ (ΠΊΠ°ΠΊ Π² Java), Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ²ΠΈΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, C# ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° .Net ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΠΆΠ½ΡΡ ΡΠ»ΡΠΆΠ±:
1. .Net ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π½Π° C#. ΠΡΠ° ΡΠ°ΡΡΡ .Net Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ΅Π΄ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
2. .Net ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΡΠ΅Π΄Ρ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΊ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
3. .Net ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΎΡ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
4. .Net ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
5. Π ΡΠΎΡΡΠ°Π² .Net Π²Ρ ΠΎΠ΄ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΌΠ°ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ . ΠΠ½Π° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π½Π΅ΠΌΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ½ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΈ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ Microsoft.
6. Π .Net ΡΠΏΡΠΎΡΠ΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
7. .Net ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ .Net, ΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π‘# ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΠΎΠ½ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π²ΡΠ΅ΠΌ ΡΠ°Π½Π΅Π΅ ΠΎΠ·Π²ΡΡΠ΅Π½Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ.
2.ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
2.1.Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
Ρ Form1. cs — ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΊΠΎΠ΄, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ°Π±ΠΎΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
Ρ Form1. resx — ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ «Π‘Π°ΠΏΠ΅Ρ»;
Ρ Form2. cs — ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΊΠΎΠ΄, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΠΌΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ;
Ρ Form2. resx — ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΡΠΌΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ;
Ρ AboutBox1. cs — ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΊΠΎΠ΄, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΠΌΡ «Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»;
Ρ AboutBox1. resx — ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΡΠΌΡ «Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»;
Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ°. htm — HTML-ΡΡΡΠ°Π½ΠΈΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ ΠΈΠ³ΡΠ΅;
Ρ ΠΠΈΠ½Π°. jpg — ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½Ρ Π½Π° ΡΠΎΡΠΌΠ΅ «Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»
Ρ Π‘Π°ΠΏΠ΅Ρ. exe — Π·Π°ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ debug, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin
2.2. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² C#.
ΠΠ»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΡΠΊ, Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΏΡΠ½ΠΊΡΠ΅ ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Microsoft Visual Studio .NET 2005Microsoft Visual Studio .NET 2005. ΠΠ°Π»Π΅Π΅ Π² Π·Π°ΠΏΡΡΡΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Open Project ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ, Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ» Π‘Π°ΠΏΠ΅Ρ.sln. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ»ΡΠΊΠΎΠΌ Design. ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΡΠΌΡ, ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΠ² ΠΈΡ ΠΈΠ· ΠΎΠΊΠ½Π° Toolbox. Π ΠΌΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠΎ HelpProvider ΠΈ MenuStrip ΠΏΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ, Label, TextBox ΠΈ Button ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΡΠΌΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π·Π°ΠΉΠ΄Ρ Π² ΠΌΠ΅Π½Ρ View — Properties Windows ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
//Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
this.Text = String. Format («Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»);
this.labelProductName.Text = «CΠ°ΠΏΠ΅Ρ» ;
this.labelVersion.Text = String. Format («ΠΠ΅ΡΡΠΈΡ {0}», AssemblyVersion);
this.labelCopyright.Text = «ΠΠ²ΡΠΎΡ Π’Π΅ΠΌΠ΅ΡΠ΅Π² ΠΠΈΡΠΈΠ»Π»» ;
this.labelCompanyName.Text = «ΠΠ€ ΠΠΠ’Π£ ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°, Π³ΡΡΠΏΠΏΠ° Π‘ΠΠΠ -31» ;
this.textBoxDescription.Text ="ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°Π½Π° Π² Microsoft Visual Studio
Π©Π΅Π»ΠΊΠ½ΡΠ² Π·Π½Π°ΡΠΎΠΊ ΠΠΎΠ»Π½ΠΈΡ Π² ΠΌΠ΅Π½Ρ Properties ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ² Π½Π° ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ , Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ.
2.2.1.ΠΠ»Π°ΡΡΡ
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π»ΡΠ±Π°Ρ ΡΠΎΡΠΌΠ°, ΡΠ²Π»ΡΡΡΠ°ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΊΠ»Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΄Π°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠΎΡΠΌ ΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΠΎΠ΄Π½ΠΈ ΡΠΎΡΠΌΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ . Π ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΡΠΌΠ°ΠΌ Windows ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
public partial class Form1: Form //Π³Π»Π°Π²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
{
…
public Form1() //ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ
{
InitializeComponent ();
//ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠΌ
MR = 10;
MC = 10;
NM = 10;
W = 40;
H = 40;
this.newGame (1);//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° newGame (int r)
}
…
}
public partial class Form2: Form //ΡΠΎΡΠΌΠ° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
{
…
public Form2()//ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΡΠΌΡ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
{
InitializeComponent ();
}
…
}
partial class AboutBox1: Form //ΡΠΎΡΠΌΠ° «Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»
{
…
public AboutBox1()//ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΡΠΌΡ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
{
InitializeComponent ();
//Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
this.Text = String. Format («Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅»);
this.labelProductName.Text = «CΠ°ΠΏΠ΅Ρ» ;
this.labelVersion.Text = String. Format («ΠΠ΅ΡΡΠΈΡ {0}», AssemblyVersion);
this.labelCopyright.Text = «ΠΠ²ΡΠΎΡ Π’Π΅ΠΌΠ΅ΡΠ΅Π² ΠΠΈΡΠΈΠ»Π»» ;
this.labelCompanyName.Text = «ΠΠ€ ΠΠΠ’Π£ ΠΈΠΌ. Π. Π. ΠΠ°ΡΠΌΠ°Π½Π°, Π³ΡΡΠΏΠΏΠ° Π‘ΠΠΠ -31» ;
this.textBoxDescription.Text ="ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ·Π΄Π°Π½Π° Π² Microsoft Visual Studio 2005 Π΄Π»Ρ ΡΡΠ΅Π΄Ρ .NET Framework" ;
}
…
}
2.2.2.Π§Π»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°
ΠΠΎΠ»Ρ
ΠΠΎΠ»Π΅ΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Π½-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΠΠΠ ΠΏΠΎΠ»Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²
public partial class Form1: Form
public partial class Form2: Form
ΠΏΠΎΠ»ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
private int
MR,//ΠΊΠΎΠ»-Π²ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
MC,//ΠΊΠΎΠ»-Π²ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ
NM,//ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½
W,//ΡΠΈΡΠΈΠ½Π° ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ»Ρ
H;//Π²ΡΡΠΎΡΠ° ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ»Ρ
private int
nMin,//ΠΊΠΎΠ»-Π²ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΌΠΈΠ½
nFlag;//ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»Π°Π³ΠΎΠ²
private int status;/*ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
0-Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ³ΡΡ,
1-ΠΈΠ³ΡΠ°,
2-ΠΊΠΎΠ½Π΅Ρ ΠΈΠ³ΡΡ*/
private int[,] Pole;/*ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°Π΄Π°Π΅Ρ ΠΊΠ»Π΅ΡΠΊΡ ΠΏΠΎΠ»Ρ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
0−8 -ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½ Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠ°Ρ ,
9 -Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΌΠΈΠ½Π°,
100−109 -ΠΊΠ»Π΅ΡΠΊΠ° ΠΎΡΠΊΡΡΡΠ°,
200−209 -Π² ΠΊΠ»Π΅ΡΠΊΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ ΡΠ»Π°Π³*/
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Pole Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΡΡΠ»ΠΊΡ Π½Π° Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΠ°ΡΡΠΈΠ²Ρ Π² C# ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π½Π° Π΄Π²Π° ΡΠΈΠΏΠ°: ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅.
ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² — «ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ» Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ .
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
Pole = new int[MR + 2, MC + 2];
ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅
private void newGame (int r)
{
}
ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π΄Π°Π»Π΅Π΅.
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° [ ], Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ. ΠΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅:
private void newGame (int r)
{
…
/*Π½Π΅ΠΎΡΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -3 Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ*/
for (row = 0; row <= MR + 1; row++)
{
Pole[row, 0] = -3;
Pole[row, MC + 1] = -3;
}
for (col = 0; col <= MC + 1; col++)
{
Pole[0, col] = -3;
Pole[MR + 1, col] = -3;
}
//ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
for (row = 1; row <= MR; row++)
{
for (col = 1; col <= MC; col++)
{
Pole[row, col] = 0;
}
}
…
}
Π° ΡΠ°ΠΊΠΆΠ΅ Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ .
ΠΠ΅ΡΠΎΠ΄Ρ
ΠΠ΅ΡΠΎΠ΄ΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΈΠ»ΠΈ ΠΏΠΎΠ»Ρ). ΠΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΠΈΠ΄Π°:
<οΏ½ΠΌΠΎΠ΄ΠΈΡ_Π΄ΠΎΡΡ><οΏ½ΡΠΈΠΏ_Π²ΠΎΠ·Π²Ρ_Π·Π½Π°Ρ><οΏ½ΠΈΠ΄Π΅Π½Ρ_ΠΌΠ΅ΡΠΎΠ΄Π°>(<οΏ½ΡΠΎΡΠΌΠ°Π»ΡΠ½_ΠΏΠ°ΡΠ°ΠΌ>opt)
{
<οΏ½ΡΠ΅Π»ΠΎ_ΠΌΠ΅ΡΠΎΠ΄Π°>
}
ΠΠ΅ΡΠΎΠ΄ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½ΠΎ ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ void.
ΠΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³ΡΡ:
private void newGame (int r)//ΠΌΠ΅ΡΠΎΠ΄, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ Π½ΠΎΠ²ΡΡ ΠΈΠ³ΡΡ
{
…
//Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½
int random = r;
if (random == 1)
{
this.Rand ();//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Rand ()
}
if (random == 2)
{
this.Lin ();//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Lin ()
}
if (random == 3)
{
this.BBS ();//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° BBS ()
}
…
}
//ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½
private void Rand ()//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Random
{
int n = 0;//ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΌΠΈΠ½
int row, col;
Random rnd = new Random ();//Π³Π΅Π½Π΅ΡΠ΅ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»
//ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½
do
{
row = rnd. Next (MR) + 1;
col = rnd. Next (MC) + 1;
if (Pole[row, col] ≠ 9)
{
Pole[row, col] = 9;
n++;
}
}
while (n ≠ NM);
}
private void Lin ()//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°
{
int n = 0;
int row, col;
double a = Convert. ToInt64(Math.Exp ((double)5 * Math. Log (7))),
m = Convert. ToInt64(Math.Exp ((double)31 * Math. Log (2))) — 1;
int x = 27 011 989, c = 19;
//ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½
do
{
//Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π₯ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΡΠ»Π° x (k+1)=(a * x (k) + c) mod m
x = (int)((a * x + c) % m);
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MR]
row =Convert.ToInt32(Math.Ceiling ((double) MR * x / (m-1)));
x = (int)((a * x + c) % m);
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MΠ‘]
col = Convert. ToInt32(Math.Ceiling ((double)MC * x / (m-1)));
if (Pole[row, col] ≠ 9)
{
Pole[row, col] = 9;
n++;
}
}
while (n ≠ NM);
}
private void BBS ()//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°
{
int n = 0;
int row, col;
int x = 2701;
int p=2047,q=8191;
int M = p * q;
//ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½
do
{
//Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π₯ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΡΠ»Π° x (k+1)=(x (k)^2) mod m
x = Math. Abs ((int)((x * x) % M));
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MR]
row = Convert. ToInt32(Math.Ceiling ((double)MR * x / (M-1)));
x = Math. Abs ((int)((x * x) % M));
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MΠ‘]
col = Convert. ToInt32(Math.Ceiling ((double)MC * x / (M-1)));
if (Pole[row, col] ≠ 9)
{
Pole[row, col] = 9;
n++;
}
}
while (n ≠ NM);
}
private void showPole (Graphics g, int status)//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠ»Π΅
{
for (int row = 1; row <= MR; row++)
{
for (int col = 1; col <= MC; col++)
{
this.kletka (g, row, col, status);//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° kletka ()
}
}
}
private void kletka (Graphics g, int row, int col, int status)
//ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
{
…
// Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΡΠ»Π°Π³
if (Pole[row, col] >= 200)
this.flag (g, x, y);
//ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ
g.DrawRectangle (Pens.Black, x — 1, y — 1, x + W, y + H);
// Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½Π° (status=2), ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΌΠΈΠ½Ρ
if ((status == 2) && ((Pole[row, col] % 10) == 9))
this.mina (g, x, y);
…
}
private void open (int row, int col)//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΡ ΠΈ Π²ΡΠ΅ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΠΌΠΈΠ½
{
…
//ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΊΡΡΡΠΈΡ Π²ΡΠ΅ΠΉ ΠΏΡΡΡΡΡ ΡΠΎΡΠ΅Π΄ΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ
if (Pole[row, col] == 0)
{
Pole[row, col] = 100;
//ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
this.Invalidate (new Rectangle (x, y, W, H));
//ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΈΠΌΡΠΊΠ°ΡΡΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠ»Π΅Π²Π°, ΡΠΏΡΠ°Π²Π°, ΡΠ²Π΅ΡΡ Ρ, ΡΠ½ΠΈΠ·Ρ
this.open (row, col — 1);
this.open (row — 1, col);
this.open (row, col + 1);
this.open (row + 1, col);
//ΠΏΡΠΈΠΌΡΠΊΠ°ΡΡΠΈΠ΅ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΠ½ΠΎ
this.open (row — 1, col — 1);
this.open (row — 1, col + 1);
this.open (row + 1, col — 1);
this.open (row + 1, col + 1);
}
…
}
Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ:
private void mina (Graphics g, int x, int y)//ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΡΡΡΡΠΈΠΉ ΠΌΠΈΠ½Ρ
{
//ΠΊΠΎΡΠΏΡΡ
g.FillRectangle (Brushes.Green, x + 16, y + 26, 8, 4);
g.FillRectangle (Brushes.Green, x + 8, y + 30, 24, 4);
g.DrawPie (Pens.Black, x + 6, y + 28, 28, 16, 0, -180);
g.FillPie (Brushes.Green, x + 6, y + 28, 28, 16, 0, -180);
//ΠΏΠΎΠ»ΠΎΡΠ° Π½Π° ΠΊΠΎΡΠΏΡΡΠ΅
g.DrawLine (Pens.Black, x + 12, y + 32, x + 28, y + 32);
//Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ «ΡΡ»
g.DrawLine (Pens.Black, x + 20, y + 22, x + 20, y + 26);
//Π±ΠΎΠΊΠΎΠ²ΡΠ΅ «ΡΡΡ»
g.DrawLine (Pens.Black, x + 8, y + 30, x + 6, y + 28);
g.DrawLine (Pens.Black, x + 32, y + 30, x + 34, y + 28);
}
private void flag (Graphics g, int x, int y)//ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΡΡΡΡΠΈΠΉ ΡΠ»Π°Π³
{
Point[] p = new Point[3];
Point[] m = new Point[5];
//ΡΠ»Π°ΠΆΠΎΠΊ
p[0]. X = x + 4;
p[0]. Y = y + 4;
p[1]. X = x + 30;
p[1]. Y = y + 12;
p[2]. X = x + 4;
p[2]. Y = y + 20;
g.FillPolygon (Brushes.Red, p);
//Π΄ΡΠ΅Π²ΠΊΠΎ
g.DrawLine (Pens.Black, x + 4, y + 4, x + 4, y + 35);
//Π±ΡΠΊΠ²Π° Π Π½Π° ΡΠ»Π°ΠΆΠΊΠ΅
m[0]. X = x + 8;
m[0]. Y = y + 14;
m[1]. X = x + 8;
m[1]. Y = y + 8;
m[2]. X = x + 10;
m[2]. Y = y + 10;
m[3]. X = x + 12;
m[3]. Y = y + 8;
m[4]. X = x + 12;
m[4]. Y = y + 14;
g.DrawLines (Pens.White, m);
}
Π‘ΠΎΠ±ΡΡΠΈΡ
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°. Π‘ΠΎΠ±ΡΡΠΈΡ — Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Microsoft Windows. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ±ΡΡΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΌΡΡΠΈ, ΡΠ΅Π»ΡΠΊΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°. ΠΠ°ΠΆΠ½Π΅ΠΉΡΡΡ ΡΠΎΠ»Ρ ΠΈΠ³ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ— ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ:
private void Π‘Π°ΠΏΠ΅Ρ_MouseDown (object sender, MouseEventArgs e)//Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅
{
}
private void Π½ΠΎΠ²Π°ΡΠΠ³ΡΠ°ToolStripMenuItem1_Click (object sender, EventArgs e) //ΡΠ΅Π»ΡΠΎΠΊ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ ΠΌΠ΅Π½Ρ ΠΠΎΠ²Π°Ρ ΠΈΠ³ΡΠ°
{
this.newGame (1);
this.Invalidate ();
}
//ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅Π»ΡΠΊΠΎΠ² Π½Π° ΠΏΡΠ½ΠΊΡΠ°Ρ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ ΠΈ ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½
private void ΠΌΠΈΠ½ToolStripMenuItem_Click (object sender, EventArgs e)
{
}
private void ΠΌΠΈΠ½ToolStripMenuItem1_Click (object sender, EventArgs e)
{
}
private void ΠΌΠΈΠ½ToolStripMenuItem2_Click (object sender, EventArgs e)
{
}
private void ΠΌΠΈΠ½ToolStripMenuItem3_Click (object sender, EventArgs e)
{
}
private void ΠΌΠΈΠ½ToolStripMenuItem4_Click (object sender, EventArgs e)
{
}
private void ΠΌΠΈΠ½ToolStripMenuItem5_Click (object sender, EventArgs e)
{
}
private void ΠΎΡΠΎΠ±ΡΠ΅ToolStripMenuItem_Click (object sender, EventArgs e) //ΡΠ΅Π»ΡΠΎΠΊ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ ΠΌΠ΅Π½Ρ ΠΡΠΎΠ±ΡΠ΅
{
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ settings = new ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ();//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΠΎΡΠΌΡ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
settings.ShowDialog ();//ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
//ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π²Π΅Π΄Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
MR = settings. MR;
MC = settings. MC;
NM = settings. NM;
W = 30;
H = 30;
this.newGame (1);
this.Invalidate ();
}
//ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅Π»ΡΠΊΠΎΠ² Π½Π° ΠΏΡΠ½ΠΊΡΠ°Ρ ΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½
private void randomToolStripMenuItem_Click (object sender, EventArgs e)
{
}
private void ΠΈΠ½Π΅ΠΉΠ½ΡΠΉΠΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉΠΠ΅ΠΎToolStripMenuItem_Click (object sender, EventArgs e)
{
}
private void Π°Π»Π³ΠΎΡΠΈΡΠΌToolStripMenuItem_Click (object sender, EventArgs e)
{
}
private void Π²ΡΡ ΠΎΠ΄ToolStripMenuItem_Click (object sender, EventArgs e)
//ΡΠ΅Π»ΡΠΎΠΊ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ ΠΌΠ΅Π½Ρ ΠΡΡ ΠΎΠ΄
{
this.Close ();
}
private void ΡΠΏΡΠ°Π²ΠΊΠ°ToolStripMenuItem_Click (object sender, EventArgs e) //ΡΠ΅Π»ΡΠΎΠΊ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ ΠΌΠ΅Π½Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ°
{
Help.ShowHelp (this, this. helpProvider1.HelpNamespace);//Π²ΡΠ·ΠΎΠ² ΡΠ°ΠΉΠ»Π° ΡΠΏΡΠ°Π²ΠΊΠΈ
}
private void ΠΎΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ToolStripMenuItem_Click (object sender, EventArgs e) //ΡΠ΅Π»ΡΠΎΠΊ Π½Π° ΠΏΡΠ½ΠΊΡΠ΅ ΠΌΠ΅Π½Ρ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
{
AboutBox1 saper = new AboutBox1();//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΠΎΡΠΌΡ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
saper.ShowDialog ();//ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
}
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Paint, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΎΠΊΠ½Π΅. Paint ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ»ΠΈ Π΅Π΅ ΡΠ°ΡΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π° (invalid) ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠΎΠ³Π΄Π° ΡΠΎΡΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π°, Π²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΅ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π² Π½Π΅ΠΉ Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π»Π°. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Paint, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ΅Π΅ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠΎΠ³Π΄Π° ΠΎΠΊΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, Windows Π½Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π²ΠΈΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π·Π°ΠΊΡΡΡΠΎΠΉ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. ΠΠΎΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅ Π²ΠΈΠ΄. ΠΠΎΡΡΠΎΠΌΡ Π² Π½Π΅ΠΉ ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Paint. ΠΠΎΠ³Π΄Π° ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅ ΡΠ²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π² Π½Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Paint.
private void Form1_Paint (object sender, PaintEventArgs e)//ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ
Paint
{
this.showPole (e.Graphics, status); //Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° showPole
}
3.Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ
3.1.Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
1. ΠΡΠΎΡΠ΅ΡΡΠΎΡ Pentium 3.
2. Π§Π°ΡΡΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° 800 ΠΠ³Ρ.
3. 256 ΠΠ± ΠΠΠ£.
4. ΠΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ Radeon 9600 ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅.
5. Visual Studio 2003 ΠΈΠ»ΠΈ 2005.
6. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Windows 2000 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ
3.2.ΠΠ°ΠΏΡΡΠΊ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³ΡΡ.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
1.ΠΡΡΠ°Π²ΡΡΠ΅ Π΄ΠΈΡΠΊ «ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π’Π΅ΠΌΠ΅ΡΠ΅Π²Π° Π., Π³Ρ. Π‘ΠΠΠ -31. ΠΠ³ΡΠ° „Π‘Π°ΠΏΠ΅Ρ“» Π² Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΄.
2.
— Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΡΠΊ
— Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ΅Π»ΡΠΊΠΎΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ
— Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΎΡΠΊΡΠΎΠΉΡΠ΅
3.ΠΠ° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ (ΡΠΌ. ΡΠΈΡ. 3.1)
4.ΠΡΠ»ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° .NET Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΊΡ Microsoft .NET Framework 3.0 ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ΅Π»ΡΠΊΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» dotnetfx3.exe
5.ΠΠ°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΡΠ΅Π»ΡΠΊΠΎΠΌ Π½Π° ΡΠ°ΠΉΠ»Π΅
Π¦Π΅Π»Ρ ΠΈΠ³ΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΌΠΈΠ½Ρ Π½Π° ΠΌΠΈΠ½Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅, Π½Π΅ Π²ΡΠΊΡΡΠ² Π½ΠΈ ΠΎΠ΄Π½Ρ ΠΈΠ· Π½ΠΈΡ .
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΈΠ³ΡΡ Π² ΠΌΠ΅Π½Ρ ΠΠ³ΡΠ° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΠΎΠ²Π°Ρ ΠΈΠ³ΡΠ° (ΡΠΈΡ. 3.2).
ΠΠ³ΡΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΡΡΡΡ Π»ΡΠ±ΡΡ ΡΡΠ΅ΠΉΠΊΡ, ΡΠ΅Π»ΠΊΠ½ΡΠ² Π΅Π΅ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ΅ΠΉΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΈΠ½Ρ, ΠΈΠ³ΡΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ ΠΌΠΈΠ½Ρ Π½Π΅Ρ, Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΈΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²ΠΎΡΡΠΌΠΈ ΡΠΌΠ΅ΠΆΠ½ΡΡ Ρ Π½Π΅ΠΉ ΡΡΠ΅ΠΉΠΊΠ°Ρ .
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΡΠ΅ΠΉΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠΈΠ½Π°, Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π»ΠΊΠ½ΡΡΡ Π΅Π΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ.
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² ΠΌΠ΅Π½Ρ ΠΠ³ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ (ΡΠΈΡ. 3.2), Π° Π΄Π°Π»Π΅Π΅:
Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ 10 * 10 ΠΈΠ»ΠΈ 20 *20, Π·Π°ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠ½ 10, 15, 20, 40, 60
ΠΈΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΡΠΎΠ±ΡΠ΅ ΠΈ Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ, ΡΠΊΠ°Π·Π°Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π²Π΅ΡΡΠΈ ΡΠΈΡΠ»ΠΎ ΠΌΠΈΠ½. (ΡΠΈΡ. 3.3)
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½ Π½Π° ΠΏΠΎΠ»Π΅, Π² ΠΌΠ΅Π½Ρ ΠΠ³ΡΠ° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π‘ΠΏΠΎΡΠΎΠ± ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½, Π° Π΄Π°Π»Π΅Π΅:
Ρ Random
Ρ ΠΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄
Ρ ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°.
Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΈΠ³ΡΠ΅, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΌΠ΅Π½Ρ Π‘ΠΏΡΠ°Π²ΠΊΠ°, Π° Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ±ΡΠ°ΡΡ
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»: Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΌΠ΅ΡΠΎΠ΄ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ Π·Π°ΠΏΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡΠΌΠΈ, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°, ΠΠΈΡ ΡΡ ΠΠ΅ΡΡΠ΅Π½Π½Π°.
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Ρ: ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Random, Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π° Π² ΡΠ²ΡΠ·ΠΈ Ρ ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ.
ΠΡΠ΄Π²ΠΈΠ½ΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΈΠ³ΡΡ «Π‘Π°ΠΏΠ΅Ρ» ΠΈ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΠΈ, ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ ΡΠ΄Π΅Π»Π°Π½ Π²ΡΠ±ΠΎΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠ·ΡΠΊΠ° Π‘#.
Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π·Π½Π°Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ ΡΠ·ΡΠΊΠ° Π‘# ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΈΠ³ΡΡ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠΎΡΡΠΎΡΠ»Π° ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΠΎ Π·Π°ΠΏΡΡΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡΡΡΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.
1. ΠΠ½ΡΡ Π. ΠΡΠΊΡΡΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Ρ. 2. ΠΠΎΠ»ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΡΠ.: «ΠΠΈΠ»ΡΡΠΌΡ», 2007. — Π‘. 832.
2. ΠΡΠ±ΠΈΠ½ΡΠΊΠΈΠΉ Π. Π ΠΏΠΎΠΈΡΠΊΠ°Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠΈ. — ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ΅ ΠΠ±ΠΎΠ·ΡΠ΅Π½ΠΈΠ΅,
29 (2003)
3. Π¨ΠΈΠ»Π΄Π³ Π. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ Π‘#/ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «ΠΠΈΠ»ΡΡΠΌc», 2004. — 752 Ρ.
4. ΠΠ°ΡΡΠΎΠ½ Π. Π‘#. — Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΎΡΠΈ», 2005
5. Π ΠΈΡ ΡΠ΅Ρ ΠΠΆ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Microsoft .NET Framework. — Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΎ-ΡΠΎΡΠ³ΠΎΠ²ΡΠΉ Π΄ΠΎΠΌ «Π ΡΡΡΠΊΠ°Ρ Π Π΅Π΄Π°ΠΊΡΠΈΡ», 2003.-464 Ρ.
6. Π€ΡΠΎΠ»ΠΎΠ² Π. Π. Π€ΡΠΎΠ»ΠΎΠ² Π. Π. Π―Π·ΡΠΊ Π‘#. Π‘Π°ΠΌΠΎΡΡΠΈΡΠ΅Π»Ρ. — Π: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «ΠΠΠΠΠΠ-ΠΠΠ€Π», 2003. — 560 Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
public partial class Form1: Form //Π³Π»Π°Π²Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
{
private int
MR,//ΠΊΠΎΠ»-Π²ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
MC,//ΠΊΠΎΠ»-Π²ΠΎ ΠΊΠ»Π΅ΡΠΎΠΊ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ
NM,//ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½
W,//ΡΠΈΡΠΈΠ½Π° ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ»Ρ
H;//Π²ΡΡΠΎΡΠ° ΠΊΠ»Π΅ΡΠΊΠΈ ΠΏΠΎΠ»Ρ
private int
nMin,//ΠΊΠΎΠ»-Π²ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ ΠΌΠΈΠ½
nFlag;//ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»Π°Π³ΠΎΠ²
private int status;/*ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
0-Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ³ΡΡ,
1-ΠΈΠ³ΡΠ°,
2-ΠΊΠΎΠ½Π΅Ρ ΠΈΠ³ΡΡ*/
private int[,] Pole;/*ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°Π΄Π°Π΅Ρ ΠΊΠ»Π΅ΡΠΊΡ ΠΏΠΎΠ»Ρ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
0−8 -ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½ Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠ°Ρ ,
9 -Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΠΌΠΈΠ½Π°,
100−109 -ΠΊΠ»Π΅ΡΠΊΠ° ΠΎΡΠΊΡΡΡΠ°,
200−209 -Π² ΠΊΠ»Π΅ΡΠΊΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ ΡΠ»Π°Π³*/
private void newGame (int r)/*ΠΌΠ΅ΡΠΎΠ΄, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ Π½ΠΎΠ²ΡΡ ΠΈΠ³ΡΡ;
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° r ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΏΠΎΡΠΎΠ± ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½
1-ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Random,
2-ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄,
3-ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°*/
{
this.ClientSize = new Size (W * MC + 1, H * MR + 1+25);/*ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΡΠΌΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ
Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ*/
int row, col;//ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ
int k;//ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½ Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠ°Ρ
Pole = new int[MR + 2, MC + 2]; //ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
/*Π½Π΅ΠΎΡΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -3
Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΠΊΠ»Π΅ΡΠΎΠΊ*/
for (row = 0; row <= MR + 1; row++)
{
Pole[row, 0] = -3;
Pole[row, MC + 1] = -3;
}
for (col = 0; col <= MC + 1; col++)
{
Pole[0, col] = -3;
Pole[MR + 1, col] = -3;
}
//ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
for (row = 1; row <= MR; row++)
{
for (col = 1; col <= MC; col++)
{
Pole[row, col] = 0;
}
}
//ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½
int random = r;
if (random == 1)
{
this.Rand ();//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Rand ()
}
if (random == 2)
{
this.Lin ();//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Lin ()
}
if (random == 3)
{
this.BBS ();//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° BBS ()
}
//Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅ΡΠΊΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΊΠΎΠ»-Π²ΠΎ ΠΌΠΈΠ½ Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΠΊΠ»Π΅ΡΠΊΠ°Ρ
for (row = 1; row <= MR; row++)
{
for (col = 1; col <= MC; col++)
{
if (Pole[row, col] ≠ 9)
{
k = 0;
if (Pole[row — 1, col — 1] == 9)
k++;
if (Pole[row — 1, col] == 9)
k++;
if (Pole[row — 1, col + 1] == 9)
k++;
if (Pole[row, col — 1] == 9)
k++;
if (Pole[row, col + 1] == 9)
k++;
if (Pole[row + 1, col — 1] == 9)
k++;
if (Pole[row + 1, col] == 9)
k++;
if (Pole[row + 1, col + 1] == 9)
k++;
Pole[row, col] = k;
}
status = 0;//Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ³ΡΡ
nMin = 0;//Π½Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΌΠΈΠ½
nFlag = 0;//Π½Π΅Ρ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»Π°Π³ΠΎΠ²
}
}
}
//ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΈΠ½
private void Rand ()//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Random,
{
int n = 0;//ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΌΠΈΠ½
int row, col;
Random rnd = new Random ();//Π³Π΅Π½Π΅ΡΠ΅ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π»
//ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½
do
{
row = rnd. Next (MR) + 1;
col = rnd. Next (MC) + 1;
if (Pole[row, col] ≠ 9)
{
Pole[row, col] = 9;
n++;
}
}
while (n ≠ NM);
}
private void Lin ()//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π³ΡΡΡΠ½ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°
{
int n = 0;
int row, col;
double a = Convert. ToInt64(Math.Exp ((double)5 * Math. Log (7))), m = Convert. ToInt64(Math.Exp ((double)31 * Math. Log (2))) — 1;
int x = 27 011 989, c = 19;
//ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½
do
{
//Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π₯ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΡΠ»Π° x (k+1)=(a * x (k) + c) mod m
x = (int)((a * x + c) % m);
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MR]
row =Convert.ToInt32(Math.Ceiling ((double) MR * x / (m-1)));
x = (int)((a * x + c) % m);
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MΠ‘]
col = Convert. ToInt32(Math.Ceiling ((double)MC * x / (m-1)));
if (Pole[row, col] ≠ 9)
{
Pole[row, col] = 9;
n++;
}
}
while (n ≠ NM);
}
private void BBS ()//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΠ»ΡΠΌΠ°, ΠΠ»ΡΠΌΠ° ΠΈ Π¨ΡΠ±Π°
{
int n = 0;
int row, col;
int x = 2701;
int p=2047,q=8191;
int M = p * q;
//ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΈΠ½
do
{
//Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π₯ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΡΠ»Π° x (k+1)=(x (k)^2) mod m
x = Math. Abs ((int)((x * x) % M));
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MR]
row = Convert. ToInt32(Math.Ceiling ((double)MR * x / (M — 1)));
x = Math. Abs ((int)((x * x) % M));
//Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ²Π΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ»Π΅ΡΠΊΠΈ Π½Π° [0,MΠ‘]
col = Convert. ToInt32(Math.Ceiling ((double)MC * x / (M — 1)));
if (Pole[row, col] ≠ 9)
{
Pole[row, col] = 9;
n++;
}
}
while (n ≠ NM);
}
private void showPole (Graphics g, int status)//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΠ»Π΅
{
for (int row = 1; row <= MR; row++)
{
for (int col = 1; col <= MC; col++)
{
this.kletka (g, row, col, status);//Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° kletka (Graphics g, int row, int col, int status)
}
}
}
private void kletka (Graphics g, int row, int col, int status)//ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
{
//ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π°
int x = (col — 1) * W + 1, y = (row — 1) * H + 1 + 25;
//Π½Π΅ΠΎΡΠΊΡΡΡΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ — ΡΠ΅ΡΡΠ΅
if (Pole[row, col] < 100)
{
g.FillRectangle (SystemBrushes.ControlLight, x — 1, y — 1, x + W, y + H);
}
//ΠΎΡΠΊΡΡΡΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
if (Pole[row, col] >= 100)
{
//ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΊΠ»Π΅ΡΠΊΡ, ΠΎΡΠΊΡΡΡΡΠ΅-Π±Π΅Π»ΡΠ΅
if (Pole[row, col] ≠ 109)
g.FillRectangle (Brushes.White, x — 1, y — 1, x + W, y + H);
//ΠΏΠΎΠ΄ΡΡΠ² Π½Π° ΠΌΠΈΠ½Π΅, ΠΊΠ»Π΅ΡΠΊΠ° ΠΊΡΠ°ΡΠ½Π°Ρ
else
g.FillRectangle (Brushes.Red, x — 1, y — 1, x + W, y + H);
//Π΅ΡΠ»ΠΈ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ»Π΅ΡΠΊΠΎΠΉ Π΅ΡΡΡ ΠΌΠΈΠ½Ρ, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΡ ΠΊΠΎΠ»-Π²ΠΎ
if ((Pole[row, col] >= 101) && (Pole[row, col] <= 108))
g.DrawString ((Pole[row, col] - 100).ToString (), new Font («Tahoma», 20, FontStyle. Bold), Brushes. Blue, x + 3, y + 2);
}
// Π² ΠΊΠ»Π΅ΡΠΊΠ΅ ΡΠ»Π°Π³
if (Pole[row, col] >= 200)
this.flag (g, x, y);
//ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ»Π΅ΡΠΊΠΈ
g.DrawRectangle (Pens.Black, x — 1, y — 1, x + W, y + H);
// Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½Π° (status=2), ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΌΠΈΠ½Ρ
if ((status == 2) && ((Pole[row, col] % 10) == 9))
this.mina (g, x, y);
}
private void open (int row, int col)//ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΡ ΠΈ Π²ΡΠ΅ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΠΌΠΈΠ½
{
//ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π°
int x = (col — 1) * W + 1, y = (row — 1) * H + 1 + 25;
if (Pole[row, col] == 0)
{
Pole[row, col] = 100;
//ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
this.Invalidate (new Rectangle (x, y, W, H));
//ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΈΠΌΡΠΊΠ°ΡΡΠΈΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ ΡΠ»Π΅Π²Π°, ΡΠΏΡΠ°Π²Π°, ΡΠ²Π΅ΡΡ Ρ, ΡΠ½ΠΈΠ·Ρ
this.open (row, col — 1);
this.open (row — 1, col);
this.open (row, col + 1);
this.open (row + 1, col);
//ΠΏΡΠΈΠΌΡΠΊΠ°ΡΡΠΈΠ΅ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΠ½ΠΎ
this.open (row — 1, col — 1);
this.open (row — 1, col + 1);
this.open (row + 1, col — 1);
this.open (row + 1, col + 1);
}
else
if ((Pole[row, col] < 100) && (Pole[row, col] ≠ -3))
{
Pole[row, col] += 100;
//ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ
this.Invalidate (new Rectangle (x, y, W, H));
}
}
private void mina (Graphics g, int x, int y)//ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΡΡΡΡΠΈΠΉ ΠΌΠΈΠ½Ρ
{
//ΠΊΠΎΡΠΏΡΡ
g.FillRectangle (Brushes.Green, x + 16, y + 26, 8, 4);
g.FillRectangle (Brushes.Green, x + 8, y + 30, 24, 4);
g.DrawPie (Pens.Black, x + 6, y + 28, 28, 16, 0, -180);
g.FillPie (Brushes.Green, x + 6, y + 28, 28, 16, 0, -180);
//ΠΏΠΎΠ»ΠΎΡΠ° Π½Π° ΠΊΠΎΡΠΏΡΡΠ΅
g.DrawLine (Pens.Black, x + 12, y + 32, x + 28, y + 32);
//Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ «ΡΡ»
g.DrawLine (Pens.Black, x + 20, y + 22, x + 20, y + 26);
//Π±ΠΎΠΊΠΎΠ²ΡΠ΅ «ΡΡΡ»
g.DrawLine (Pens.Black, x + 8, y + 30, x + 6, y + 28);
g.DrawLine (Pens.Black, x + 32, y + 30, x + 34, y + 28);
}
private void flag (Graphics g, int x, int y)//ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΡΡΡΡΠΈΠΉ ΡΠ»Π°Π³
{
Point[] p = new Point[3];
Point[] m = new Point[5];
//ΡΠ»Π°ΠΆΠΎΠΊ
p[0]. X = x + 4;
p[0]. Y = y + 4;
p[1]. X = x + 30;
p[1]. Y = y + 12;
p[2]. X = x + 4;
p[2]. Y = y + 20;
g.FillPolygon (Brushes.Red, p);
//Π΄ΡΠ΅Π²ΠΊΠΎ
g.DrawLine (Pens.Black, x + 4, y + 4, x + 4, y + 35);
//Π±ΡΠΊΠ²Π° Π Π½Π° ΡΠ»Π°ΠΆΠΊΠ΅
m[0]. X = x + 8;
m[0]. Y = y + 14;
m[1]. X = x + 8;
m[1]. Y = y + 8;
m[2]. X = x + 10;
m[2]. Y = y + 10;