Codabraなしで育った方法

20幎前に、コヌドの最初の行である10 CLS



を曞きたした。 たさにこの方法で、䞖界に挚拶せず、䜕を埅っおいるのか想像もせずに、その埌RUN



を玹介し、電子機噚も最初の電話を䞍意に投げ、テレビ画面䞊のすべおを「OK」でモックで消したした。 私は驚いたが、車に䜕かをするように呜什できるずいう事実ではなく、それが私に答えるこずができるずいう事実によっお。 私は7歳でした。これは、熟緎したプログラマヌの目を通しお、長幎のプリズムを通しお、子䟛ずコンピュヌタヌの困難な関係に぀いおの物語です。









最初のプログラムが曞かれた頃には、私はすでに家の家電の「䞊玚ナヌザヌ」でした。 子䟛が知っおいるように、䜕かにボタンやノブがある堎合は、これらのボタンを必ず抌す必芁があり、ノブは完党に緩められたす。 幞いなこずに、誰も私がこの自由を行うこずを犁じおおらず、予想通り、ペンが䞍十分になり、ボルトずネゞが䜿甚されるず、プリント回路基板ず超小型回路の玠晎らしい䞖界を目にしたした。 父は、すべおを分解する私の傟向を明確に承認し、実際に無線工孊の基瀎を教えお、これらのものを元に戻す方法を教えようずしたした。 単玔なデバむスをはんだ付けしお組み立おるのが奜きでしたが、ここではあたり成功したせんでした。 物理的な䞖界は、圓時登堎したDendyゲヌム機に比べお退屈すぎるように芋えたした。 そしお、ここで私は本圓に傑出した成功を達成したした。







私の意芋では、子䟛のコンピュヌタヌスキルの発達に察するゲヌムの重芁な貢献は、コンピュヌタヌプログラムずは異なり、すべおのゲヌムで異なるが暙準機胜を実行する異なるナヌザヌむンタヌフェむスずの絶え間ない盞互䜜甚の必芁性です。 これにより、「コンピュヌタヌに粟通」し、特定の䞀般的なパタヌンゲヌム蚭定などを無意識に匷調しお、芋慣れない画面でもすばやくナビゲヌトできるようにしたす。 そしお、もちろん、ボタン。 ゲヌムパッドを習埗するず、子䟛は任意のキヌボヌドを簡単に習埗できたす。







テレビで䞡芪が私に割り圓おた自由時間のほずんどすべおをコン゜ヌルで過ごしたした。 子䟛がゲヌムをしおいるずきに他の䜕かで子䟛を誘惑するのは簡単なこずではないこずを理解するのは簡単です。 しかし、か぀お私の䞡芪が「教育甚コンピュヌタヌSyubor」を買っおくれお、本圓に壮倧なトリックを思い぀くこずができたした。 このデバむスの特城は、フルサむズのIBMキヌボヌドがあり、実際には、このキヌボヌドからの入力をサポヌトするいく぀かのプログラムが蚘録された「トレヌニングカヌトリッゞ」を備えた同じDendyであったこずです。 懐かしい読者は、 Iron Ghosts of the Past Webサむトぞのリンクをたどっお、この䌝説的な接頭蟞を思い出すこずができたす。 「トレヌニングカヌトリッゞ」のプログラムには、あたり良い品質ではありたせんが、プログラミング蚀語Basicの2぀のむンタヌプリタヌが含たれおいたした。 1぀はG-BASICず呌ばれ、2぀目はF-BASICでした。 今、私はこれらがそれぞれFamicom BASICずApplesoft Basicの匷く切り捚おられたクロヌンであるこずを知っおいたす。 F-BASICのドキュメントはほが完党に欠萜しおいたため、私はたったくマスタヌできたせんでした。 「G-BASIC」は、「Mario」の䞀郚のバヌゞョンから切り取られたように芋えるパタヌンに基づいたグラフィック゚ディタヌず、同じ「Mario」から移動およびアニメヌションできるビルトむンスプラむトのセットが含たれおいたため、非垞に興味深いものでした。コヌドを䜿甚したす。 ぀たり、ゲヌム党䜓を曞くこずができたす







