スピーカ1:今、私が望んでいるとし スクラッチの能力を与えるために 同様にくしゃみする。 さて、私の最初の本能だろう 作るために、以前のように、であること ブロックは、このくしゃみを呼び出します。 私が指定したいことを指定する 数が何回 傷がくしゃみする必要があります。 その後[OK]をクリックする。 私は右にかけ、これを動かしてみよう 自分自身にいくつかのより多くの部屋を得た。 した後、私は再び繰り返すに行こう、 nのデフォルト10を上書き。 私が言う文に行こう と「こんにちは」ではないと言うが、 1秒間「ハクション」。 そして、一瞬の休息を取る。 そして、それはこれだけです。 今、私はくしゃみと呼ばれるブロックを持っている、 だけでなく、咳と呼ばれるブロック。 私がしたい場合は、ここで咳をスクラッチするよう 私は単純に指定することができ、くしゃみ 彼の咳の下にくしゃみ。 3回言う。 緑の旗をクリックして、私がすべき 実際に参照して、咳、咳、咳。 ハクション、ハクション、ハクション続く。 これまでの私の最も現実的なくしゃみ。 それでは、何かに気付く この設計について悪い。 私は完全に重複していなくても 任意のパズルのピースは、私 間違いなくかなりのドラッグ&ドロップ 与えるのとほぼ同じパズルのピース、 1機能ほんの少し その他、くしゃみとは異なる名前 咳に対して。 だから、これは因数分解のための機会である いくつかの一般的なコードが不足しています。 実際、唯一の違いに気付く 咳やくしゃみの間の1である スクラッチ "は、咳を」と言っています 他方は「ハクション」を言っ だから我々は何とかこれを一般化することができませんでした 我々だけでこのような方法でコード 我々が望むものを言葉で指定 滞在するスクラッチする? そして、その単語によっては、意志 効果的に咳であるか、 それはくしゃみとなります。 それでは、先に行くと、これを実行してみましょう。 それでは第三の機能と電話をしてみましょう この1は、 "と言う。"そして私はそれがしたい 数字だけが、今回、ではない受け入れる そうでないとして知られている文字列を、 単語または語句。 そして、我々は、この "言葉"を呼ぶことにします そして、何私が言いたいのですか? そして何回やる この言葉を言いたい? さてそれでは番号を指定でき、 Nもう一度呼び出す。 そして、ちょうど、このブロックを作る 読み、私が先に行くと、追加してみましょう ラベルには、「時代」と呼ばれるようにするとき 左から右に、このブロックを読み取ると、 文字通り "という言葉をn回と言う。」と言う 今、私が先に行くし、[OK]をクリックしてみましょう。 そして今、私は、このブロックを実装してみましょう、 再度リピートブロックを使用して。 私がしたいことを指定 それはn回繰り返す。 私が言いたいことを指定 1秒のための何か。 しかし、ではなく、ハードコードされたもの この関数には、代わりにドラッグしてみましょう との言葉をドロップ 渡され それでは、その後1秒を待ちましょう。 そして今度は戻って、私を改善しましょう くしゃみや咳の実装、 彼らはこれを呼び出すように 今度は機能します。 それでは、このコードを捨てましょう。 のは、このコードを捨てましょう。 それでは、私のカスタムブロックに行こう と「言う」の中にドラッグします。 引数を入力 三回の「咳」。 INとダウンここましょうドラッグして」と言う」 「ハクション」3回。 だから今私は戻って私を洗練させて 咳やくしゃみの実装、 これらの二つの関数となるような方法で それによって、この第三の関数を呼び出す 量を最小化する のコードを複製します。 それでは、文字通り投げてみましょう このコードの距離。 のは離れてこのコードを投げてみましょう。 そして今回は、のは単にそれを指定できます 咳がで実装する必要があります 「咳」何回かnを言う。 と同様に、我々は戻って行くことができます それは使用するようにくしゃみを再実装 引数で言う 「ハクション」n回の。 だから我々は何をした? 我々はされたコードを認識してきた 私たちの咳と私たちの両方に共通 機能をくしゃみ、にそれを因数分解 その後、新しい第三の機能、および 書き換え咳やくしゃみなどで 彼らは、その呼び出し方法 第三と新機能。 今、私たちは絶対にこの全体を作った それよりも複雑なプログラム 本当にある必要があります。 結局、一日の終わりに、我々 わずか3回の咳をスクラッチする必要があります そして3回くしゃみ。 そして、我々はでそれを行っている可能性が わずか数パズルのピース。 しかし、我々のプログラムは、はるかに多くを得るように より複雑な、そして私たちのプログラム 洗練された、この技術の 一般的なコードを因数分解するか、 階層的なプログラムを分解する 小さい関数に、それぞれが 他の関数を呼び出すことは非常にある 説得力のある技術である。 それはあなたのコードのことを確認するから、 それは、より複雑な、遺骨を取得しても、として 更新が容易で、また、非常に読みやすい。 確かに、最終的な結果を考慮してください。 グリーンフラッグがクリックされると、咳 三回、三回くしゃみ。 そして、それはこれだけです。 実際には、のはまさにそれをやらせる。 緑の旗をクリックして、我々は1を得る 、2咳、3咳咳。 続いて、我々は、一度くしゃみ、願っています 2くしゃみ、そして第三のくしゃみ。 彼はすぐに良くなります願っています。