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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ³Ρ€Π° «Ним»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

НСльзя ΠΎΡ‚Π²Π΅Ρ€Π³Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ случайного Π²Ρ‹Π±ΠΎΡ€Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ для строго матСматичСской ΠΈΠ³Ρ€Ρ‹ Ρ‚Π°ΠΊΠΎΠ΅ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ Π² ΠΊΡ€ΠΈΡ‚ичСском объСмС нСдопустимо. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ случайного Π²Ρ‹Π±ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ возникновСния Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ-Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ вслСдствиС ΠΎΡ‚ΠΊΠ°Π·Π° фактичСской Π»ΠΎΠ³ΠΈΠΊΠΈ. ПовСдСниС искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, «ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°», всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ³Ρ€Π° «Ним» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ³Ρ€Π° «ΠΠΈΠΌ»

БистСмный Π°Π½Π°Π»ΠΈΠ·

Π—Π°Π΄Π°Ρ‡Π° состоит Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ логичСской ΠΈΠ³Ρ€Ρ‹, основанной Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ матСматичСской раскладкС. Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ являСтся Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΡΠΎΠΎΡ‚вСтствии со Π²ΡΠ΅ΠΌΠΈ прСдставлСнными трСбованиями.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ сущСствСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Ρ‹Π±ΠΎΡ€Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ прСдстоит ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ:

1. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ матСматичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

2. БоотвСтствиС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ оформлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ, ΠΎΡ‚Π»Π°Π΄ΠΊΠ° взаимодСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π³Ρ€Π°Ρ„ичСской ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ….

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ Π²Ρ‹Π±ΠΎΡ€ срСды программирования.

Рассмотрим Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

1. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, для создания Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ эффСктивной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΈΠ³Ρ€Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ уровня ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ спСцифичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Богласно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΌΡƒ заданию, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΈΠ³Ρ€Ρ‹ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅). ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ модСль этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ двумя постулатами: вСроятностный ΠΎΡ‚Π±ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ°Ρ‚СматичСский Π°Π½Π°Π»ΠΈΠ· слоТившСйся ситуации.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ критичСского ΠΎΡ‚Π±ΠΎΡ€Π°, Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ постулата Π² ΡΠΈΠ»Ρƒ трудоСмкости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ Ρ‚яТСловСсности процСсса кодирования. Π­Ρ‚ΠΎ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ справСдливо Π² Π½Π°ΡˆΠ΅ΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ задСйствовано всСго 6 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π½Π΅Ρ‚ нСобходимости ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. ВпослСдствии, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ тСстирования, Π±Ρ‹Π»Π° Π΄ΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΡ€Π°Π²ΠΎΠΌΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ допущСния.

2. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… связСй Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слСдуСт ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ соотвСтствиС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… (графичСских) с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ, нСпосрСдствСнно ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ повСдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ вопросу ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π² ΠΌΠΎΠ΄ΡƒΠ»ΡΡ…. Π’ ΡΡ‚ΠΎΠΉ связи Π±Ρ‹Π»Π° выстроСна ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ-понятная, Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ связь Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… дСйствия ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² Π½Π°ΡˆΠ΅ΠΌ случаС — ΠΊΠ»ΠΈΠΊΠΈ) событий с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ алгоритмичСского класса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ЦАКП).

3. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, согласно заданию, Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ, Π² Ρ‚ΠΎΠΌ числС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, потрСбуСтся ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ потрСбитСля Π½Π° Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс самой ΠΈΠ³Ρ€Ρ‹.

НСобходимо ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ оптичСского манипулятора Ρ‚ΠΈΠΏΠ° «ΠΌΡ‹ΡˆΡŒ», Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ удобство ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π°Π»ΠΎΠ³ΠΎΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСциализированных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-компиляторов с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ использовался ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ C++ Builder 2007 from Borland — срСда со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ компилятором C++.

Анализ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ

На Π΄Π°Π½Π½ΠΎΠΌ этапС Π±Ρ‹Π»ΠΈ выявлСны основныС трСбования для Π²Ρ‹Π±ΠΎΡ€Π° способа Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ:

1. Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ алгоритмичСскиС процСссы Π² Π³Ρ€Π°Ρ„ичСском прСдставлСнии.