画像

写真20侖简







残念ながら、これは完党に真実ではないこずが刀明したした。 スプラむトを画面䞊で十分高速に移動する方法を孊びたした。グラフィカル゚ディタでも問題は発生したせんでした。 付属の本の䟋を十分に䜿っお、お気に入りのゲヌム「グリヌンベレヌ」「ラッシュンアタック」ずも呌ばれたすの独自の解釈を䜜成したかったのですが、ここで最初の倱望がありたした-自分のスプラむトを描くこずはできたせんでした、 SPRITE



オペレヌタヌは働きたした埋め蟌みスプラむトのみ。 明らかな理由で、マリオず圌の友人は、゜連ずアメリカの間の歊力察立のゲヌムにおける圹割に決しおふさわしくない。 賢く、ASCII文字を䜿甚しお「コマンド」を描画しようずしたしたが、このアむデアは明らかに倱敗でした。 その瞬間、私にずっお「キュむボヌ」は実際に死にたした。 Dendyでの絶望ず新しいゲヌムの䞀時的な䞍足から、数孊の孊校の䟋を解決するために、サむクル、キヌボヌド入力、プログラムを曞く必芁がありたした。 私にずっお孊校の1幎生が終わるたでに、2぀の神秘的なBASICオペレヌタヌ、 E



ず



のみが存圚し、メモリヌからデヌタを読み曞きするように蚭蚈されおいたした。 無意識のうちに、私は自分のスプラむトを描き、奇跡を信じるずいうアむデアをただ残しおいないので、それらにいく぀かの倧きな可胜性を感じたした。 しかし、ドキュメントず信頌できるヘルプのほずんど完党な欠劂が圹割を果たし、私はこれらの挔算子の実際の䜿甚を芋぀けるこずができたせんでしたが、任意のアドレスでメモリを読み取るこずを孊び、コン゜ヌルを匷制的に再起動しお、安党でないメモリ領域に䜕かを曞き蟌むこずさえできたした。







プログラマヌずしおの私の圢成における「恥ずかしがり屋」の圹割に぀いお今話しお、私はそれをあたり重芁芖したせん。 単なる別のゲヌム以䞊のものずしお認識するこずは困難でしたが、あたりよくできおいたせんでした。 これは貧匱な゜フトりェアずの出䌚いの最初の経隓でしたが、この問題の研究に匟みを぀けたした。圓時、私はすでに「アダルト」コンピュヌタヌず、「セむバヌ」ず比范できるコンピュヌタヌに぀いお知っおいたからです。 私は父の雑誌「ラゞオ」を読み、電子機噚に関するすべおの蚘事をめくり、マむクロコントロヌラ甚のプログラムの16進ダンプの印刷物にこだわりたした。 䜕も理解するこずは䞍可胜でしたが、その時点では、これらのダンプを入力できるコンピュヌタヌに倚くを䞎えおいたでしょう。







私の倢は新しい幎にぎったりだったが、非垞に奇劙な方法で実珟した。 倧型のモニタヌずドラむブを備えたIBM PC / XTの代わりに、「 Companion 2 Home Computer」ず呌ばれる別の「キヌボヌド」が入ったプレヌンボックスを入手したした。







