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