Визуализация Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° Shape (встроСнноС срСдство срСды, позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ использования сторонних ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Ρ€ΠΎΠ»ΠΈ «ΠΊΠ°ΠΌΠ΅ΡˆΠΊΠ°»), Panel, Button, RadioButton, MainMenu. Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ для логичСской ΠΈΠ³Ρ€Ρ‹ Π½Π΅ ΡΠ»ΡƒΡ‡Π°Π΅Π½ — прСдполагаСтся ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ процСссС с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈΠ³Ρ€Ρ‹. Помимо всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, использованиС ΠΈΠΌΠ΅Π½Π½ΠΎ встроСнных срСдств ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ рСсурсо-ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ нСсколько ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ быстродСйствиС. ГрафичСскоС прСдставлСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ понятно Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ³Ρ€Ρ‹.

2. ДСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π»ΠΈΡ†Π΅ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ «ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°» Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ процСссС.

НСльзя ΠΎΡ‚Π²Π΅Ρ€Π³Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ случайного Π²Ρ‹Π±ΠΎΡ€Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ для строго матСматичСской ΠΈΠ³Ρ€Ρ‹ Ρ‚Π°ΠΊΠΎΠ΅ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ Π² ΠΊΡ€ΠΈΡ‚ичСском объСмС нСдопустимо. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ случайного Π²Ρ‹Π±ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ возникновСния Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ-Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ вслСдствиС ΠΎΡ‚ΠΊΠ°Π·Π° фактичСской Π»ΠΎΠ³ΠΈΠΊΠΈ. ПовСдСниС искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, «ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°», всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ основано Π½Π° Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹Ρ… трСбованиях ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ним являСтся, ΠΊΡ€ΠΎΠΌΠ΅ всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, «ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΠΎΠΉ», ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΉ. Для достиТСния этих Ρ†Π΅Π»Π΅ΠΉ использовался Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ вычитания, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅.

3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ систСму Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈΠ³Ρ€Ρ‹ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ (настройки).

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ использовались Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ RadioButton, располоТСнныС Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… тСматичСских панСлях. ВсСго 4 элСмСнта управлСния Π² Π²ΠΈΠ΄Π΅ стандартных ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π΄Π²ΡƒΡ… панСлях («Π˜Π³Ρ€ΠΎΠΊ № 2» ΠΈ «ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Ρ…ΠΎΠ΄ΠΈΡ‚») Π² ΡΠΎΡΡ‚оянии Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ созданиС клавиш ΠΈ ΠΏΡ€. ΠΠ° этапС кодирования ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ситуации расстановки ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° Π½Π° ΡΡ‚Π°ΠΏΠ΅ тСстирования ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ΠšΡ€ΠΎΠΌΠ΅ RadioButton Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° TButton, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΊΠ½ΠΎΠΏΠΊΡƒ управлСния. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ-ΠΈΠ³Ρ€ΠΎΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΎΠ±Π΄ΡƒΠΌΠ°Ρ‚ΡŒ свой Ρ…ΠΎΠ΄ ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ взвСшСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΡˆΠ°Ρ€ΠΈΠΊΠΎΠ² с Ρ„ΠΎΡ€ΠΌΡ‹.

4. ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ систСму контроля ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Ним ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡΠΎΠ±ΡƒΡŽ спСцифику ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ процСсса, ΠΏΡ€ΠΈΡΡƒΡ‰ΡƒΡŽ, логичСским ΠΈΠ³Ρ€Π°ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ — здСсь просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ строгий ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ соблюдСниСм установлСнных ΠΏΡ€Π°Π²ΠΈΠ». НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ «ΠΊΠ°ΠΌΠ΅ΡˆΠΊΠΎΠ²» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… лишь ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡƒΡ‡ΠΊΠΈ, ΠΈ ΡΡ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΠ³Ρ€Ρ‹. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ эта ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ тонкости Π±Ρ‹Π»ΠΈ ΡΠΎΠ±Π»ΡŽΠ΄Π΅Π½Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΡΡ‚ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Π’СстированиС».

5. ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ структуру дСлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ»Π°ΡΡΡ‹, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ цСлям взаимодСйствия Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ систСмС.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ кодирования использовались Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования: Π±Ρ‹Π» создан основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ класс, Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Код, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈ ΠΏΠΎΠ½ΡΡ‚Π΅Π½, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΊΠΎΠ΄, написанный Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ стилС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, с Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ впослСдствии Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ ΡΠ°ΠΌΠΎΠΌΡƒ программисту-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ вопрос рассмотрСн Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… «ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» ΠΈ «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅».

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ восходящСго проСктирования.

ВСхнология Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, поддСрТиваСмая срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Borland C++ Builder, позволяСт достаточно Π»Π΅Π³ΠΊΠΎ, быстро ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс взаимодСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ «ΡΠ½ΡΡ‚ия» камСшков с Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΎΡΠ½ΠΎΠ²Ρƒ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ класса со Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ячСйки памяти. Π­Ρ‚ΠΈ ячСйки ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° значСния «ΠΏΡ€Π°Π²Π΄Π°» ΠΈΠ»ΠΈ «Π»ΠΎΠΆΡŒ». Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ вмСстилища Ρ‚Π°ΠΊΠΈΡ… ячССк, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ булСвских массива Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, 3, 2, 1 ячССк памяти соотвСтствСнно. Благодаря ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ связи ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Ρ‚ΠΈΠΏΠ° Shape, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прямым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Ρ… Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… массивов. Π£ΠΆΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ состояния Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ячССк памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ класса, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ соблюдСния ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ².

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ цСлСсообразно пСрСнСсти Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ «Π³Ρ€Π°Ρ„ичСскиС» ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса.

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ выполняСтся Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ 5, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠΠ½Π°Π»ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ».

ВзаимодСйствиС основных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΎ Π² ΡΡ…Π΅ΠΌΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рисунок 1

Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· связСй ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ зависимости ΠΈΠ³Ρ€Ρ‹ рассмотрСн Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2 ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅».

Рисунок 2

ΠŸΡ€ΠΈ Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТится Π½Π°Π±ΠΎΡ€ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий, созданных срСдой ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Бюда ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΈ RadioButton, ΠΈ Button, ΠΈ ΡΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Shape.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ нСпосрСдствСнно ЦАКП (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌΡƒ алгоритмичСскому классу ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). Они ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ ΠΈΡ… Π² ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ посрСдством манипуляций ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

Анализ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΉ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ для ΠΈΠ³Ρ€Ρ‹ с {3,2,1} ΠΊΡƒΡ‡ΠΊΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ Π±Π΅Ρ€Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ камСшСк, ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ³Ρ€Π΅ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π΄ΠΎΠ»ΠΆΠ΅Π½ понСсти ΠΏΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠ΅. НаиболСС красочно эту Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ описываСт Π³Ρ€Π°Ρ„, прСдставлСнный Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.

Рисунок 3

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΡΡΡŒ ΠΏΠΎ ΡΡ‚ΠΎΠΌΡƒ Π³Ρ€Π°Ρ„Ρƒ свСрху-Π²Π½ΠΈΠ· ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ. Π­Ρ‚Π° цСнная информация ΠΈ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΠ»Π° основой Π»ΠΎΠ³ΠΈΠΊΠΈ «ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°». Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‚Π°ΠΊΡ‚ΠΈΠΊΠ° искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ описана Π½ΠΈΠΆΠ΅, Π² Π±Π»ΠΎΠΊΠ΅ «ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅».

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4.

Рисунок 4

логичСский ΠΈΠ³Ρ€Π° матСматичСский ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4, запускаСтся благодаря ΠΊΠ»ΠΈΠΊΡƒ ΠΏΠΎ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΠΎΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: Button1.

НиТС прСдставлСно описаниС ЦАКП (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ алгоритмичСского класса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹).

// ;

