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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΈΠ³Ρ€Ρ‹ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈΒ»

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

Клавиши-стрСлки — Π½ΠΎΠΌΠ΅Ρ€ ячСйки ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля увСличиваСтся ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, исходя ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, какая клавиша Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°, Ссли достигнут ΠΊΡ€Π°ΠΉ поля, Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ присваиваСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΡ€Π°Ρ поля. Π­Ρ‚ΠΈ значСния ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для занСсСния Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 1 ΠΈΠ»ΠΈ 2 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ «Enter» Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ячСйкС поля… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹-ΠΈΠ³Ρ€Ρ‹ Β«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈΒ» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ОглавлСниС Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

1. Анализ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

2. АлгоритмичСскоС конструированиС

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

4. ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сущСствуСт Π²Π΅Π»ΠΈΠΊΠΎΠ΅ мноТСство ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€, Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π² ΠΈΡ… ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ.

НапримСр, популярныС Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя нСбольшиС ΠΈΠ³Ρ€Ρ‹ (Ρ‡Π°Ρ‰Π΅ всСго ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅, Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚) ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Flash с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ языка ActionScript. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ популярны Π½Π° Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурсах ΠΈ, Π° ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅, слоТныС ΠΈΠ³Ρ€Ρ‹ с Ρ€Π΅Π°Π»ΠΈΡΡ‚ΠΈΡ‡Π½ΠΎΠΉ 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° C++, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ AI — «ΠΈΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚» — Π½Π° Lisp). Π’ΠΎΠΎΠ±Ρ‰Π΅, язык для создания ΠΈΠ³Ρ€Ρ‹ выбираСтся ΠΊΠ°ΠΊ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ трСбованиями ΠΊ ΠΈΠ³Ρ€Π΅, ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΌΡƒ ΠΆΠ΅Π»Π΅Π·Ρƒ ΠΈ ΠΊ ΡΡ‚оимости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

На ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² установлСны ARM процСссоры. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ³Ρ€Ρ‹ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Java ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ языкС для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² MobileBasic, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ языка Pascal — MIDletPascal.

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для написания ΠΈΠ³Ρ€. Π―Ρ€ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° GameMaker, Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся ΠœΠ°Ρ€ΠΊ ΠžΠ²Π΅Ρ€ΠΌΠ°Ρ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ Π΄Π°ΠΆΠ΅ Π±Π΅Π· знания языков программирования!

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ³Ρ€Ρ‹ Π² «ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ» ΠΏΡΡ‚ΡŒ Π² Ρ€ΡΠ΄ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 15×15 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

«ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ» — популярная ΠΈΠ³Ρ€Π° людСй всСх возрастов. Она отличаСтся простотой, способствуСт Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ внимания ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ эта ΠΈΠ³Ρ€Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Pascal.

1. Анализ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этой Π·Π°Π΄Π°Ρ‡ΠΈ использовался язык программирования Pascal ΠΈ ΡΡ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ PascalABC.Net — ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, основанная Π½Π° Delphi (Object Pascal) ΠΈ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰Π°Ρ простоту языка Паскаль ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ возмоТности ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΎΡ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ MicroSoft).

ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ — логичСская ΠΈΠ³Ρ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ°ΠΌΠΈ Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ 3 Π½Π° 3 ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ боольшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ «Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ поля»). Один ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΈΠ³Ρ€Π°Π΅Ρ‚ «ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠ°ΠΌΠΈ», Π²Ρ‚ΠΎΡ€ΠΎΠΉ — «Π½ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ».

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ «ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ» Π½Π° ΠΏΠΎΠ»Π΅ 3×3 Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ практичСского интСрСса — общСизвСстСн Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ³Ρ€Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΈΡ‡ΡŒΡŽ любой сторонС, Π° ΠΏΡ€ΠΈ ошибкС ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠ° позволяСт Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ³Ρ€Π° находится Π² ΡΠΎΡΡ‚оянии «Π½ΠΈΡ‡Π΅ΠΉΠ½ΠΎΠΉ смСрти».

ΠŸΠ΅Ρ€Π΅Π΄ΠΎ ΠΌΠ½ΠΎΠΉ стояла Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ³Ρ€Ρ‹ Π² ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΏΡΡ‚ΡŒ Π² Ρ€ΡΠ΄ Π½Π° ΠΏΠΎΠ»Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 15×15 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, c ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ΠΌ Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 1-ΠΎΠΉ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

Π˜Π³Ρ€Π° вСдСтся Π½Π° ΠΏΠΎΠ»Π΅ 15×15, Ρ€Π°Π·Π»ΠΈΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ, рассчитана Π½Π° 2-Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ…ΠΎΠ΄ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈΠ³Ρ€Π°ΡŽΡ‰ΠΈΠΉ крСстиками. ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ³Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΈ Ρ€Π΅ΡˆΠ°ΡŽΡ‚, ΠΊΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ крСстиками, Π° ΠΊΡ‚ΠΎ Π½ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ. Π’ Ρ…ΠΎΠ΄Π΅ ΠΈΠ³Ρ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΈ ставят ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ крСстик ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΈΠ³Ρ€Ρ‹) Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡƒΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΡƒ Π½Π° ΠΏΠΎΠ»Π΅.

ЦСль ΠΈΠ³Ρ€Ρ‹ — ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ линию ΠΈΠ· 5 стоящих рядом ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ крСстиков ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ³Ρ€ΠΎΠΊ, ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΠ²ΡˆΠΈΠΉ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠ· Π·Π½Π°ΠΊΠΎΠ² своСго Ρ‚ΠΈΠΏΠ° (крСстиков ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΎΠ²) Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚.

