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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Ρƒ «ВСтрис» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС Turbo Pascal

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

ВСтрис" Π±Ρ‹Π» написан программистом АлСксССм ΠŸΠ°ΠΆΠΈΡ‚Π½ΠΎΠ²Ρ‹ΠΌ Π² ΠΈΡŽΠ½Π΅ 1985. Π’ Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² Π’Π¦ АкадСмии Наук Π‘Π‘Π‘Π  ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, экспСримСнтируя с ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ «Π’Стриса» позаимствован Ρƒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΠΉ Π² ΡˆΠ΅ΡΡ‚идСсятыС Π³ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ «ΠŸΠ΅Π½Ρ‚Π°ΠΌΠΈΠ½ΠΎ». Бмысл Π΄Π°Π½Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ сводится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ. Если Π²Π·ΡΡ‚ΡŒ ΠΏΡΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ²… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Ρƒ «ВСтрис» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС Turbo Pascal (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹

2. Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π’Ρ‹Π²ΠΎΠ΄Ρ‹ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Об ΠΈΠ³Ρ€Π΅ Π’Π•Π’Π Π˜Π‘

" ВСтрис" Π±Ρ‹Π» написан программистом АлСксССм ΠŸΠ°ΠΆΠΈΡ‚Π½ΠΎΠ²Ρ‹ΠΌ Π² ΠΈΡŽΠ½Π΅ 1985. Π’ Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² Π’Π¦ АкадСмии Наук Π‘Π‘Π‘Π  ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, экспСримСнтируя с ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ «Π’Стриса» позаимствован Ρƒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΠΉ Π² ΡˆΠ΅ΡΡ‚идСсятыС Π³ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ «ΠŸΠ΅Π½Ρ‚Π°ΠΌΠΈΠ½ΠΎ». Бмысл Π΄Π°Π½Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ сводится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ. Если Π²Π·ΡΡ‚ΡŒ ΠΏΡΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΈ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²ΡΠ΅ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ способами, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ся Π±ΠΎΠ»Π΅Π΅ дСсятка Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€ — элСмСнтов «ΠŸΠ΅Π½Ρ‚Π°ΠΌΠΈΠ½ΠΎ». Π”Π°Π»Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ задания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹.

ΠŸΡ€Π°Π²ΠΈΠ»Π°

Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€ΠΊΠΈ Ρ‚Π΅Ρ‚Ρ€Π°ΠΌΠΈΠ½ΠΎ ΠΏΠ°Π΄Π°ΡŽΡ‚ свСрху Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ стакан ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 10 ΠΈ Π²Ρ‹ΡΠΎΡ‚ΠΎΠΉ 20 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ. Π’ ΠΏΠΎΠ»Ρ‘Ρ‚Π΅ ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ³ΡƒΡ€ΠΊΡƒ ΠΈ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Π½ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»Ρ‘Ρ‚. Π€ΠΈΠ³ΡƒΡ€ΠΊΠ° Π»Π΅Ρ‚ΠΈΡ‚, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Ρ‚кнётся Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€ΠΊΡƒ Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΠΎΠ» стакана. Если ΠΏΡ€ΠΈ этом заполнился Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ряд ΠΈΠ· 10 ΠΊΠ»Π΅Ρ‚ΠΎΠΊ, ΠΎΠ½ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΈ Π²ΡΡ‘, Ρ‡Ρ‚ΠΎ Π²Ρ‹ΡˆΠ΅ Π΅Π³ΠΎ, опускаСтся Π½Π° 1 ΠΊΠ»Π΅Ρ‚ΠΊΡƒ. Π’Π΅ΠΌΠΏ ΠΈΠ³Ρ€Ρ‹ постСпСнно увСличиваСтся. Если ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ 4 ряда, это называСтся «Ρ‚Стрис», ΠΎΡ‚ΡΡŽΠ΄Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹. Π˜Π³Ρ€Π° кончаСтся, ΠΊΠΎΠ³Π΄Π° новая Ρ„ΠΈΠ³ΡƒΡ€ΠΊΠ° касаСтся Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ стакана. Π˜Π³Ρ€ΠΎΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‡ΠΊΠΈ Π·Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€ΠΊΡƒ, поэтому Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° — Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ряды, Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡ сам стакан ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ дольшС (максимизируя ΠΎΡ‡ΠΊΠΈ).

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Π’ ΡΡ‚ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΡ‹ ΡΡ‚Π°Π²ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ собой Ρ†Π΅Π»ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΡƒΡŽ ΠΈ Π²ΡΠ΅ΠΌΠΈ Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ ΠΈΠ³Ρ€Ρƒ ВСтрис Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС Turbo Pascal.

