Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

Трохі аб тым, што з сябе ўяўляла школьная "інфарматыка" у 90-х, і чаму ўсе праграмісты тады былі выключна самавукі.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

На чым вучылі праграмаваць дзяцей

У пачатку 90-х маскоўскія школы пачалі выбарачна абсталёўваць класамі ЭВМ. У памяшканнях адразу ставілі рашоткі на вокны і цяжкія абабітыя жалезам дзверы. Аднекуль з'яўляўся настаўнік інфарматыкі (выглядаў як найважнейшы таварыш пасля дырэктара), асноўнай задачай якога было сачыць, каб ніхто нічога не чапаў. Наогул нічога. Нават уваходныя дзверы.
У класах часцей за ўсё можна было сустрэць сістэмы БК-0010 (у яго разнавіднасцях) і БК-0011М.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так
Фота ўзята адсюль

Дзецям расказвалі пра агульную прыладу, а таксама з дзясятак каманд «Бейсіка», каб маглі намаляваць на экране лініі і гурткі. Для малодшых і сярэдніх класаў, напэўна, гэтага было дастаткова.

З захаваннем сваіх твораў (праграм) тады былі асобныя праблемы. Часцей за ўсё кампутары з дапамогай кантролераў моноканала аб'ядноўвалі ў сетку з тапалогіяй "агульная шына" і хуткасцю перадачы 57600 бод. Дыскавод, як правіла, быў адзін, і з ім часцяком не ладзілася. Тое працуе, то не працуе, то сетка падвісла, то дыскетка не чытаецца.

Я тады цягаў з сабой вось гэты твор ёмістасцю 360 кБ.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

Шанцы на тое, што ў чарговы раз я выцягну з яе сваю праграмку, былі адсоткаў 50-70.

Аднак галоўнай праблемай усіх гэтых гісторый з кампутарамі "БК" былі бясконцыя завісанні.

Гэта магло адбыцца ў любы момант, няхай гэта будзе набор кода або выкананне праграмы. Завіслая сістэма азначала, што 45 хвілін часу ты пражыў дарма, т.я. даводзілася рабіць усё спачатку, але астатняга часу ўрока для гэтага было ўжо не дастаткова.

Бліжэй да 1993 году ў асобных школах і ліцэях з'яўляліся нармалёвыя класы з 286-мі машынамі, а месцамі стаялі нават траячкі. Па частцы моў праграмавання было два варыянты: там, дзе сканчаўся «Бейсік», пачынаўся «Турба Паскаль».

Праграмаванне на "Турба Паскале" на прыкладзе "танчыкаў"

На "Паскале" дзяцей вучылі будаваць цыклы, адмалёўваць усялякія функцыі, працаваць з масівамі. У фізмат-ліцэі, дзе я адзін час «насяляў», на інфарматыку адводзілі адну пару ў тыдзень. І два гады там была вось гэтая вось нудота. Зразумела, жадалася зрабіць нешта больш сур'ёзны, чым выснова на экран значэнняў масіва ці нейкай сінусоіды.

Танчыкі

Battle City была адной з самых папулярных гульняў на прыстаўках клонах NES (Dendy і інш.).

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

У 1996-м папулярнасць 8-бітак мінула, яны даўно пыліліся ў шафах, і мне здалося прышпільным у якасці чагосьці маштабнага зрабіць менавіта клон «Танчыкаў» для ПК. Далей якраз аб тым, як тады трэба было выкруціцца, каб запілаваць на "Паскале" нешта з графікай, мышкай і гукам.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

Маляваць можна толькі палачкі і кружочкі

Пачнём з графікі.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

У базавым варыянце "Паскаль" дазваляў маляваць некаторыя фігуры, зафарбоўваць і вызначаць колеры кропак. Самыя прасунутыя працэдуры ў модулі Graph, якія набліжаюць нас да спрайт, гэта GetImage і PutImage. З іх дапамогай можна было захопліваць у папярэдне зарэзерваваную вобласць памяці ўчастак экрана і потым выкарыстоўваць гэты кавалак як растравы малюнак. Іншымі словамі, калі вы жадаеце шматкроць выкарыстоўваць на экране нейкія элементы ці малюнкі, вы іх спачатку адмалёўваеце, капіюеце ў памяць, сціраеце экран, адмалёўваеце наступнае і так датуль, пакуль не створыце ў памяці патрэбную бібліятэку. Паколькі ўсё адбываецца хутка, карыстач гэтых фокусаў не заўважае.

Першы модуль, дзе ў ход пайшлі спрайты - рэдактар ​​карт.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

У ім было размечанае гульнявое поле. Клік мышкай выклікаў меню, дзе можна было абраць адзін з чатырох варыянтаў перашкод. Дарэчы пра мышку…

Мыш - гэта ўжо канец 90-х

Мышы, зразумела, былі ва ўсіх, але да сярэдзіны 90-х карысталіся імі толькі ў Windows 3.11, графічных пакетах і яшчэ невялікім ліку гульняў. У Wolf і Doom секліся толькі з клавіятуры. Ды і ў DOS-асяроддзі мыш была не асоба патрэбна. Таму ў Borland модуль працы з мышшу нават не ўключалі ў стандартную пастаўку. Яго трэба было шукаць па знаёмых, якія разводзілі рукамі і ў адказ усклікалі "а нафіга ён табе?".