class CGame {

private:

bool list1 [3];

bool list2 [2];

bool list3 [1];

bool gamer; // опрСдСляСт, Ρ‡Π΅ΠΉ Ρ…ΠΎΠ΄

int index; // провСряСт, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ-Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Ρ…ΠΎΠ΄

int mod1, mod2, mod3; // измСряСт Π΄Π»ΠΈΠ½Ρƒ list’Π°

public:

CGame ();

~CGame ();

// устанавливаСт разводящСго ΠΈΠ³Ρ€ΠΎΠΊΠ°

void setGamer (TPanel *Gamer1, TPanel *Gamer2);

// ΠΏΠ΅Ρ€Π΅ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠ°Ρ€ΠΈΠΊΠΈ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ

void color (TShape *Shape);

// Π·Π°Π΄Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ΅ условиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ряда

bool useHelp (TShape *Shape1, TShape *Shape2,

TShape *Shape3, TShape *Shape4,

TShape *Shape5, TShape *Shape6);

// Π·Π°Π΄Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠ΅ условиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π°, опрСдСляСт ΠΈΠ³Ρ€ΠΎΠΊΠ°

bool indexator (TPanel *Gamer1, TPanel *Gamer2);

// фиксируСт снятыС ΡˆΠ°Ρ€ΠΈΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ

void fixap (int num, TShape *Shape);

// ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ удаляСт ΡˆΠ°Ρ€ΠΈΠΊΠΈ с Ρ„ΠΎΡ€ΠΌΡ‹

void solution (TShape *Shape1, TShape *Shape2,

TShape *Shape3, TShape *Shape4,

TShape *Shape5, TShape *Shape6);

// опрСдСляСт побСдитСля

bool win (TPanel *Gamer1, TPanel *Gamer2);

// создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ

void endGame (TShape *Shape1,

TShape *Shape2, TShape *Shape3, TShape *Shape4,

TShape *Shape5, TShape *Shape6, TButton *Button1, TRadioButton * RB1,

TRadioButton * RB2, TRadioButton * RB3, TRadioButton * RB4);

// управляСт доступом ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ…ΠΎΠ΄Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Слям

void obj (TShape *Shape1, TShape *Shape2,

TShape *Shape3, TShape *Shape4,

TShape *Shape5, TShape *Shape6,

TButton *Button1, TRadioButton *RadioButton1,

TRadioButton *RadioButton2, TRadioButton *RadioButton3,

TRadioButton *RadioButton4);

// ;

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ…ΠΎΠ΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°

void compClick (void);

};

Рассмотрим Ρ…ΠΎΠ΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π₯ΠΎΠ΄ ΠΈΠ³Ρ€ΠΎΠΊΠ° выполняСтся прямо ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Ρƒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

// ;

void CGame: compClick ()

