jedesa: やぁ! jedesa: ふふ、amigojapan先生 amgigojapan: jedesa: ではまず、オンライン LOGO プログラミング言語へのリンクを貼っておきますね。 Online LOGO programming langauge jedesa: ok jedesa: よっしー、興奮してるよ amgigojapan: やあ、Haniibooruとjedesa amgigojapan: レベル3からスタートします jedesa: 了解 jedesa: 開きました amgigojapan: はい、皆さんいらっしゃいますか? amgigojapan: Haniibooruさん、開きましたか? hanibooru: えっ hanibooru: 今から授業にするの? amgigojapan: はい Haniibooruさん hanibooru: こんばんは、amigojapan先生 amgigojapan: こんばんは、生徒の皆さん。席に着いて、お辞儀をして、クラスに「礼」と言ってください :) amgigojapan: 「礼」って何か知ってる? jedesa: ... jedesa: :D amgigojapan: 礼をするのは、クラス全員に「よろしくお願いします」とお辞儀をすることです :) amgigojapan: では、始める準備はできていますか? jedesa: 準備は出来ました! amgigojapan: Haniibooru: ウェブページに参加しましたか? hanibooru: はい、開きました!亀が見えますよ! hanibooru: 亀さん!! amgigojapan: オーケー、レッスン 1、カメを動かしてみよう amgigojapan: fd 100を試して実行をクリックしてください jedesa: forward? 前進? amgigojapan: はい、LOGOでは進むはfdです jedesa: 亀さんが動きました! amgigojapan: 100は100ピクセルを意味します hanibooru: カメは指関節ほどの長さだけ北へ移動しました。 amgigojapan: Haniibooruさん、素晴らしい仕事でした。まさに私が求めていたものです amgigojapan: あなたも私たちと同じところですか? jedesa: はい amgigojapan: では、レッスン2、カメを回す amgigojapan: 回転させるコマンドは2つあります amgigojapan: rtは右折、ltは左折です amgigojapan: 次に、何度回転させたいかを指定します。このレッスンでは90度しか使用しません amgigojapan: だからfd 100の前にrt 90を試してみてください amgigojapan: 1行目 hanibooru: 助けて。rt 360と入力したけど何も起こらなかった hanibooru: ハハハ、ごめん。もうバカなことはやめよう amgigojapan: 画面は次のようになります:jedesa: なるほど hanibooru: タートルは右に 90 度回転し、上がったのと同じ距離だけ右に移動しました jedesa: 私はカメを動かして回転させました amgigojapan: 素晴らしいですね、君たち! hanibooru: :D amgigojapan: 問題その1、四角形を作り、ウェブページでCtrl+Rを押して画面を更新し、四角形を作ってください amgigojapan: 終わったら、スクリーンショットを送ってください hanibooru: はい、かしこまりました! amgigojapan: :) jedesa: スクリーンショットとは何ですか? jedesa: うーん… amgigojapan: jedesa: スクリーンショットを撮るにはプリントスクリーンキー「Prt sc」キーが使えると思います。そしてx0.atというサイトを使ってアップロードしてください jedesa: Name: jedesa https://x0.at/dWV2.png
jedesa: :D amgigojapan: 見てみますね hanibooru: https://x0.at/Ljmp.png (前の画像と同じ) amgigojapan: jedesaさん、よく出来ました! amgigojapan: 見てみますね Haniibooruさん amgigojapan: よく出来ました Haniibooruさん , しかし jedesaさんがプログラムを作り、君が一行だけを実行させました。 hanibooru: ああ、なるほど amgigojapan: Haniibooru: EnterキーではなくShift+Enterキーを押すことでプログラムを作成できます hanibooru: おおおおおお! hanibooru: もう一回やってみます! amgigojapan: OK amgigojapan: 次のレッスン、ループ amgigojapan: LOGOの最も単純なループはrepeat「繰り返し」と呼ばれます amgigojapan: jedesa: Haniibooru 、まず ctrl+r でブラウザを更新し、プログラムボックスに次のコードを入力して repeat 4 [fd 100 rt 90] を実行し、実行を押します。 hanibooru: ああ、repeat は...関数のようなものですね! amgigojapan: Haniibooru: いや、ループだよ hanibooru: ループです amgigojapan: Haniibooru: 次は関数を見ていきます jedesa: 亀さんが動いて四角形を描きます amgigojapan: そうです、Jedesaさん、Haniibooruさん、[]内の指示を4回繰り返して正方形を作ります hanibooru: なるほど、僕も同じ結果になりました amgigojapan: 皆さん、わかりましたか? jedesa: はい hanibooru: はい amgigojapan: amgigojapan: よし、次のレッスン、関数 amgigojapan: ブラウザを更新して次のプログラムを実行してください to square repeat 4 [fd 100 rt 90] end square hanibooru:2行目をインデント(空間)するのにタブを押しましたか? amgigojapan: はい Haniibooruさん hanibooru: 構文は簡潔にするためですか、それとも絶対に必要なものですか? amgigojapan: LOGOではきれいにするためです、Pythonでは絶対に必要です amgigojapan: 終わったら、教えてください hanibooru: 関数は期待通りに動作し、関数(square) を呼び出すと別の正方形が作成されました。 amgigojapan: まさにその通り。Haniibooruさん amgigojapan: それぞれの単語の意味を説明しましょう jedesa: わあ、亀さんが何かの花を作り出したんだ! to 関数名 関数ボディー end 関数呼び出し jedesa: 別の繰り返しとターンを追加することによって amgigojapan: jedesa: ええ、でも待ってください。私たちはそこに行きます。もしよければスクリーンショットを送ってください hanibooru: jedesa は学習が早いですね :) jedesa: https://x0.at/ZqPw.png
amgigojapan: ええ、よくやった、jedesa! amgigojapan: jedesa: それは「フラクタル画像」と呼ばれます amgigojapan: 関数の各部分の名前を見ましたか? jedesa: へへ、ありあとうHaniibooruさん jedesa: うん、amigojapan先生 hanibooru: ふむ、そうですね。構文は理解できました。functioN_name は関数の名前、function_body は関数の動作、function_call は関数に指定した動作を呼び出します :) amgigojapan: 関数は、コードを何度も繰り返す必要がないようにするために使用するもので、多くの関数呼び出しと1つの関数定義を持つことができ、同じことを行うために書く必要があるコードの量を減らすことができます。 amgigojapan: :)その通りです、 Haniibooruさん hanibooru: おお、これを理解して、正方形を 2 つ重ねて作ることができました。 hanibooru: https://x0.at/Is5Z.png
amgigojapan: では、複数の関数呼び出しを試してみましょう。同じ関数定義が必要ですが、今回は次のようになります: to square repeat 4[fd 100 rt 90] end square fd 100 square hanibooru: ああ、ハハハ、まさに今それをやったよ jedesa: 素晴らしい! amgigojapan: Haniibooru: 素晴らしい、次のレッスンを予測しましたね :) amgigojapan: jedesa: ここまでは私たちと付いてきてるんですか? Hanibooru: えっと、関数 square は既に存在するように暗黙的に定義されているんですか? square と入力するだけで関数が作られることに気付きました。 amgigojapan: Haniibooru: たぶんコードのすぐ上にあると思うよ。 jedesa: うん jedesa: うーん、私も授業中はあまり話さないことが多いです。 amgigojapan: ah Haniibooru , godo discovery, it seems to already be implemented, I did not know hanibooru: within line one I can type square after a refresh, and a square will be made anyhow, even if the function is not already specified amgigojapan: ああ、Haniibooruさん、発見しました。すでに実装されているようですね。知りませんでした hanibooru: 1行目ではリフレッシュ後に「square」と入力すると、関数がまだ指定されていない場合でも、とにかく正方形が作成されます。 amgigojapan: そうだね、Haniibooru、それは定義済みのようだね ―アミーゴジャパンは知らなかった hanibooru: ああ、分かりました。 amgigojapan: OK、次のレッスン、パラメータ jedesa: OK hanibooru: 関数を作成した場合、たとえクリアされていても再度呼び出すことができます。[fd 100] だけで function(line) を作成したところ、リフレッシュ後でも関数が作成されます。function(line) を明示的に指定せずに呼び出しても関数は作成されません :P amgigojapan: 興味深いHaniibooru、私はそれを知りませんでした、しかし、既存の機能については数えません hanibooru: わかりました :) amgigojapan: わかりました。次は次のプログラムを試してください: to square :size repeat 4 [fd :size rt 90] end square 50 square 100 square 200 jedesa: 亀さんがどんどん大きくなる正方形を作りました hanibooru: 正方形は 3 つあり、他の正方形は前の正方形よりも 2 倍大きくなっています。 amgigojapan: 理由は明らかですか? amgigojapan: サイズは「変数」であり、関数に「パラメータ」として送られ、関数内で以前は100だった数値が50、100、200になります。 jedesa: 関数ごとに異なる値を指定したためです :D amgigojapan: はい、jedesaさん amgigojapan: jedesa: 関数呼び出しごとに、はい hanibooru: ああ! jedesa: ああ、そうですか、呼び出しって意味だったんです amgigojapan: よかったですjedesaさん :) amgigojapan: LOGOのコマンドをもう少し学んでみましょう amgigojapan: ブラウザを更新してこれを試してください: pendown fd 10 penup fd 10 pendown fd 10 pendown fd 10 penup fd 10 pendown fd 10 amgigojapan: 何をやっているかは明らかですか? jedesa: 縦ハイフン見たいな!そうでしょう? hanibooru: 今試してみます amgigojapan: はい、jedesaさん、何か質問はありますか? jedesa: まだですよ、amigojapan先生 hanibooru: 3本の縦線が見えます。それぞれの線の間にはスペースがあります。 hanibooru: https://x0.at/EVDV.png
amgigojapan: ええ、ご覧の通り、ペンアップするとタートルは動いている間線を描くのをやめます。そしてペンダウンすると再び線が描けるようになります。 amgigojapan: haniibooruさんを見せてください amgigojapan: うん、hanibooruさん amgigojapan: それですべては明らかですか? hanibooru: そうですね、描いてなくてもカメは動くかもしれませんね。 ジェデサ:うん amgigojapan: わかったわかった amgigojapan: 問題その2 amgigojapan: この漢字を描いてください「一」 amgigojapan: スクリーンショットを見せてください ジェデサ: さあ、始めましょう jedesa: https://x0.at/F5Nd.png
— amigojapanがクリックしてみますね amgigojapan: 完璧です jedesaさん! jedesa: ありおがとうございます jedesa: OK amgigojapan: OK、問題3、この漢字を書いてください「三」。 — jedesa やってみるわ…
amgigojapan: 大丈夫ですjedesaさん,ゆっくりでいいですよ amgigojapan: Haniibooru: よくやった!, 関数を使ったからエキストラポイントあげますよ! amgigojapan: そうですね hanibooru: イエーイ! jedesa: 終わりました jedesa: https://x0.at/mV8P.png (同じような画像) amgigojapan: 見てみます、jedesaさん jedesa: しかし、関数を使わなかったです。 amgigojapan: Haniibooru: コードを貼り付けてもらえますか? hanibooru: もちろん: to ichi rt 90 fd 50 end to down rt 180 fd 50 lt 90 penup fd 25 rt 180 pendown end ichi down ichi down ichi amgigojapan: 素晴らしいHaniibooruさん! amgigojapan: jedesa: 彼のコードを理解出来ましたか? jedesa: 私も関数のつくりました! jedesa: https://x0.at/xfPj.png (前の画像に似てる画像) amgigojapan: Haniibooru: ところで、関数本体の中に改行を入れることができるのはご存知ですか? amgigojapan: jedesaさん、見てみますね jedesa: Haniibooruさん、カッコいい ! hanibooru: amigojapan: 今知ったところ! :D amgigojapan: :) amgigojapan: ok jedesaさん、Haniibooruさん、 君たちは素晴らしい生徒ですよ! hanibooru: イエーイ! amgigojapan: それでは、今日の最後の問題です! amgigojapan: 関数を使ってこの漢字を書いてください: 「品」。漢字は厳密には正方形ではありませんが、正方正方形を使ってもいいですよ hanibooru: 関数だけ? amgigojapan: Haniibooru: ま、せめてsquareの関数を使って欲しいです jedesa: square関数を作らなきゃいけないですか? amgigojapan: はい、jedesaさん — jedesa 考え中… amgigojapan: 大丈夫jedesaさん、ゆっくりでいいですよ amgigojapan: jedesa: Haniibooru: ヒント、まずペンダウンのままで書くと後で、ペンアップとか追加出来ます。 jedesa: 作ってます今… amgigojapan: OK OK jedesa: ちょっとまってください amgigojapan: OK amgigojapan: no problem jedesa: https://x0.at/hYzE.png
— amigojapan クリックします amgigojapan: jedesa: ちょっとズレてるけど、大丈夫です。Haniibooruさんを待ちましょう hanibooru: 今のところこれが出来た https://pastebin.com/dWFYcnS3 to square repeat 4 [fd 30 rt 90] end to shina penup lt 90 fd 15 rt 180 fd 30 pendown end repeat 3[square shina] amgigojapan: Haniibooru、見てみますね。 amgigojapan: Haniibooru: ちょっと歪ですね amgigojapan: Haniibooru: and jedesa , 宿題にしましょう。 同じ日にあとでこれをくれました: ;jedesaさんの「品」プログラム to ms penup fd 25 seth 270 fd 25 seth 0 pendown repeat 4[rt 90 fd 80] penup rt 90 fd 25 rt 90 fd 25 seth 0 end penup setpos[0 50] ms penup setpos[-50 -50] ms penup setpos[50 -50] ms ;Haniibooruさんの「品」プログラム to centersquare penup lt 135 fd 21 rt 135 pendown repeat 4[ fd 30 rt 90 ] penup rt 45 fd 21 lt 45 end centersquare lt 154 fd 34 rt 154 centersquare rt 90 fd 31 lt 90 centersquare ;amigojapanの「品」プログラム home;send the turtle to the center fo the screen cs;clear screen to sq :s repeat 4[fd :s rt 90] end pu setx -35;sets the x coordinate to 35 pd sq 30 pu setx 0 pd sq 30 pu;pen up fd 35 setx -17 pd; pen down sq 30 ht; hide turtle