Если свободныС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ поля Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π½Π΅ ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π» ΠΏΠΎΠ±Π΅Π΄Ρ‹, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ³Ρ€Π° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ «Π½ΠΈΡ‡ΡŒΠ΅ΠΉ».

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ стандартно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅: интСрфСйс ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ.

Π’ ΠΈΠ½Ρ‚СрфСйсС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ячСйку клавишами Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π·Π°Π½ΠΎΡΠΈΡ‚ΡŒ Π·Π½Π°ΠΊ «Π₯» ΠΈΠ»ΠΈ «Πž», Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ информация ΠΎ Ρ…ΠΎΠ΄Π΅ ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΏΡ€.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ³Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива прСдставляСт ΠΊΠ»Π΅Ρ‚ΠΊΡƒ поля. Π˜Π½Π΄Π΅ΠΊΡΡ‹ массива ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ полоТСнию ΠΊΠ»Π΅Ρ‚ΠΎΠΊ Π½Π° ΠΏΠΎΠ»Π΅.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ массива ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

0 — ΠΊΠ»Π΅Ρ‚ΠΊΠ° пуста;

1 — Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ крСстик;

2 — Π² ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ Π½ΠΎΠ»ΠΈΠΊ;

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹: производится пСрСрисовка ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива выводится Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ:

0 — Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚;

1 — крСстик Π·Π΅Π»Π΅Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ;

2 — Π½ΠΎΠ»ΠΈΠΊ красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ;

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ сосСдниС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Π²Π½ΠΈΠ· ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. Если Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ символы Π²ΠΎ Π²ΡΠ΅Ρ… ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ… Π½Π° Ρ€Π°ΡΡΡ‚оянии Π΄ΠΎ 4 ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅, Ρ‚ΠΎ ΠΈΠ³Ρ€Π° считаСтся Π²Ρ‹ΠΈΠ³Ρ€Π°Π½Π½ΠΎΠΉ.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

1) Код Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

1) Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ крСстиками ΠΈ Π½ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° ΡΠΊΡ€Π°Π½Π΅.

2) Π’ ΡΠ»ΡƒΡ‡Π°Π΅ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², Π²Ρ‹Π²ΠΎΠ΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сообщСния ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Для всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ стандартныС возмоТности Паскаля, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡŒ Π΄Π°ΠΆΠ΅ использования сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊ ΡΠΏΠΈΡΠΊΡƒ сторонних ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ отнСсти ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Timers (встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² PascalABC.NET) для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ…ΠΎΠ΄Π° ΠΈΠ³Ρ€ΠΎΠΊΠ°.

Для написания интСрфСйса Π² Ρ€Π°Π±ΠΎΡ‚Π΅ использовался ΠΌΠΎΠ΄ΡƒΠ»ΡŒ GraphABC.

2. АлгоритмичСскоС конструированиС Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ приводится описаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ± ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… функциях, ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ массивов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², структурС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ состоит ΠΈΠ· Π΄Π²ΡƒΡ… классов: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΈΠ½Ρ‚СрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‚ΠΎΡ€ΠΎΠΉ — содСрТит основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ. Оба класса ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠšΠ»Π΅Ρ‚ΠΊΠΈ, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ элСмСнтов Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ 15×15.

Алгоритм выполнСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π°. Π˜Π³Ρ€ΠΎΠΊ выполняСт ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши «Enter» Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. ΠŸΡ€ΠΈ этом Π² ΠΌΠ°ΡΡΠΈΠ², Ссли данная ячСйка Π½Π΅ Π·Π°Π½ΡΡ‚Π°, заносится 1 ΠΈΠ»ΠΈ 2 Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ выполняСт Ρ…ΠΎΠ΄ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Для прорисовки крСстиков ΠΈ Π½ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Symbol. Π—Π°Ρ‚Π΅ΠΌ вызываСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Pobeditel, которая провСряСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ячСйку массива Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½ΠΎΠΉ ситуации. На Ρ€ΠΈΡ. 1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π±Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΠ³Ρ€Π° pascal

Рисунок 1 — Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π˜Π³Ρ€ΠΎΠΊΠ°ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·, Ρ‚Π΅ΠΌ самым соблюдая ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ выполнСния Ρ…ΠΎΠ΄Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· послС выполнСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° пСрСмСнная «i» увСличиваСтся Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ «i» ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ…ΠΎΠ΄ΠΎΠΌ провСряСтся Π½Π° Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ: Π½Π΅Ρ‡Π΅Ρ‚Π½Π° — ходят «ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ», Ρ‡Π΅Ρ‚Π½Π° — ходят «Π½ΡƒΠ»ΠΈ». Π‘Π»ΠΎΠΊ-схСма Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.

-+

Рисунок 2 — Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ…ΠΎΠ΄Π° Π˜Π³Ρ€Π° управляСтся с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ссли Π½Π°ΠΆΠ°Ρ‚Π° нСнуТная клавиша, Ρ‚ΠΎ ΠΎΠ½Π° игнорируСтся, Π² ΠΈΠ³Ρ€Π΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈΠ³Ρ€Π° продолТаСтся; Ссли Π½Π°ΠΆΠ°Ρ‚Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ клавиши, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…одят события:

Клавиши-стрСлки — Π½ΠΎΠΌΠ΅Ρ€ ячСйки ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля увСличиваСтся ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, исходя ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, какая клавиша Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°, Ссли достигнут ΠΊΡ€Π°ΠΉ поля, Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ присваиваСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΡ€Π°Ρ поля. Π­Ρ‚ΠΈ значСния ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для занСсСния Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 1 ΠΈΠ»ΠΈ 2 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ «Enter» Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ячСйкС поля, Π° Ρ‚Π°ΠΊΠΆΠ΅ значСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Kursor, которая графичСски ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ курсора ΠΏΠΎ ΡΡ‡Π΅ΠΉΠΊΠ°ΠΌ.