{

if (list1 == true && list1 == true && list1 == true &&

list2 == true && list2 == true &&

list3 == true) {

if (gamer) gamer = false;

else gamer = true;

}

if (gamer) gamer = false;

else gamer = true;

// ;

// ;

// Ссли ΠΎΠ΄Π½Π° строка Ρ€Π°Π²Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ

if ((mod1 == mod2) && (mod1≠ mod3) && (mod2≠ mod3)

&& mod1≠ 0 && mod3≠ 0) {

if (! list3 [0]) {

list3 = true;

mod3 -= 1;

}

else if (! list1 [2]) {

list1 = true;

mod1 -= 1;

}

else if (! list1 [1]) {

list1 = true;

mod1 -= 1;

}

else if (! list1 [0]) {

list1 = true;

mod1 -= 1;

}

}

else if ((mod1 == mod3) && (mod1≠ mod2) && (mod3≠ mod2)

&& mod2≠ 0) {

if (! list2 [0]) {

list2 = true;

mod2 -= 1;

}

if (! list2 [1]) {

list2 = true;

mod2 -= 1;

}

}

else if ((mod2 == mod3) && (mod1≠ mod2) && (mod1≠ mod3)

&& mod1≠ 0) {

if (! list1 [0]) {

list1 = true;

mod1 -= 1;

}

if (! list1 [1]) {

list1 = true;

mod1 -= 1;

}

if (! list1 [2]) {

list1 = true;

mod1 -= 1;

}

}

// ;

// случаи Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΠ³Ρ€Ρ‹

else if ((mod1 == 0 && mod2 == 0)) {

list3 = true;

mod3 -= 1;

}

else if (mod1 == 0 && mod3 == 0) {

list2 = true; list2 = true;

mod2 -= 2;

}

else if (mod2 == 0 && mod3 == 0) {

list1 = true; list1 = true; list1 = true;

mod1 -= 3;

}

// ;

// случай равСнства Ρ‚Ρ€Π΅Ρ…

else if ((mod1 == mod2) && (mod2 == mod3) && (mod1 == mod3)) {

if (! list2 [0]) {

list2 = true;

mod2 -= 1;

}

else {

list2 = true;

mod2 -= 1;

}

}

// ;

// Ρ€Π΅ΠΊΠΊΡƒΡ€Π΅Π½Ρ‚Π½Ρ‹Π΅ сравнСния: 1 ΠΈ 2

else if ((mod1 > mod2) && mod3 == 0) {

if (! list1 [0]) {

list1 = true;

mod1 -= 1;

}

else if (! list1 [1]) {

list1 = true;

mod1 -= 1;

}

else if (! list1 [2]) {

list1 = true;

mod1 -= 1;

}

}

else if ((mod1 < mod2) && mod3 == 0) {

if (! list2 [0]) {

list2 = true;

mod2 -= 1;

}

else if (! list2 [1]) {

list2 = true;

mod2 -= 1;

}

}

// ;

// Ρ€Π΅ΠΊΠΊΡƒΡ€Π΅Π½Ρ‚Π½Ρ‹Π΅ сравнСния: 2 ΠΈ 3

else if (mod1 == 0 && mod2 > mod3) {

list2 = true;

mod2 -= 1;

}

// ;

// Ρ€Π΅ΠΊΠΊΡƒΡ€Π΅Π½Ρ‚Π½Ρ‹Π΅ сравнСния: 1 ΠΈ 3

else if (mod2 == 0 && mod1 > mod3) {

if (! list1 [0]) {

list1 = true;

mod1 -= 1;

}

if (! list1 [1]) {

list1 = true;

mod1 -= 1;

}

}

// ;

// ΠΏΠ°Ρ‚ΠΎΠ²Ρ‹Π΅ ситуации: 1 ΠΈ 2

else if (mod1 == mod2 && mod3 == 0) {

if (! list1 [0]) {

list1 = true;

mod1 -= 1;

}

else if (! list1 [1]) {

list1 = true;

mod1 -= 1;

}

else if (! list1 [2]) {

list1 = true;

mod1 -= 1;

}

}

else if (mod1 == mod3 && mod2 == 0) {

list3 = true;

mod3 -= 1;

}

else if (mod2 == mod3 && mod1 == 0) {

list3 = true;

mod3 -= 1;

}

}

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ Ρ…ΠΎΠ΄ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π·Π° ΠΎΡΠ½ΠΎΠ²Ρƒ взяты условныС Π΄Π»ΠΈΠ½Ρ‹ массивов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для принятия обоснованного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ситуации. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ «ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€», Ссли ΠΎΠ½ Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ — максимально ΠΎΡ‚ΡΡ€ΠΎΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ΅ ΠΏΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ, Ссли ΠΎΠ½ Ρ…ΠΎΠ΄ΠΈΡ‚ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ, ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всякиС Π΄Π²Π΅ строки ΠΊ Ρ€Π°Π²Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π·Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, дублируя Ρ…ΠΎΠ΄Ρ‹ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ‚Π° удастся Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ±Π΅Π΄Ρ‹. Π­Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ³Ρ€ΠΎΠ·Π°ΠΌ.

ΠŸΠ΅Ρ€Π΅ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² производится ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ЦАКП. color (), Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ прямо ΠΈΠ·-ΠΏΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

// ;

void CGame: color (TShape *Shape)

{

if (Shape->Brush->Style≠ bsClear)

{

Shape->Brush->Style = bsClear;

index++;

}

else

{

Shape->Brush->Style = bsSolid;

Shape->Brush->Color = clAqua;

index -;

}

}

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΡƒΠΆΠ΅ ΠΏΠΎ ΡΠ½ΡΡ‚Ρ‹ΠΌ «ΠΎΠ±Ρ€Π°Π·Π°ΠΌ» рСгистрируСт этот Ρ„Π°ΠΊΡ‚ Π² ΠΌΠ°ΡΡΠΈΠ²Π°Ρ… Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π—Π° ΡΡ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄. fixap ().

// ;

void CGame: fixap (int num, TShape *Shape)