Π“Π»Π°Π²Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

1) созданиС поля ΠΈΠ³Ρ€Ρ‹ (стакана);

2) созданиС сСми случайных Ρ„ΠΈΠ³ΡƒΡ€ Ρ‚Π΅Ρ‚Ρ€Π°ΠΌΠΈΠ½ΠΎ;

3) Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€ Π² ΠΏΠΎΠ»Π΅;

4) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Ρ„ΠΈΠ³ΡƒΡ€;

5) рСализация складывания Ρ„ΠΈΠ³ΡƒΡ€ Π² Ρ€ΡΠ΄Ρ‹;

6) ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»Ρ‹Ρ… рядов ΠΈ ΠΏΠΎΠ΄ΡΡ‡Ρ‘Ρ‚ ΠΈΡ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π°;

7) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹;

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

1) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„ΠΈΠ³ΡƒΡ€ для ΠΈΠ³Ρ€Ρ‹

2) созданиС ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

3) рСализация ΠΈΠ³Ρ€Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ

4) сохранСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΠ³Ρ€Ρ‹ Π² Ρ‚Скстовый Ρ„Π°ΠΉΠ»

5) подсчСт ΠΎΡ‡ΠΊΠΎΠ² с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ скорости

6) созданиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΏΠ°ΡƒΠ·Ρ‹

1. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ:

1) массивы для создания поля ΠΈΠ³Ρ€Ρ‹;

ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для создания Ρ„ΠΈΠ³ΡƒΡ€, ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Ρ„ΠΈΠ³ΡƒΡ€, удалСния рядов, Π²Ρ‹Π²ΠΎΠ΄Π° массива Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ Ρ‚. Π΄. Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: function cvet опрСдСляСт Ρ†Π²Π΅Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹; procedure cls ΠΎΡ‚Ρ‡ΠΈΡ‰Π°Π΅Ρ‚ массив поля, procedure proverka ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡ΠΊΠΎΠ², procedure paint Π’Ρ‹Π²ΠΎΠ΄ состояния массива Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, procedure figura нСпосрСдствСнноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹,

2) procedure povorot рСализация ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.;

3) ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π±ΠΎΡ€Π° case: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠΌ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹;

4) Π¦ΠΈΠΊΠ» с ΠΏΠΎΡΡ‚ условиСм Repeat/Until: Π² Π³Π»Π°Π²Π½ΠΎΠΌ Ρ‚Π΅Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для зацикливания процСсса ΠΈΠ³Ρ€Ρ‹;

5) ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° считывания с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ keypressed ΠΈ readkey для управлСния Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ;

6) ΠœΠΎΠ΄ΡƒΠ»ΡŒ crt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»Ρ Graph;

Π’ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2. Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠΈΠ³Ρ€Π° тСтрис ΠΏΠΎΠ»Π΅ Ρ„ΠΈΠ³ΡƒΡ€Π°

program tetris;

uses crt;

var b, a, c:array[1.10,1.20]of integer;

d:array[1.4,1.4]of integer;

e:array[1.8]of integer;

n, m, x, y: integer;

ch, fi: char;

ht, wt, fig, del, dell, colr, colre, z, s:integer;

new, pov: boolean;

line, figs, ochke: integer;

name:string;

t:text;

{———————————————————}

function cvet (colr:integer):integer;

begin

case colr of

1:cvet:=9;

2:cvet:=10;

3:cvet:=11;

4:cvet:=12;

5:cvet:=13;

6:cvet:=14;

7:cvet:=7;

end;

end;

{———————————————————}

procedure cls;

var i, j: integer;

begin

for i:=1 to 10 do

for j:=1 to 20 do a[i, j]: =0;

end;

{———————————————————-}

procedure proverka;

var i, j, l, f, g:integer;

begin

for i:=20 downto 1 do begin

l:=0;

for j:=1 to 10 do begin

{ readkey;

write (i,' ', j,' ', l,'-'); }

if a[j, i]=1 then l:=l+1;

end;

if l=10 then begin

line:=line+1;

for f:=i-1 downto 1 do

for g:=1 to 10 do begin a[g, f+1]: =a[g, f];

b[g, f+1]:=b[g, f];

end;

i:=i+1;

end;

end;

end;

{————————————————————}

procedure paint;

var i, j: integer;

begin