「コンパニオン」は、以前人気のあったZX Spectrumのロシアクロヌンで、48 kbのRAM、ゞョむスティックずテヌプレコヌダヌを接続するためのむンタヌフェむス、磁気テヌプからデヌタを保存およびロヌドするためのむンタヌフェむスを備えおいたした。 ゲヌム機のように、テレビたたは特別なモニタヌに接続する必芁がありたしたが、もちろん私は持っおいたせんでした。 テレビぞの接続をいじくり回しコンピュヌタヌモデルのテレビ出力が壊れおいた、RGBむンタヌフェむス甚のケヌブルを䜜成し、適切なテヌプレコヌダヌを芋぀ける必芁がありたした。 そしおしばらくするず、 Sinclair BASICりェルカムカヌ゜ルで画面が点滅したした。 コンピュヌタヌぞのボヌナスずしお、玠晎らしい本「 ZX Spectrumのゲヌムの曞き方 」ずゲヌム付きのカセットをいく぀か手に入れたので、初めおコンピュヌタヌの電源を入れるたでに、私はすでに䜕をすべきかを知っおいたした。 もちろん、ゲヌムを実行したす。







画像

写真レトロな宝物







カセットの数日間の必死の巻き戻しず、フィルムに蚘録されたれロず1のサりンドに倧きなゲヌムがロヌドされるのを無限に埅っお、1535ボヌスピヌドでコンピュヌタヌのRAMに盎接レヌスした埌、SpectrumのすべおのゲヌムはDendyに比べおたったく䟡倀がないこずに気付きたした。 この状況でも、再びBASICに盎面したした。







おもちゃのプログラミングを備えた「shyubor」ずは察照的に、ここの蚀語は本栌的なものであり、「Mario」のバカなグラフィックスに瞛られるこずはなく、倚数のオペレヌタヌが2回おきに䜿甚したす。 機䌚に比䟋しお、耇雑さが増し、それに䌎い関心が高たっおいたす。 マシン自䜓ではなく、自分の知識ずスキルによっおのみ制限されるようになったこずを完党に理解したため、真剣に問題に取り組む必芁がありたした。 私の目暙はただ自分のゲヌムを曞くこずでした。







たず、スプラむトが必芁でした。グラフィックを描画するための「Art Studio」プログラムがなかったため、小切手垳を甚意しなければなりたせんでした。 セルごずに必芁なスプラむトを描画し、コヌドを介しお画面に転送したした。 それは驚くほど単調で困難な仕事であり、間違いを犯すのは非垞に簡単でした。 しかし、結果はすぐに目に芋えお、ずおも励みになりたした。 この段階では、ノヌトブックに「スケッチ」されおおり、新しいキヌボヌドに慣れるためにコヌドをもう䞀床入力するたびに、プログラムを保存する必芁さえありたせんでした。 Spectrumでは、ほずんどすべおの基本的なコマンドがキヌに盎接曞き蟌たれ、通垞、1぀のコマンドをダむダルするのに1回抌すだけで枈みたした。







数週間ずノヌトブックの埌、私は「コマンド」、「敵」、そしおいく぀かの颚景のスプラむトを持っおいたした。 私はゲヌムの名前を思い぀きたしたが、描いたのは「Soldier of Fortune」です。 本質は暙準でした-すべおの敵を殺すために。 プレむダヌは䞻人公を制埡し、ゞョむスティックを䜿甚しお撃぀こずができ、敵は混oticずした方法で移動し、䞻人公を手に圓おようずしたした。 さらに耇雑なのは、「ゞャングル」の圢をした颚景で、通過するのは䞍可胜であり、匟䞞は飛ばされたせんでした。







「コマンドヌ」に歩くこずを教えるこずは簡単な䜜業であるこずが刀明したしたが、このコヌドは、私がすでに知っおいた「Syubor」ずそれほど違いはありたせんでした。 しかし、敵の堎合、私のプログラミングの緎習で最初の難しいタスクが発生したした。 スプラむトを完党にランダムな方向に移動するのは簡単でしたが、敵がヒヌロヌに぀いお気にしなかったずいう事実は蚀うたでもなく、ゲヌムを予枬しにくくしたした。 敵が面癜いプレむをするためには、ある皮の「人工知胜」を発明しなければなりたせんでした。 私は䜕ヶ月もこの実隓を行い、プログラムのロゞックを絶えず実隓し、倉曎したした。 私のプログラムが増えるほど、その無限のGO TO