{

switch (num) {

case 1:

if (Shape->Brush->Style == bsClear) {

list1 = true;

mod1 -;

}

else {

list1 = false;

mod1++;

}

break;

case 2:

if (Shape->Brush->Style == bsClear) {

list1 = true;

mod1 -;

}

else {

list1 = false;

mod1++;

}

break;

case 3:

if (Shape->Brush->Style == bsClear) {

list1 = true;

mod1 -;

}

else {

list1 = false;

mod1++;

}

break;

case 4:

if (Shape->Brush->Style == bsClear) {

list2 = true;

mod2 -;

}

else {

list2 = false;

mod2++;

}

break;

case 5:

if (Shape->Brush->Style == bsClear) {

list2 = true;

mod2 -;

}

else {

list2 = false;

mod2++;

}

break;

case 6:

if (Shape->Brush->Style == bsClear) {

list3 = true;

mod3 -;

}

else {

list3 = false;

mod3++;

}

break;

}

}

Π’ΡƒΡ‚ ΠΆΠ΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ измСнСния Π΄Π»ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ «ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ».

На ΡΡ‚ΠΎΠΌ рабочая итСрация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. Π”Π°Π»ΡŒΡˆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Ρ‚ сСбя Π² ΡΠΎΠΎΡ‚вСтствии с Ρ€Π°ΡΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌΠΈ. А Π΄ΠΎΡΡ‚ΡƒΠΏ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Слям ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

НиТС прСдставлСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ВСстированиС

логичСский ΠΈΠ³Ρ€Π° матСматичСский ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Для нахоТдСния уязвимых мСст Π±Ρ‹Π» использован ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования. Π’Π°ΠΊΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ использовались ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… пост-, прСдусловий.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… тСстирований Π²Ρ‹ΡΠ²Π»ΡΠ»ΠΈΡΡŒ ошибки, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, тСстированиС ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. Π‘Ρ‹Π»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚Ρ‹ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ бСзопасности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

1. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ «Π΄Π²ΡƒΡ… Π»ΠΈΠ½ΠΈΠΉ».

2. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ…ΠΎΠ΄Π°.

3. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΡƒΡΠ»ΠΎΠ²ΠΈΡΡ… опрСдСлСния побСдитСля.

4. НСкоторыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ).

1. Дописанный ΠΌΠ΅Ρ‚ΠΎΠ΄ ЦАКП, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ взятия ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ основноС ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΠ³Ρ€Ρ‹: Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΌΠ½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡƒΡ‡ΠΊΠΈ.

// ;

bool CGame: useHelp (TShape *Shape1, TShape *Shape2,

TShape *Shape3, TShape *Shape4,

TShape *Shape5, TShape *Shape6)

{

if (((Shape1->Brush->Style == bsClear || Shape2->Brush->Style == bsClear

|| Shape3->Brush->Style == bsClear) &&

(Shape4->Brush->Style == bsClear || Shape5->Brush->Style == bsClear

|| Shape6->Brush->Style == bsClear))

||

((Shape4->Brush->Style == bsClear || Shape5->Brush->Style == bsClear)

&&(Shape1->Brush->Style == bsClear || Shape2->Brush->Style == bsClear

|| Shape3->Brush->Style == bsClear || Shape6->Brush->Style == bsClear))

||

(Shape6->Brush->Style == bsClear &&

(Shape1->Brush->Style == bsClear || Shape2->Brush->Style == bsClear

|| Shape3->Brush->Style == bsClear || Shape4->Brush->Style == bsClear

|| Shape5->Brush->Style == bsClear))) {

return 0;

}

else return 1;

}

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° основываСтся Π½Π° ΠΏΠΎΠ΄ΡΡ‡Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΏΠ΅Ρ€Π΅ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹Ρ… камСшков. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ камСшСк, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· 3-Π΅ΠΉ строки ΠΈ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Π·ΡΡ‚ΡŒ Π·Π°Ρ‚Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сразу ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ ΠΈ ΠΏΡ€Π΅ΡΠ΅Ρ‡Π΅Ρ‚ это Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅.

2. Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΈΠ³Ρ€Π΅ использовалась ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ…ΠΎΠ΄Π°. Π—Π° ΡΡ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ЦАКП. indexator ().

// ;

bool CGame: indexator (TPanel *Gamer1, TPanel *Gamer2)