gotoxy (40,3);

textcolor (15);

ochke:=line*(20-del);

write ('line:', line,' point:', ochke);

gotoxy (41,4);

write ('scor: ', del);

for i:=1 to 10 do

for j:=1 to 20 do

case a[i, j] of

1:begin textcolor (b[i, j]);

gotoxy (i+20,j);

write ('0');

end;

2:begin

textcolor (cvet (colr));

gotoxy (i+20,j);

write ('0');

end;

0:begin textcolor (red);

gotoxy (i+20,j);

write ('.');

end;

end;

for i:=1 to 4 do

for j:=1 to 4 do begin

case d[i, j] of

0:begin textcolor (red);

gotoxy (i+40,j+5);

write ('.');

end;

1:begin

textcolor (cvet (colre));

gotoxy (i+40,j+5);

write ('0');

end;

end;

end;

end;

{—————————————————}

procedure figura (x, y, n, st: integer);

var i: integer;

begin

case n of

1:begin a[x, y]: =st;

a[x+1,y]:=st;

a[x+2,y]:=st;

a[x+1,y+1]:=st;

if (a[x, y+1]=1)or (y=19)or (a[x+2,y+1]=1)or (a[x+1,y+2]=1) then new:=true;

wt:=3;

ht:=2;

colr:=1;

end;

{————}

2:begin a[x+1,y]: =st;

a[x+1,y+1]:=st;

a[x+1,y+2]:=st;

a[x, y+1]:=st;

if (a[x, y+2]=1)or (y=18)or (a[x+1,y+3]=1) then new:=true;

wt:=2;

ht:=3;

colr:=1;

end;

{————}

3:begin a[x+1,y]: =st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

a[x+2,y+1]:=st;

if (a[x, y+2]=1)or (y=19)or (a[x+1,y+2]=1)or (a[x+2,y+2]=1) then new:=true;

wt:=3;

ht:=2;

colr:=1;

end;

{————}

4:begin a[x, y]: =st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

a[x, y+2]:=st;

if (a[x, y+3]=1)or (y=18)or (a[x+1,y+2]=1) then new:=true;

wt:=2;

ht:=3;

colr:=1;

end;

{————}

5:begin a[x, y]: =st;

a[x+1,y]:=st;

a[x+2,y]:=st;

a[x+3,y]:=st;

if (a[x, y+1]=1)or (y=20)or (a[x+1,y+1]=1)or (a[x+2,y+1]=1)or (a[x+3,y+1]=1) then new:=true;

wt:=4;

ht:=1;

colr:=2;

end;

{————}

6:begin a[x, y]: =st;

a[x, y+1]:=st;

a[x, y+2]:=st;

a[x, y+3]:=st;

if (a[x, y+4]=1)or (y=17) then new:=true;

wt:=1;

ht:=4;

colr:=2;

end;

{————}

7:begin a[x, y]: =st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

a[x+1,y]:=st;

if (a[x, y+2]=1)or (y=19)or (a[x+1,y+2]=1) then new:=true;

wt:=2;

ht:=2;

colr:=3;

end;

{————}

8:begin a[x+1,y]: =st;

a[x+2,y]:=st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

if (a[x, y+2]=1)or (y=19)or (a[x+1,y+2]=1)or (a[x+2,y+1]=1) then new:=true;

wt:=3;

ht:=2;

colr:=4;

end;

{————}

9:begin a[x, y]: =st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

a[x+1,y+2]:=st;

if (a[x, y+2]=1)or (y=18)or (a[x+1,y+3]=1) then new:=true;

wt:=2;

ht:=3;

colr:=4;

end;

{————}

{————}

10:begin a[x, y]: =st;

a[x+1,y]:=st;

a[x+1,y+1]:=st;

a[x+2,y+1]:=st;

if (a[x, y+1]=1)or (y=19)or (a[x+1,y+2]=1)or (a[x+2,y+2]=1) then new:=true;

wt:=3;

ht:=2;

colr:=5;

end;

{————}

11:begin a[x+1,y]: =st;

a[x+1,y+1]:=st;

a[x, y+1]:=st;

a[x, y+2]:=st;

if (a[x+1,y+2]=1)or (y=18)or (a[x, y+3]=1) then new:=true;

wt:=2;

ht:=3;

colr:=5;

end;

{————}

12:begin a[x, y]: =st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

a[x+2,y+1]:=st;