Клавиша «Enter» — элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ становится Ρ€Π°Π²Π½Ρ‹ΠΌ 1 ΠΈΠ»ΠΈ 2, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ…ΠΎΠ΄. Π—Π°Ρ‚Π΅ΠΌ вызываСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ символ «Π₯» ΠΈΠ»ΠΈ «Πž» Π² Π½ΡƒΠΆΠ½ΡƒΡŽ ячСйку.

Клавиша «Space» — ΠΈΠ³Ρ€Π° пСрСзагруТаСтся Π·Π°Π½ΠΎΠ²ΠΎ.

Клавиша «Escape» — Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рисунок 3 — Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши

Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° прСдставлСна Π½Π° Ρ€ΠΈΡ. 3.

ПослС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Ρ…ΠΎΠ΄Π° каТдая ячСйка поля провСряСтся Π½Π° ΠΏΡ€ΠΈΡΡƒΡ‚ствиС Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ — выстроСны Π»ΠΈ Π² Ρ€ΡΠ΄ 4 крСстика ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊΠ°. Алгоритм содСрТит 2 Ρ†ΠΈΠΊΠ»Π°. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΡΠ»ΠΎΠ²ΠΈΠΉ выводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС: «ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ выстроили ряд!» ΠΈΠ»ΠΈ «ΠΠΎΠ»ΠΈΠΊΠΈ выстроили ряд!» ΠΈΠ»ΠΈ «ΠΠΈΡ‡ΡŒΡ!». На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4 прСдставлСна Π±Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Рисунок 4 — Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ±Π΅Π΄Π½ΠΎΠΉ ситуации ΠΈΠ»ΠΈ Π½ΠΈΡ‡ΡŒΠΈ

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π’ Ρ…ΠΎΠ΄Π΅ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π΄Π²Π° модуля: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Grafika ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Base.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Grafika ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π³Ρ€Π°Ρ„ичСский интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ:

o ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ-заставка ΠΈΠ³Ρ€Ρ‹

o Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля 15 Π½Π° 15 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ

o Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ курсора ΠΏΠΎ ΠΊΠ»Π΅Ρ‚ΠΊΠ°ΠΌ поля

o Π’Π²ΠΎΠ΄ символа

o Π’Ρ‹Π²ΠΎΠ΄ сообщСний ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

o StartMenu

o Pole

o Kursor

o Symbol

o ExitMenu

ОписаниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

o Procedure StartMenu. Данная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ³Ρ€Ρ‹. Π’ Π½Π΅ΠΌ содСрТится информация ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ нСобходимая инструкция ΠΊ ΠΈΠ³Ρ€Π΅. Π’ ΡΡ‚ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стандартныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Β· SetFontStyle; - устанавливаСт ΡΡ‚ΠΈΠ»ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphABC);

Β· TextOut (x, y, S); - ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ строку S, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (x, y); (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphABC);

Β· SetFontColor (Ρ†Π²Π΅Ρ‚); - Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚; (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphABC);

Β· Sleep (k) — выполняСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство миллисСкунд.

o Procedure Pole. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° рисуСт ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅: игровая Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ° + Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°. ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Β· Line (x1, y1, x2, y2); - ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ линию ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠΈ (x1, y1) Π² Ρ‚ΠΎΡ‡ΠΊΡƒ (x2, y2); (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphABC);

Β· TextOut (x, y, S); - ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ строку S, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (x, y);

Β· SetFontColor (c:color); - Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚; (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphABC);

Β· SetPenStyle (s:style) — устанавливаСт ΡΡ‚ΠΈΠ»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π°;

Β· SetPenColor (c:color) — устанавливаСт Ρ†Π²Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π°;

o Procedure HowPlay. Данная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠΊΡ€Π°Π½ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΠΈΠ³Ρ€Π΅. Набот стандартных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ‚Π°ΠΊΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ StartMenu.

o Procedure Kursor (var x, y: integer; var ud, lr: shortint; c: color). Данная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° слуТит для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ курсора, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ячСйками ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ символ Π² Π½ΡƒΠΆΠ½ΠΎΠΉ ячСйкС.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Β· x, y: integer; - Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля;

Β· с: color; - Ρ†Π²Π΅Ρ‚ курсора;

Β· ud, lr: shortint; - Π½ΠΎΠΌΠ΅Ρ€ строки ΠΈ ΡΡ‚ΠΎΠ»Π±Π°, Ρ‚. Π΅. ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ячСйки ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля;

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Kursor вызываСтся ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ KeyDown.

o procedure Symbol (x, y: integer; zn: char). Данная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° вызываСтся ΠΈΠ· KeyDown послС наТатия клавиши ENTER. Если Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π²Ρ‹Π·ΠΎΠ²Π° курсор находится Π² Π½ΡƒΠΆΠ½ΠΎΠΉ ячСйкС, Ρ‚ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ символ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ячСйкС.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Β· x, y: integer; - Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора.

Β· zn: char; - символ для установки Π² ΡΡ‡Π΅ΠΉΠΊΡƒ, «Π₯» ΠΈΠ»ΠΈ «Πž».

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Β· SetFontColor (color); - Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚; (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphAbc);

Β· SetFontStyleустанавливаСт ΡΡ‚ΠΈΠ»ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста; (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphAbc);

Β· TextOut (x, y, S); - ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ строку S, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (x, y); (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GraphAbc);

ПослС получСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ курсора ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ символ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ячСйку Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅.

o ExitMenu. Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° вызываСтся ΠΈΠ· Ρ‚Π΅Π»Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС окончания ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π°. Она Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΈΠ³Ρ€Ρ‹, Π»ΠΈΠ±ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Β· Line (x1, y1, x2, y2);