{

if (index == 0) {

MessageBox (NULL, «Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π·ΡΡ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΡˆΠ°Ρ€ΠΈΠΊ!»,

«Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!», MB_ICONWARNING);

index = 0;

return 0;

}

else {

index = 0;

if (gamer) {

gamer = false;

// -Ρ…ΠΎΠ΄ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

Gamer1->Color = clMoneyGreen;

Gamer2->Color = clSkyBlue;

}

else {

gamer = true;

// -Ρ…ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ°

Gamer1->Color = clSkyBlue;

Gamer2->Color = clMoneyGreen;

}

return 1;

}

}

Если Π±Ρ‹ функция Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»Π° Π²Π΅Ρ€Π½ΠΎ Ρ…ΠΎΠ΄, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π» Π±Ρ‹ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

3. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π½Π΅Π΄Ρ€ΡΠ»ΠΈΡΡŒ ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. win (), Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ побСдитСля.

// ;

bool CGame: win (TPanel *Gamer1, TPanel *Gamer2)

{

if (list1 == true && list1 == true && list1 == true &&

list2 == true && list2 == true &&

list3 == true) {

Gamer1->Color = clSkyBlue;

Gamer2->Color = clSkyBlue;

if (gamer) {

MessageBox (NULL, «Π˜Π³Ρ€ΠΎΠΊ № 1 ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ±Π΅Π΄Ρƒ.»,

«Π˜Π³Ρ€Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.», MB_ICONINFORMATION);

}

else {

if (Gamer2->Caption == «Comp. 1.1»)

MessageBox (NULL, «Comp. 1.1 ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ±Π΅Π΄Ρƒ.»,

«Π˜Π³Ρ€Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.», MB_ICONINFORMATION);

else MessageBox (NULL, «Π˜Π³Ρ€ΠΎΠΊ № 2 ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ±Π΅Π΄Ρƒ.»,

«Π˜Π³Ρ€Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.», MB_ICONINFORMATION);

}

return true;

}

return false;

}

4. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ³Π°ΡΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, навязанный ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠΎΠ΄Π°, использовалось Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ-ΠΌΠ΅Ρ‚ΠΎΠ΄.compClick ().

if (list1 == true && list1 == true && list1 == true &&

list2 == true && list2 == true &&

list3 == true) {

if (gamer) gamer = false;

else gamer = true;

}

ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ пСрСстановкС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Ρ…ΠΎΠ΄Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ опрСдСляСт побСдитСля, Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π°.

5. Π’Π°ΠΊΠΆΠ΅, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сбои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ тСстировании, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства: ΠΌΠ΅Ρ‚ΠΎΠ΄-Π·Π°Π³Π»ΡƒΡˆΠΊΡƒ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ дСструктор ЦАКП.

// ;

void CGame: obj (TShape *Shape1, TShape *Shape2,

TShape *Shape3, TShape *Shape4,

TShape *Shape5, TShape *Shape6,

TButton *Button1, TRadioButton *RadioButton1,

TRadioButton *RadioButton2, TRadioButton *RadioButton3,

TRadioButton *RadioButton4)

{

if ((RadioButton1->Checked == false && RadioButton2->Checked == false)

||(RadioButton3->Checked == false && RadioButton4->Checked == false)) {

Button1->Enabled = false;

Shape1->Enabled = false;

Shape2->Enabled = false;

Shape3->Enabled = false;

Shape4->Enabled = false;

Shape5->Enabled = false;

Shape6->Enabled = false;

}

else {

Button1->Enabled = true;

Shape1->Enabled = true;

Shape2->Enabled = true;

Shape3->Enabled = true;

Shape4->Enabled = true;

Shape5->Enabled = true;

Shape6->Enabled = true;

}

}

ΠœΠ΅Ρ‚ΠΎΠ΄-Π·Π°Π³Π»ΡƒΡˆΠΊΠ° обСспСчиваСт Π½Π΅ΠΏΡ€ΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… манипуляторов управлСния Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ…ΠΎΠ΄Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ настройки ΠΈΠ³Ρ€Ρ‹.

ВсС протСстированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈ условии наличия Π²Ρ‹ΡˆΠ΅ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°. ВСстированиС Π΄Π°Π»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

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