if (a[x, y+2]=1)or (y=19)or (a[x+1,y+2]=1)or (a[x+2,y+2]=1) then new:=true;

wt:=3;

ht:=2;

colr:=6;

end;

{————}

13:begin a[x, y]: =st;

a[x+1,y]:=st;

a[x, y+1]:=st;

a[x, y+2]:=st;

if (a[x, y+3]=1)or (y=18)or (a[x+1,y+1]=1) then new:=true;

wt:=2;

ht:=3;

colr:=6;

end;

{————}

14:begin a[x, y]: =st;

a[x+1,y]:=st;

a[x+2,y]:=st;

a[x+2,y+1]:=st;

if (a[x, y+1]=1)or (y=19)or (a[x+1,y+1]=1)or (a[x+2,y+2]=1) then new:=true;

wt:=3;

ht:=2;

colr:=6;

end;

{————}

15:begin a[x+1,y]: =st;

a[x+1,y+1]:=st;

a[x+1,y+2]:=st;

a[x, y+2]:=st;

if (a[x, y+3]=1)or (y=18)or (a[x+1,y+3]=1) then new:=true;

wt:=2;

ht:=3;

colr:=6;

end;

{————}

{————}

16:begin a[x, y+1]: =st;

a[x, y]:=st;

a[x+1,y]:=st;

a[x+2,y]:=st;

if (a[x, y+2]=1)or (y=19)or (a[x+1,y+1]=1)or (a[x+2,y+1]=1) then new:=true;

wt:=3;

ht:=2;

colr:=7;

end;

{————}

17:begin a[x+1,y]: =st;

a[x, y]:=st;

a[x+1,y+1]:=st;

a[x+1,y+2]:=st;

if (a[x+1,y+3]=1)or (y=18)or (a[x, y+1]=1) then new:=true;

wt:=2;

ht:=3;

colr:=7;

end;

{————}

18:begin a[x+2,y]: =st;

a[x, y+1]:=st;

a[x+1,y+1]:=st;

a[x+2,y+1]:=st;

if (a[x, y+2]=1)or (y=19)or (a[x+1,y+2]=1)or (a[x+2,y+2]=1) then new:=true;

wt:=3;

ht:=2;

colr:=7;

end;

{————}

19:begin a[x, y]: =st;

a[x, y+1]:=st;

a[x, y+2]:=st;

a[x+1,y+2]:=st;

if (a[x, y+3]=1)or (y=18)or (a[x+1,y+3]=1) then new:=true;

wt:=2;

ht:=3;

colr:=7;

end;

{————}

{————}

20:begin a[x, y]: =st;

{ a[x, y+1]: =st;

a[x+1,y+1]:=st;

a[x+2,y+1]:=st;

a[x+1,y+2]:=st; }

if (a[x, y+1]=1)or (y=20){or (a[x+1,y+3]=1)or (a[x+2,y+2]=1)} then new:=true;

wt:=1;

ht:=1;

colr:=3;

end;

{————}

end;

end;

{—————————————————}

procedure povorot (n:integer);

begin

if x<(12-ht) then

case n of

1:fig:=2;

2:fig:=3;

3:fig:=4;

4:fig:=1;

5:fig:=6;

6:fig:=5;

8:fig:=9;

9:fig:=8;

10:fig:=11;

11:fig:=10;

12:fig:=13;

13:fig:=14;

14:fig:=15;

15:fig:=12;

16:fig:=17;

17:fig:=18;

18:fig:=19;

19:fig:=16;

end;

end;

{————————————————}

begin

clrscr;

gotoxy (20,14);

write ('Enter your name: ');

read (name);

clrscr;

textcolor (red);

gotoxy (35,10);

Write ('TETRIS');

textcolor (1);

gotoxy (10,20);

WRITE ('Made by: Tretyakov Ilia, Sinkovskaia Lida, Ivanova Aleksandra');

gotoxy (30,12);

textcolor (14);

write (name,' Vvedite skorost: ');

read (del);

dell:=del;

z:=0;

repeat

gotoxy (20,13);

textcolor (13);

write ('Vvedite nomera figur (1−8) (esli vse (v) vkonce (o)): ');

read (fi);

case fi of

'1':begin z:=z+1; e[z]: =1; end;

'2':begin z:=z+1; e[z]: =5; end;

'3':begin z:=z+1; e[z]: =7; end;

'4':begin z:=z+1; e[z]: =8; end;

'5':begin z:=z+1; e[z]: =10;end;