Β· SetFontStyle;

Β· TextOut (x, y, S);

Β· SetFontColor (Ρ†Π²Π΅Ρ‚);

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Base содСрТит основной ΠΊΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹. Π’ Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ:

o ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

o ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ

o Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ…ΠΎΠ΄Π° ΠΈΠ³Ρ€ΠΎΠΊΡƒ

o ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° случая ΠΏΠΎΠ±Π΅Π΄Ρ‹ ΠΈΠ»ΠΈ Π½ΠΈΡ‡ΡŒΠΈ ОписаниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

o procedure TBase.TimerProc. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ отсчСт Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹. Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° врСмя ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΡƒ Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ…ΠΎΠ΄Π° иссякнСт, Ρ…ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΠΊΡƒ .

o procedure KtoHodit. По Ρ‡Π΅Ρ‚ности ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ «i» опрСдСляСтся ΠΈΠ³Ρ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΏΡ€Π°Π²Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ «Π₯» ΠΈΠ»ΠΈ «Πž» Π² ΠΊΠ»Π΅Ρ‚ΠΊΡƒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

o procedure KeyDown (Key: integer); ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° являСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ события OnKeyDown.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Β· Key: integer; - содСрТит Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши.

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° вызываСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΠΈ ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… клавиш, выполняСт ΡΠΎΠΎΡ‚Π²Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ дСйствия. Если Π½Π°ΠΆΠ°Ρ‚Ρ‹ клавиши пСрСмСщСния ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ полю, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ полоТСния Π½Π° ΠΏΠΎΠ»Π΅, Ссли, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, курсор находится Π² ΡΠ°ΠΌΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ячСйкС ΠΈ Π½Π°ΠΆΠ°Ρ‚Π° клавиша «Π²Π²Π΅Ρ€Ρ…», Ρ‚ΠΎ ΠΊΡƒΡ€ΡΠΎΡ€ пСрСмСщаСтся Π² ΡΠ°ΠΌΡƒΡŽ ниТнюю ячСйку этого ΠΆΠ΅ столбца. Π—Π°Ρ‚Π΅ΠΌ вызываСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Kursor, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ курсора Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ (Π²Π²Π΅Ρ€Ρ…, Π²Π½ΠΈΠ·, Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ).

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Space происходит пСрСзапуск ΠΈΠ³Ρ€Ρ‹, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Escape — Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΈΠ³Ρ€Ρ‹.

o Procedure Pobeditel. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, выстроСны Π»ΠΈ Π² Ρ€ΡΠ΄ 4 крСстика ΠΈΠ»ΠΈ Π½ΠΎΠ»ΠΈΠΊΠ° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сообщСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этих условий. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° содСрТит 2 Ρ†ΠΈΠΊΠ»Π° Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° case-конструкция. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΡΠ»ΠΎΠ²ΠΈΠΉ выводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС: «ΠŸΠΎΠ±Π΅Π΄ΠΈΠ» ΠΈΠ³Ρ€ΠΎΠΊ Π₯!» ΠΈΠ»ΠΈ «ΠŸΠΎΠ±Π΅Π΄ΠΈΠ» ΠΈΠ³Ρ€ΠΎΠΊ О!» .

Π’ Ρ‚Π΅Π»Π΅ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ начинаСтся Ρ†ΠΈΠΊΠ» с ΠΏΠΎΡΡ‚условиСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡΡƒΡ‚ΠΈ являСтся основным Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈΠ³Ρ€Ρ‹. Π’ Π½Π΅ΠΌ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора, ΠΎΠ±Π½ΡƒΠ»ΡΡŽΡ‚ΡΡ элСмСнты массива происходит Π²Ρ‹Π·ΠΎΠ² стартового ΠΎΠΊΠ½Π° ΠΈΠ³Ρ€Ρ‹ — StartMenu ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» с ΠΏΠΎΡΡ‚условиСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт ΠΈΠ· ΡΠ΅Π±Ρ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½.

Π—Π°Ρ‚Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ с ΠΏΠΎΡΡ‚условиСм Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Pole ΠΈ KtoHodit, Ρ†ΠΈΠΊΠ» выполняСтся ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π° клавиша «Escape» ΠΈΠ»ΠΈ «Space», ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ извСстСн ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π² ΠΈΠ³Ρ€Π΅. Π’ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ KtoHodit опрСдСляСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ символ («Π₯» ΠΈΠ»ΠΈ «Πž») ΠΏΠΎ Ρ‡Π΅Ρ‚ности ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i. ПослС этого считываСтся наТатая клавиша ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° KeyDown, Ссли это ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ»Π°Π²ΠΈΡˆ-стрСлок, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π΄Π΅ΠΉΡΡ‚вия, Ρ‚. Π΅. Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Kursor, Если Π½Π°ΠΆΠ°Ρ‚Π° клавиша «Enter» — вызываСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Symbol, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту массива присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 ΠΈΠ»ΠΈ 2, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ символа («Π₯» ΠΈΠ»ΠΈ «Πž»). ПослС этого происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ±Π΅Π΄Ρ‹ ΠΈΠ»ΠΈ «Π½ΠΈΡ‡ΡŒΠΈ». Π¦ΠΈΠΊΠ» Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π° заканчиваСтсяв случаС ΠΏΠΎΠ±Π΅Π΄Ρ‹, Π½ΠΈΡ‡ΡŒΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши «Escape» ΠΈΠ»ΠΈ «Space».

Π’ «ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ³Ρ€Ρ‹» послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π° вызываСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ExitMenu; Ссли Π½Π°ΠΆΠ°Ρ‚ «Escape», Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· «ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ» Ρ†ΠΈΠΊΠ»Π° с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ссли Π½Π°ΠΆΠ°Ρ‚Π° любая другая клавиша, «ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ «Ρ†ΠΈΠΊΠ» начнСтся Π·Π°Π½ΠΎΠ²ΠΎ.

4. ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выводится ΠΎΠΊΠ½ΠΎ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ³Ρ€Ρ‹ ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ инструкциСй (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ 5).

Рисунок 5 — Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ³Ρ€Ρ‹ Π˜Π³Ρ€Π° начинаСтся послС нСбольшой ΠΏΠ°ΡƒΠ·Ρ‹. Π’ ΠΎΠΊΠ½Π΅ выводится ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ 6).

Рисунок 6 — Начало ΠΈΠ³Ρ€Ρ‹

Π˜Π³Ρ€ΠΎΠΊΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ³Ρ€ΠΎΠΊ сдСлал Ρ…ΠΎΠ΄, ΠΏΡ€Π°Π²ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ…ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Π³ΠΎ сопСрнику. На Ρ€ΠΈΡ. 7 ΠΈ 8 прСдставлСна типичная ситуация ΠΈΠ³Ρ€Ρ‹.

Рисунок 7 — Π˜Π³Ρ€ΠΎΠΊ «Π₯» ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» Ρ…ΠΎΠ΄ Рисунок 8 — Π˜Π³Ρ€ΠΎΠΊ «Πž» ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» Ρ…ΠΎΠ΄ Π₯ΠΎΠ΄ полагаСтся Π΄Π΅Π»Π°Ρ‚ΡŒ Π·Π° ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 9 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ случай, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊ Π½Π΅ ΡƒΡΠΏΠ΅Π» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ Π·Π° ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π΅ΠΌΡƒ врСмя, Ρ…ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» ΠΊ ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΠΊΡƒ.

Рисунок 9 -ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ…ΠΎΠ΄Π° ΠΊ ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΠΊΡƒ.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ сосСдниС ΠΊΠ»Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ. Если Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ символы Π²ΠΎ Π²ΡΠ΅Ρ… ΠΊΠ»Π΅Ρ‚ΠΊΠ°Ρ… Π½Π° Ρ€Π°ΡΡΡ‚оянии Π΄ΠΎ 4 ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅, Ρ‚ΠΎ ΠΈΠ³Ρ€Π° считаСтся Π²Ρ‹ΠΈΠ³Ρ€Π°Π½Π½ΠΎΠΉ. На Ρ€ΠΈΡ. 10 ΠΈ 11 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΠΎΠ±Π΅Π΄Ρ‹.

Рисунок 10 — ПобСда «ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠΎΠ²»

Рисунок 11 — ПобСда «Π½ΠΎΠ»ΠΈΠΊΠΎΠ²»

Π‘Ρ‹Π»ΠΈ протСстированы Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ситуации Π² ΠΈΠ³Ρ€Π΅. ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибок, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π»Π°ΡΡŒ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π’Π΅ΠΌ самым ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ достаточно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, хотя Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ Π»ΠΈΠΊΠ²ΠΈΠ΄Π°Ρ†ΠΈΠΈ всСх ошибок Π΅Ρ‰Π΅ нСльзя. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ сСйчас ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΈΡΠΏΡ€Π°Π²Π½ΡƒΡŽ ΠΈ Π²Π΅ΡΡŒΠΌΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ написана Ρ…ΠΎΡ€ΠΎΡˆΠΎ всСм извСстная ΠΈΠ³Ρ€Π° «ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Нолики».

Π‘Ρ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹, появлСниС ΠΌΠΎΡ‰Π½Π΅ΠΉΡˆΠΈΡ… графичСских ускоритСлСй ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… процСссоров способствовало Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π±ΡƒΡ€Π½ΠΎΠΌΡƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ индустрии ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€. Π’Ρ‹Π΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этой отрасли — это слоТнСйшиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, с ΠΎΡ‡Π΅Π½ΡŒ высокими трСбованиями ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ части ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Однако для возмоТности ΠΎΡ‚Π΄ΠΎΡ…Π½ΡƒΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π΅ ΠΎΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° трСбуСтся новСйшая ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΈΠ³Ρ€Π°, Π° Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ офисного ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. ИмСнно этой Ρ†Π΅Π»ΠΈ — ΠΎΡ‚Π΄Ρ‹Ρ…Ρƒ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ слуТит разработанная Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

НСсмотря Π½Π° Π²Π½Π΅ΡˆΠ½ΡŽΡŽ простоту, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ систСму Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π˜Π³Ρ€Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° Π½Π΅ΠΌΠ°Π»ΠΎ сил ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅. И Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

URL: www.pascalabc.net — Π‘Ρ‚Π°Ρ‚ΡŒΠΈ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со ΡΡ€Π΅Π΄ΠΎΠΉ PascalABC.NET

URL: www.pascalabc.net — Π‘Ρ‚Π°Ρ‚ΡŒΠΈ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со ΡΡ€Π΅Π΄ΠΎΠΉ PascalABC.NET

URL: www.ru.wikipedia.org — ВикипСдия, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

«ΠžΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°»

program qqq;

uses

Grafika, Base, graphABC, Timers;

var

t: Timer;

q1: TBase; q2: TGrafika;

i, j: integer;ch: char;

procedure keydown (key: integer);

begin

case key of

VK_Escape: Window. Close;

end;

end;

begin

SetWindowCaption ('Π˜Π³Ρ€Π° «ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ — Нолики» ');

repeat

q1 := TBase. Create;

q2 := TGrafika. Create;

Q2.StartMenu;

redraw;

Q1.ud := 1; Q1. lr := 1;

Q1.x0 := 50; Q1. y0 := 50;