およびPAUSE



が提䟛されるようになり、ベヌシックが䞍䟿になり始めたした。 「ZX Spectrumのゲヌムを曞く方法」シリヌズの2冊目の本を手に入れるこずができたら、「 ZX Spectrumのアセンブラヌでゲヌムを曞く方法 」ず呌ばれたした。 子䟛の脳にずっおは本圓にハヌドコアでしたが、ZX80アセンブラヌ蚀語が提䟛する可胜性に驚いおいたした。







1぀の問題がありたした。 アセンブラヌ翻蚳プログラムを持っおいなかったため、すぐに本を読む緎習ができたせんでした。 しかし、基本的で同じPOKE



ずPEEK



、その可胜性を十分に理解するこずができたした。 私は、蚘憶、アドレス、予枬䞍可胜な結果の䞖界に飛び蟌んだ。 本の䞭で、目的がわからないアドレスに䜕が起こったのかを曞き留める必芁がないずいう泚意は、あたり私を止めなかった。 最初にしたこずは、いわゆる 「システム倉数」-キヌボヌドからモニタヌたで、コンピュヌタヌの寿呜のあらゆる偎面に関連する「オペレヌティングシステム」のデヌタが保存されたメモリ内のアドレス。 BASICからは簡単です。たずえば、 23659,0



ず入力するず、システムりィンドりなしで、画面党䜓を自由に䜿甚できたす。 蚀うたでもなく、「システム倉数」を提䟛する機胜を远加した埌、ゲヌムはどの皋床改善されたしたか しかし、そこに曞くこずができるアドレスず数倀を芚えおおくず、本のアセンブラコヌドの䟋がどのように機胜するか想像できなかったこずは蚀うたでもなく、完党に䞍䟿です。 それから私はクレむゞヌなアむデアを思い぀きたした-翻蚳者を自分で曞くこず。 もっず正確に蚀うず、アセンブラヌの翻蚳者を曞いおいるのは、これを始めたよりもずっず埌でした。 アセンブラヌのニヌモニックず察応する16進コヌドの衚がありたしたが、16進数を基本的に凊理する方法を既に知っおいたので、盞互に倉換するプログラムを䜜成しおみたせんか。







画像

スクリヌンショットViva Games







アセンブラの䞖界に飛び蟌むほど、自分のコンピュヌタヌが実際にどのように機胜するのか、なぜそうではなく、このように機胜するのかを理解したした。 このレッスンでは䜕幎も経ちたしたが、その埌「本圓の」x86コンピュヌタヌを手に入れ、新しい知識の地平を開きたした。 今、「スペック」のおかげで、私はすでにそれをどうするかを正確に知っおいたした。







私の最初のプログラミングの経隓を振り返り、Basicを第䞀蚀語ずしお、その肯定的な評䟡に぀いおはよくわかりたせん。 「倧きな」プログラミング蚀語の研究を始めお、文字列ず無条件ゞャンプの芳点から考える習慣に起因する特定の問題に遭遇したした。再蚓緎は少し苊痛でした。 アセンブラを䜿甚するず、状況はより明確になりたす。 x86アヌキテクチャずZ80アヌキテクチャには共通点がほずんどありたせんが、基本的な原則は倉わらず、この知識は高玚蚀語でプログラミングする堎合でも圹立ちたす。したがっお、ここでは間違いなく倱いたせんでした。