'6':begin z:=z+1; e[z]: =12;end;

'7':begin z:=z+1; e[z]: =16;end;

'8':begin z:=z+1; e[z]: =20;end;

end;

Until (fi='v')or (fi='o');

clrscr;

x:=5;

y:=1;

figs:=random (19)+1;

repeat

randomize;

repeat

del:=dell;

fig:=figs;

if fi='v' then figs:=random (19)+1 else

repeat

new:=false;

figs:=random (20)+1;

for z:=1 to 8 do if e[z]=figs then new:=true;

until new=true;

y:=1;

x:=5;

new:=false;

figura (1,1,figs, 1);

colre:=colr;

for z:=1 to 4 do

for s:=1 to 4 do d[z, s]: =a[z, s];

figura (1,1,figs, 0);

repeat

figura (x, y, fig, 0);

for n:=1 to 9999 do begin

if keypressed then ch:=readkey else ch:=' ';

case ch of

'a':if (x>1)and (a[(x-1), y]<>1) then x:=x-1;

'd':if (x<11-wt)and (a[(x+wt+1), y]<>1) then x:=x+1;

'x':begin dell:=del; del:=1;end;

's':povorot (fig);

'p':readkey;

'm':begin new:=true;

a[4,3]: =1;

gotoxy (31,10);

textcolor (yellow);

write ('Dlia vihoda nagmi novaia igra');

end;

end;

delay (del);

end;

y:=y+1;

figura (x, y, fig, 2);

paint;

Until new=true;

figura (x, y, fig, 1);

proverka;

for z:=1 to 10 do

for s:=1 to 20 do begin

if c[z, s]<>a[z, s] then b[z, s]: =cvet (colr);

c[z, s]:=a[z, s];

end;

Until (new=true)and ((a[4,3]=1)or (a[3,3]=1)or (a[5,3]=1)or (a[6,3]=1));

write ('Nagmi dlia vihoda ili dlia prodolgenia igre.');

ch:=readkey;

line:=0;

cls;

Assign (t,'record.txt');

append (t);

writeln (' ');

write (t,' (', name,' ', ochke,');');

close (t);

until ch='q';

end.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ ΡΡ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΡ‹ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈΠ³Ρ€Ρƒ тСтрис Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС Turbo Pascal, Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ:

— ΠΏΠΎΠ»Π΅ ΠΈΠ³Ρ€Ρ‹, сСмь случайных Ρ„ΠΈΠ³ΡƒΡ€ Ρ‚Π΅Ρ‚Ρ€Π°ΠΌΠΈΠ½ΠΎ;

— Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€ Π² ΠΏΠΎΠ»Π΅;

— ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Ρ„ΠΈΠ³ΡƒΡ€;

— ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€ Π² Ρ€ΡΠ΄Ρ‹;

— ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»Ρ‹Ρ… рядов ΠΈ ΠΏΠΎΠ΄ΡΡ‡Ρ‘Ρ‚ ΠΈΡ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π°;

— ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

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

Вся ΠΈΠ³Ρ€Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ crt Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π±Π΅Π· графичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΌΠ°Π»Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Нам Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ³Ρ€Ρ‹ с Π³Ρ€Π°Ρ„ичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, Π½ΠΎ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, для возмоТности Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈΠ³Ρ€Ρ‹ (crt ΠΈΠ»ΠΈ Graph).

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. Π•ΠΏΠ°ΡˆΠ΅Π½ΠΊΠΎΠ² А. М., Π•ΠΏΠ°ΡˆΠ΅Π½ΠΊΠΎΠ² Π’. А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡ€Π΅Π΄Π΅ Turbo Pascal 7.0 / 3-Π΅ ΠΈΠ·Π΄., стСрСотип. — Πœ.: Π”ΠΈΠ°Π»ΠΎΠ³-ΠœΠΈΡ„ΠΈ, 1996.

2. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ сайт http://ru.wikipedia.org/wiki.

3. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ сайт http://256bit.ru/informat/eu_pascal.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘Π»ΠΎΠΊ схСмы:

— function cvet опрСдСляСт Ρ†Π²Π΅Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

— procedure cls ΠΎΡ‚Ρ‡ΠΈΡ‰Π°Π΅Ρ‚ массив поля

— procedure proverka ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡ΠΊΠΎΠ²

— procedure paint Π’Ρ‹Π²ΠΎΠ΄ состояния массива Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

procedure figura нСпосрСдствСнноС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

— procedure povorot рСализация ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

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