q1.t := new Timer (999, q1. TimerProc);

Q1.ii := 60;

Q1.k := 1;

for i := 1 to 15 do

for j := 1 to 15 do q1. a[i, j] := 0;

LockDrawing;

repeat

q2.Pole;

q1.KtoHodit;

Redraw;

Sleep (1);

until (ord (q1.ch) = 27) or (ord (q1.ch) = 32);

q1.t.Stop;

q2.ExitMenu;

redraw;

UnlockDrawing;

sleep (3000);

OnKeyDown := keydown;

clearwindow;

until q1. ch = #27;

Window.close;

end.

«ΠœΠΎΠ΄ΡƒΠ»ΡŒ Grafika»

unit Grafika;

interface

uses

GraphABC;

type

TGrafika = class

public

constructor Create ();

procedure Kursor (var x, y: integer; var ud, lr: shortint; c: color);

procedure StartMenu;

procedure ExitMenu;

procedure Pole;

procedure HowPlay;

procedure Symbol (x, y: integer; zn: char);

end;

implementation

constructor TGrafika. Create;

begin

end;

procedure TGrafika. StartMenu;

begin

SetFontSize (25);

SetFontColor (color.Gold);

SetFontStyle (FontStyleType.fsBold);

TextOut (30, 30, ' Π˜Π³Ρ€Π° «ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Нолики» ');

SetFontSize (16);

SetFontColor (color.Blue);

SetFontStyle (FontStyleType.fsBoldUnderline);

TextOut (20, 90, 'Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΊ ΠΈΠ³Ρ€Π΅:');

SetFontStyle (FontStyleType.fsBold);

SetFontSize (13);

TextOut (40, 120, 'Для пСрСмСщСния курсора ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅');

TextOut (60, 140, 'Π’Π›Π•Π’Πž >');

TextOut (60, 160, 'Π’ΠŸΠ ΠΠ’Πž <');

TextOut (60, 180, 'Π’Π’Π•Π Π₯ ^');

TextOut (60, 200, 'Π’ΠΠ˜Π— ');

TextOut (40, 240, 'Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ENTER для Π²Π²ΠΎΠ΄Π° ');

TextOut (40, 260, 'Для Π½Π°Ρ‡Π°Π»Π° ΠΈΠ³Ρ€Ρ‹ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER!!!');

sleep (3000);

ClearWindow;

end;

procedure TGrafika. ExitMenu;{МСню послС ΠΈΠ³Ρ€Ρ‹ ———-}

begin

SetFontColor (color.Gold);

SetFontStyle (FontStyleType.fsBold);

TextOut (20, 380, 'Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΈΠ³Ρ€Ρ‹ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ''ESCAPE''');

TextOut (20, 360, 'Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚Π° новая ΠΈΠ³Ρ€Π°');

end;

procedure TGrafika. kursor (var x, y: integer; var ud, lr: shortint; c: color);

begin

SetPenColor (c);

SetPenWidth (3);

x := 30 + (lr * 20);

y := 30 + (ud * 20);

line (x + 2, y + 2, x + 18, y + 2);line (x + 2, y + 18, x + 18, y + 18);line (x + 2, y + 2, x + 2, y + 18);line (x + 18, y + 2, x + 18, y + 18);

end;

procedure TGrafika. Pole;{Π’ΠΈΠ΄ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля}

begin

setfontcolor (color.Red);

SetFontSize (13);

SetPenColor (color.SkyBlue);

SetPenWidth (3);

{reshetka}

line (50, 50, 350, 50);line (70, 50, 70, 350);

line (50, 70, 350, 70); line (90, 50, 90, 350);

line (50, 90, 350, 90);line (110, 50, 110, 350);

line (50, 110, 350, 110);line (130, 50, 130, 350);

line (50, 130, 350, 130);line (150, 50, 150, 350);

line (50, 150, 350, 150);line (170, 50, 170, 350);

line (50, 170, 350, 170);line (190, 50, 190, 350);

line (50, 190, 350, 190);line (210, 50, 210, 350);

line (50, 210, 350, 210);line (230, 50, 230, 350);

line (50, 230, 350, 230);line (250, 50, 250, 350);

line (50, 250, 350, 250);line (270, 50, 270, 350);

line (50, 270, 350, 270);line (290, 50, 290, 350);

line (50, 290, 350, 290);line (310, 50, 310, 350);

line (50, 310, 350, 310);line (330, 50, 330, 350);

line (50, 330, 350, 330);line (350, 50, 350, 350);

line (50, 350, 350, 350);line (50, 50, 50, 350);

SetFontStyle (fontstyletype.fsBoldItalic);

textout (20, 10, 'Π˜Π³Ρ€Π°ΠΉΡ‚Π΅!');

end;

procedure TGrafika. HowPlay;{Как ΠΈΠ³Ρ€Π°Ρ‚ΡŒ}

begin

setfontcolor (color.Green);

line (225, 0, 225, 300);

line (225, 300, 500, 300);

line (500, 0, 500, 300);

line (225, 0, 500, 0);

SetFontColor (color.Blue);

SetFontStyle (FontStyleType.fsBoldUnderline);

TextOut (240, 30, 'Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ');

SetFontStyle (FontStyleType.fsBold);

SetFontSize (10);

TextOut (250, 80, 'Для пСрСмСщСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅');

TextOut (295, 105, 'LEFT'); TextOut (350, 105, chr (97));

TextOut (295, 125, 'RIGHT'); TextOut (350, 125, chr (100));

TextOut (295, 145, 'UP'); TextOut (350, 145, chr (115));

TextOut (295, 165, 'DOWN'); TextOut (350, 165, chr (119));

TextOut (230, 230, 'НаТмитС Enter Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ X ΠΈΠ»ΠΈ Y');