Аднак знайсці модуль для апытання мышкі - гэта толькі палова справы. Каб мышшу клацаць па экранных кнопках, іх трэба было намаляваць. Прычым у двух варыянтах (націснутую і не націснутую). У не націснутай кнопкі верх светлы, а пад ёй цень. У націснутай наадварот. І адмаляваць затым на экране тройчы (не націснутая, націснутая, потым ізноў не націснутая). Плюс не забыцца паставіць затрымкі на адлюстраванне, ды і схаваць курсор.

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

Напрыклад, апрацоўка галоўнага меню ў кодзе выглядала вось так:

Танчыкі на Паскале: як вучылі дзяцей праграмаванню ў 90-х і што з гэтым было не так

Гук - толькі ціўкалка PC Speaker

Асобная гісторыя з гукам. У пачатку дзевяностых клоны Sound Blaster толькі рыхтаваліся да свайго пераможнага шэсця, і большасць прыкладанняў працавалі толькі з убудаваным дынамікам. Максімум яго магчымасцяў - гэта адначасовае ўзнаўленне толькі аднаго тону. І менавіта гэта дазваляў зрабіць Turbo Pascal. Праз працэдуру sound можна было "папішчаць" рознымі частотамі, чаго дастаткова для гукаў стрэлаў і выбухаў, але для музычнай застаўкі, як тады было модна, гэта ўсё не падыходзіла. У выніку знайшлося вельмі хітрае рашэнне: ва ўласным архіве софту выявіўся "экзешничек", запампаваны калісьці з нейкай BBS-кі. Ён умеў дзеяць цуды прайграваць несціснутыя wav-ы праз PC Speaker, прычым рабіў гэта з каманднага радка і не меў уласна інтэрфейсу. Усё, што трэба было - гэта выклікаць яго праз паскалеўскую працэдуру exec і прасачыць, каб гэтая канструкцыя не абрынулася.

У выніку забойны музон на застаўцы з'явіўся, але з ім выйшла забаўная штука. У 1996 году ў мяне была сістэма на Pentium 75, раскочегаренным да 90. На ім усё працавала выдатна. У ВНУ ж, дзе нам на другі семестр паставілі Pascal, у навучальным класе стаялі відалыя «траячкі». Па дамоўленасці з выкладчыкам я пацягнуў на другі занятак гэтыя танчыкі, каб атрымаць залік і больш туды не хадзіць. І вось, пасля запуску са спікера паваліў гучны роў уперамешку з булькатлівымі гартаннымі гукамі. Увогуле, 33-мегагерцовай траячцы DX апынулася не пад сілу звычайна круціць той самы экзэшнічак . Але ў астатнім усё было нармальна. Вядома, не лічачы заторможенного апытання клавіятуры, які псаваў увесь геймплэй па-за залежнасцю ад прадукцыйнасці ПК.

Але асноўная праблема не ў "Паскале"

У маім разуменні Танчыкі гэта максімум, што можна было выціснуць з Turbo Pascal без асэмблерных уставак. З відавочных недахопаў канчатковага прадукта – павольнае апытанне клавіятуры і павольнае адмалёўванне графікі. Пагаршала сітуацыю вельмі малая колькасць іншых бібліятэк і модуляў. Іх можна было палічыць па пальцах адной рукі.

Але больш за ўсё мяне хваляваў падыход у школьнай адукацыі. Дзецям ніхто тады не расказваў пра перавагі і магчымасці іншых моў. На ўроках практычна адразу пачыналі казаць пра begin, println і if, што замыкала вучняў усярэдзіне бэйсіка-паскалеўскай парадыгмы. Абедзьве гэтыя мовы можна лічыць выключна навучальнымі. Іх «баявое» ужыванне - рэдкая з'ява.

Навошта вучыць дзяцей фэйкавым мовам - для мяне загадка. Няхай яны больш наглядныя. Няхай разнавіднасці «Бейсіка» дзе-нідзе выкарыстоўваюцца. Але, у любым выпадку, калі чалавек задумае звязаць сваю будучыню з праграмаваннем, яму давядзецца вучыць з нуля іншыя мовы. Дык чаму б дзецям не ставіць тыя ж навучальныя задачы, але толькі ўжо на нармальнай платформе (мове), у рамках якой яны маглі б развівацца далей самастойна?

Дарэчы аб задачах. У школе і інстытуце яны заўсёды былі абстрактныя: палічыць тое, пабудаваць функцыю, намаляваць нешта. Я вучыўся ў трох розных школах, плюс у нас быў «Паскаль» на першым курсе інстытута, і ні разу выкладчыкі не ставілі якой-небудзь рэальнай прыкладной задачы. Напрыклад зрабіць запісную кніжку ці яшчэ нешта карыснае. Усё было надуманае. А калі чалавек месяцамі вырашае пустыя задачы, якія потым ідуць у кошык… Увогуле, з інстытута людзі ўжо выходзяць выгарэлымі.

Дарэчы, на трэцім курсе той жа ВНУ нам у праграму паставілі "плюсы". Накшталт і справа добрае, але народ быў стомлены, наеўшыся фэйкаў і "навучальных" задач. Энтузіязму, як у першы раз, ні ў каго не назіралася.

PS Пагугліў на тэму таго, якія мовы зараз выкладаюць у школах на ўроках інфарматыкі. Усё як і 25 гадоў таму: Basic, Pascal. Адзінкавымі украпінамі ідзе Python.

Крыніца: habr.com

Дадаць каментар