(Basic Programing)
![]() |
縦並びの九々 |
九九の表(のようなもの)
2×2=4
2×3=6
:
:
9×9=81
![]() |
2重ループの書き方例 |
これを表示するプログラム例:
for(i<-2 to 8 ; j<-2 to 8)
println(i+"×"+j+"=...")
表として2次元に印字したければ、
forを二重に使って
![]() |
九々の表のイメージ |
for(i<-1 to 5) {
for(j<-1 to 5)
print(i+"×"+j+"=... ")
println("")
} // このブレースは重要
println
ではなく print
を使い、![]() |
改行のさせ方 |
println
を呼んで改行させることになる。注)この場合は前述のような1つのforにまとめる書き方はできない。
直線で曲線
7 は 長方形を描いてからそれを回転(rotate関数)させたもの(右下図)です。
![]() |
長方形を回転 |
使う構文 if ~ else
演算子 % 整数の剰余
解説は別ページ
ーーー (以下 5.11 ~ 5.13節は各自読んでおいて下さい)
線の色を指定する setPenColor(green) など
色を表す値として、
等が使えるが、自分でRGB値を指定してcolor関数で作ることもできる。
複数の色を入れ替わりで使う方法:
val colors=Array(red,green,blue,brown)
for(i<- ....)
setPenColor(colors(i%colors.length))
色を自由に作る
color(r,g,b) //r,g,b はそれぞれ 0 ~ 255の間の値
グラデーション
grayColors()
lerpColor(from,to,amount)
// from to に色名を指定し
// amountには 0と1の間の数値(実数)を与える
以前に、レシーバなしの関数呼出(forward()など)ではなく、
タートル t に対してメソッド呼出(t.forward() などの形)で呼び出したのと同様に、
描画関数の返す値(オブジェクト)を変数に記憶しておいて、
そのオブジェクトをレシーバ(ピリオドの左側)としてメソッドを呼び出すことができる。
メソッドとして、すでに描画した図形の、形や色を変える機能がいくつかある。
val c=s.circle(0,0,100)
animate{
c.translate(-1,0) // オブジェクトを相対移動
}
// 描画関数はオブジェクトを値として返す
// オブジェクトに様々なメソッドが使える
// 描画オブジェクトの属性を後から(メソッド呼び出しで)変更する例
val s=Staging
val c=s.circle(0,0,100)
c.setPenColor(blue)
c.setFillColor(yellow)
他に、rotate() ; 原点を中心に回転させる、scale() ;サイズを伸縮させる、
といったメソッドもある。
loop {
val x=random(100)
val y=random(100)
circle(x,y,20)
Thread.sleep(1000)
}
(今日の内容をもとに、各自取り組んでみて下さい)
これを今回の提出課題としておきます。
以下は、来週扱います。
以下は来週扱うこととします。
=> 解説は別ページ
(実演したサンプルのページも参照)
以下の課題も、来週扱います。
(資料ページに反映することが遅れたため先行して取り組んでみた方もいるかと思いますが、 やってみた人はそれも含めて提出してみて下さいね)