end;

procedure TGrafika. Symbol (x, y: integer; zn: char);{Π‘ΠΈΠΌΠ²ΠΎΠ» X ΠΈΠ»ΠΈ O Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅}

begin

var c: color;

if zn = 'X' then c := Color. Green else c := Color. Red;

setFontcolor (c);SetFontStyle (fontstyletype.fsBold);

TextOut (x + 5, y + 1, zn);

end;

end.

«ΠœΠΎΠ΄ΡƒΠ»ΡŒ Base»

unit Base;

interface

uses

grafika, Timers, GraphABC;

type

TBase = class (Tgrafika)

public

t: timer;

x0, y0, i, ii, k, j: integer;

ch, zn: char; c: color;

a: array[1.15, 1.15] of shortint;

n, ud, lr, Zero: shortint;

public

constructor Create;

procedure TBase. TimerProc;

procedure KtoHodit;

procedure KeyDown (Key: integer);

procedure Pobeditel;

end;

implementation

constructor TBase. Create;

begin

end;

procedure TBase. TimerProc ();

begin

TextOut (400, 10, 'ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ' + inttostr (ii) + ' сСк.!');

dec (ii);

if ii < 0 then begin

t.Stop; inc (k); ii := 60;

setfontcolor (color.Black);

setfontsize (12);

TextOut (400, 40, 'Π₯ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΠΊΡƒ');

KtoHodit; end;

end;

procedure TBase. KeyDown (Key: integer);

begin

case Key of

VK_Left:

begin

var c := color. White; kursor (x0, y0, ud, lr, c); {left}

if lr = 1 then lr := 15 else dec (lr);

c := color. HotPink;

kursor (x0, y0, ud, lr, c);

end;

VK_Right:

begin

c := color. White; kursor (x0, y0, ud, lr, c);

if lr = 15 then lr := 1 else inc (lr);{right}

c := color. HotPink;

kursor (x0, y0, ud, lr, c);

end;

VK_Up:

begin

c := color. White; kursor (x0, y0, ud, lr, c);{клавиша Π’Π²Π΅Ρ€Ρ…}

if ud = 1 then ud := 15 else dec (ud);

c := color. HotPink;

kursor (x0, y0, ud, lr, c);

end;

VK_Down:

begin

c := color. White; kursor (x0, y0, ud, lr, c);{клавиша Π’Π½ΠΈΠ·}

if ud = 15 then ud := 1 else inc (ud);

c := color. HotPink;

kursor (x0, y0, ud, lr, c);

end;

VK_Enter:

begin

if (a[ud, lr] = 0) and (ord (ch) <> 32) then

begin

a[ud, lr] := n; inc (k); symbol (x0, y0, zn); ii := 60; pobeditel; end;

end;

VK_Escape:

begin

Window.Close;

end;

vk_space: ch := chr (32) ;

end;

end;

procedure TBase. KtoHodit;

begin

Zero := 0;

if (k mod 2 <> 0) then begin zn := 'X'; n := 1; t. Start; end

else begin zn := 'O'; n := 2; t. Start end;

OnKeyDown := KeyDown;

end;

procedure TBase. Pobeditel;

var

i, j: integer;

begin

for i := 1 to 15 do

for j := 1 to 15 do

begin

case i of

1.4:

begin

case j of

1.4:

begin