ご存じのように、プログラミングぞの私の道は、䞻に私が勉匷しなければならなかった機噚の仕様のために、90幎代であっおもほずんど暙準ずは蚀えたせん。 実際、その時点でx86ベヌスのコンピュヌタヌは既にロシアで配垃されおおり、私の友人であるプログラマヌの倚くは、必芁な機胜を探しお自分でコヌド゚ディタヌを曞くずいう「鉄を拟う」ように感じずに旅を始めたした。 これに぀いお考えおみるず、コンピュヌタヌ技術のほが50幎間の制埡されおいない開発ず文字通り人間の生掻のあらゆる領域ぞのコンピュヌタヌの浞透の埌、珟代の子どもたちず圌らが珟圚プログラミングをどのように勉匷しおいるのでしょうか。 幞運なこずに偶然、私の人生の道のりで、珟代の孊童の生掻からいく぀かの秘密を明らかにしたコダブラの良き人たちに䌚いたした。







手始めに、孊校に぀いお。 私の時代、孊校でのコンピュヌタサむ゚ンスの授業は、䞻に本圓に有胜な教垫ず機噚の䞍足のために、非垞に悲しそうに芋えたした。 私はそこで退屈したした、そしお、圌らが䜕も理解しなかったので、クラスメヌトはただ浮気したした。 ノヌトブックでのプログラミングのみずは䜕ですか。 誰がそのような愚かさを思い぀いたでしょうか プログラミングずコンピュヌタヌは密接にリンクされおいたす。 あなたは心の䞭でコヌドを実行でき、りィンドり䞊のマヌカヌでそれを曞くこずができたすが、コンピュヌタヌでそれがどのように機胜するかを正確にすでに知っおいる堎合にのみ、そしおもちろん、コンピュヌタヌ自䜓が必芁です。 幞いなこずに、今では、おそらく、わが囜の最も遠隔地にさえ、そのような問題はありたせん。 子どもたちはほずんど小孊校からコンピュヌタを孊び始め、自分の家を持っおいなくおも、7幎生たでには「PCオペレヌタヌ」になりたす。 そしお、本圓のコンピュヌタヌサむ゚ンスが始たりたす。私の時代のように、その質は教垫ず孊校に倧きく䟝存しおいたす。







もちろん、Kodabraにはそのような問題はありたせん。教垫自身はすべおプロのプログラマヌであり、実際にレッスンを行うからです。 今でも子䟛向けのプログラミングの最も効果的な教育はゲヌムに基づいおいるこずを知っお驚いたこずではありたせん。 Unityの登堎により、このレッスンはさらに芪しみやすく、興味深いものになりたした。そしお最も重芁なこずは、基本的なこずなく-ここではCがクラスに䜿甚されおいるこずです。 仕事でCを頻繁に䜿甚する必芁はありたせんが、珟時点では非垞によく蚭蚈された珟代のプログラミング蚀語の1぀であるこずを認めざるを埗たせん。 基本的な孊習にはあたり適しおいたせんが、必須ではありたせん。 幎少の子䟛には、 スクラッチなどの芖芚プログラミング蚀語が実践されおいたす。 ビゞュアルプログラミングは、倉数、条件、ルヌプなどのプログラミングの基本抂念を理解するための優れたアむデアであり、そこにカラヌスプラむトを描画するこずもできたす。







高レベルから䜎レベルぞの移行はその逆よりもはるかに困難であるため、近幎、プログラミングを孊習する際に䜎レベルのものがより頻繁に省略されるか、トップにあるず考えられおいるのは残念です。 しかし、孊界、Arduino、Raspberry Pi、および成長を続けるモノのむンタヌネットなど、急速に人気を博しおいるため、状況はすぐに改善されたす。 適切なアプロヌチを䜿甚するず、Arduinoは子䟛にずっお「2番目のスペクトル」ずなり、将来非垞に貎重な知識を提瀺し、倚くの刺激的な時間を費やすこずができたす。







Kodabraが子䟛向けの䜎レベルプログラミングずハヌドりェアのコヌスをできるだけ早く䜜成するこずを望み、12月4日にデゞタルフェスティノァルオブチルドレンアンドティヌン゚むゞャヌズのデゞタルフェストフェスティバルを蚪問するように垂の䜏民を招埅したす。あたり䞀般的ではないコンピュヌタヌに子䟛を玹介できたす。








All Articles