if ((a[i, j] = n) and (a[i + 1, j] = n) and (a[i + 2, j] = n) and (a[i + 3, j] = n) and (a[i + 4, j] = n)) or ((a[i, j] = n) and (a[i, j + 1] = n) and (a[i, j + 2] = n) and (a[i, j + 3] = n) and (a[i, j + 4] = n)) or ((a[i, j] = n) and (a[i + 1, j + 1] = n) and (a[i + 2, j + 2] = n) and (a[i + 3, j + 3] = n) and (a[i + 4, j + 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

5.11:

begin

if ((a[i, j] = n) and (a[i + 1, j] = n) and (a[i + 2, j] = n) and (a[i + 3, j] = n) and (a[i + 4, j] = n)) or ((a[i, j] = n) and (a[i, j + 1] = n) and (a[i, j + 2] = n) and (a[i, j + 3] = n) and (a[i, j + 4] = n)) or ((a[i, j] = n) and (a[i + 1, j + 1] = n) and (a[i + 2, j + 2] = n) and (a[i + 3, j + 3] = n) and (a[i + 4, j + 4] = n)) or ((a[i, j] = n) and (a[i, j — 1] = n) and (a[i, j — 2] = n) and (a[i, j — 3] = n) and (a[i, j — 4] = n)) or ((a[i, j] = n) and (a[i + 1, j — 1] = n) and (a[i + 2, j — 2] = n) and (a[i + 3, j — 3] = n) and (a[i + 4, j — 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

12.15:

begin

if ((a[i, j] = n) and (a[i, j — 1] = n) and (a[i, j — 2] = n) and (a[i, j — 3] = n) and (a[i, j — 4] = n)) or ((a[i, j] = n) and (a[i + 1, j — 1] = n) and (a[i + 2, j — 2] = n) and (a[i + 3, j — 3] = n) and (a[i + 4, j — 4] = n)) or ((a[i, j] = n) and (a[i + 1, j] = n) and (a[i + 2, j] = n) and (a[i + 3, j] = n) and (a[i + 4, j] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

end;

end;

5.11:

begin

case j of

1.4:

begin

if ((a[i, j] = n) and (a[i — 1, j] = n) and (a[i — 2, j] = n) and (a[i — 3, j] = n) and (a[i — 4, j] = n)) or ((a[i, j] = n) and (a[i + 1, j] = n) and (a[i + 2, j] = n) and (a[i + 3, j] = n) and (a[i + 4, j] = n)) or ((a[i, j] = n) and (a[i, j + 1] = n) and (a[i, j + 2] = n) and (a[i, j + 3] = n) and (a[i, j + 4] = n)) or ((a[i, j] = n) and (a[i — 1, j + 1] = n) and (a[i — 2, j + 2] = n) and (a[i — 3, j + 3] = n) and (a[i — 4, j + 4] = n)) or ((a[i, j] = n) and (a[i + 1, j + 1] = n) and (a[i + 2, j + 2] = n) and (a[i + 3, j + 3] = n) and (a[i + 4, j + 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

5.11:

begin

if ((a[i, j] = n) and (a[i — 1, j] = n) and (a[i — 2, j] = n) and (a[i — 3, j] = n) and (a[i — 4, j] = n)) or ((a[i, j] = n) and (a[i + 1, j] = n) and (a[i + 2, j] = n) and (a[i + 3, j] = n) and (a[i + 4, j] = n)) or ((a[i, j] = n) and (a[i, j — 1] = n) and (a[i, j — 2] = n) and (a[i, j — 3] = n) and (a[i, j — 4] = n)) or ((a[i, j] = n) and (a[i, j + 1] = n) and (a[i, j + 2] = n) and (a[i, j + 3] = n) and (a[i, j + 4] = n)) or ((a[i, j] = n) and (a[i — 1, j + 1] = n) and (a[i — 2, j + 2] = n) and (a[i — 3, j + 3] = n) and (a[i — 4, j + 4] = n)) or ((a[i, j] = n) and (a[i + 1, j — 1] = n) and (a[i + 2, j — 2] = n) and (a[i + 3, j — 3] = n) and (a[i + 4, j — 4] = n)) or ((a[i, j] = n) and (a[i + 1, j + 1] = n) and (a[i + 2, j + 2] = n) and (a[i + 3, j + 3] = n) and (a[i + 4, j + 4] = n)) or ((a[i, j] = n) and (a[i — 1, j — 1] = n) and (a[i — 2, j — 2] = n) and (a[i — 3, j — 3] = n) and (a[i — 4, j — 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

12.15:

begin

if ((a[i, j] = n) and (a[i — 1, j] = n) and (a[i — 2, j] = n) and (a[i — 3, j] = n) and (a[i — 4, j] = n)) or ((a[i, j] = n) and (a[i + 1, j] = n) and (a[i + 2, j] = n) and (a[i + 3, j] = n) and (a[i + 4, j] = n)) or ((a[i, j] = n) and (a[i, j — 1] = n) and (a[i, j — 2] = n) and (a[i, j — 3] = n) and (a[i, j — 4] = n)) or ((a[i, j] = n) and (a[i + 1, j — 1] = n) and (a[i + 2, j — 2] = n) and (a[i + 3, j — 3] = n) and (a[i + 4, j — 4] = n)) or ((a[i, j] = n) and (a[i — 1, j — 1] = n) and (a[i — 2, j — 2] = n) and (a[i — 3, j — 3] = n) and (a[i — 4, j — 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

end;

end;

12.15:

begin

case j of

1.4:

begin

if ((a[i, j] = n) and (a[i — 1, j] = n) and (a[i — 2, j] = n) and (a[i — 3, j] = n) and (a[i — 4, j] = n)) or ((a[i, j] = n) and (a[i, j + 1] = n) and (a[i, j + 2] = n) and (a[i, j + 3] = n) and (a[i, j + 4] = n)) or ((a[i, j] = n) and (a[i — 1, j + 1] = n) and (a[i — 2, j + 2] = n) and (a[i — 3, j + 3] = n) and (a[i — 4, j + 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

5.11:

begin

if ((a[i, j] = n) and (a[i — 1, j] = n) and (a[i — 2, j] = n) and (a[i — 3, j] = n) and (a[i — 4, j] = n)) or ((a[i, j] = n) and (a[i, j — 1] = n) and (a[i, j — 2] = n) and (a[i, j — 3] = n) and (a[i, j — 4] = n)) or ((a[i, j] = n) and (a[i, j + 1] = n) and (a[i, j + 2] = n) and (a[i, j + 3] = n) and (a[i, j + 4] = n)) or ((a[i, j] = n) and (a[i — 1, j + 1] = n) and (a[i — 2, j + 2] = n) and (a[i — 3, j + 3] = n) and (a[i — 4, j + 4] = n)) or ((a[i, j] = n) and (a[i — 1, j — 1] = n) and (a[i — 2, j — 2] = n) and (a[i — 3, j — 3] = n) and (a[i — 4, j — 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

12.15:

begin

if ((a[i, j] = n) and (a[i — 1, j] = n) and (a[i — 2, j] = n) and (a[i — 3, j] = n) and (a[i — 4, j] = n)) or ((a[i, j] = n) and (a[i, j — 1] = n) and (a[i, j — 2] = n) and (a[i, j — 3] = n) and (a[i, j — 4] = n)) or ((a[i, j] = n) and (a[i — 1, j — 1] = n) and (a[i — 2, j — 2] = n) and (a[i — 3, j — 3] = n) and (a[i — 4, j — 4] = n)) then

begin

textout (400, 220, 'ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ ' + zn);

ch := chr (32);

end;

end;

end;

end;

end;

end;

for i := 1 to 15 do

for j := 1 to 15 do

if a[i, j] = 0 then inc (Zero);

if Zero = 0 then

begin

TextOut (400, 150, 'ΠΠΈΡ‡ΡŒΡ!');

ch := chr (32);

end;

end;

end.

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