あなたはどの程度コンピュータを使えるか?
プログラミングはコンピュータを学ぶ上での基礎中の基礎
例(クラス名はHello):
KITAMURA-CF-W4:kitamura:~/java$ cat Hello.java
class Hello
{
public static void main( String [] args )
{
System.out.println("こんにちは.Java!");
}
}
KITAMURA-CF-W4:kitamura:~/java$ javac Hello.java
KITAMURA-CF-W4:kitamura:~/java$ java Hello
こんにちは.Java!
プログラムを編集するためのエディタと呼ばれるソフトウェア(Terapad)を用いて,プログラムを作る.
プログラム開発するためのソフトウェア(Cygwin)を用いて,プログラムをコンパイル・実行する.
public class T21 { // T21という名前のクラスを定義する.
public static void main(String[] args){ // クラスの実行開始部分を指定する.
TurtleFrame f = new TurtleFrame(); // タートルを表示するウィンドウTurtleFrameを生成して,その名前をfにする.
Turtle m1 = new Turtle(); // タートルを生成し,その名前をm1にする.
Turtle m2 = new Turtle(); // もう一つタートルを生成し,その名前をm2にする.
f.add(m1); // タートルm1をウィンドウfの中に表示する.
f.add(m2); // タートルm2をウィンドウfの中に表示する.
m1.fd(100); // m1に,前に100 進むように命令する.
m1.rt(90); // m1に,右に90 度回るように命令する.
m1.fd(150); // m1に,前に 150 進むように命令する.
m2.rt(90); // m2に,右に 90 度回るように命令する.
m2.fd(100); // m2に,前に 150 進むように命令する.
}
}
import java.awt.Color;
public class T22 {
public static void main(String[] args){
int x = 300, y = 200, d = 100; // 整数(int)型の変数を用意する
TurtleFrame f = new TurtleFrame(700,500);//引数のあるコンストラクタ呼出し
Turtle m1 = new Turtle(x, y, 180);
Turtle m2 = new Turtle(x+d, y+d, 0);
m2.setColor(Color.red); // m1 の色を赤色に指定
f.add(m1);
f.add(m2);
m1.fd(d);
m2.fd(d);
m1.lt(90);
m2.lt(90);
d = d / 2; //d の値を d/2 に変更
m1.fd(d);
m2.fd(d);
m2.moveTo(m1);
}
}
import java.awt.Color;
public class T23 {
public static void main(String[] args){
int d = 100, x, y, a;
TurtleFrame f = new TurtleFrame();
Turtle m1 = new Turtle(200,300,0);
f.add(m1);
m1.fd(d);
x = m1.getX(); // m のX 座標のとり出し
y = m1.getY(); // m のY 座標のとり出し
a = m1.getAngle() - 45; // m の角度のとり出し
Turtle m2 = new Turtle(x, y, a); //m1 の生成
f.add(m2);
m2.fd(d);
Turtle m3 = m1.clone(); //m2 の生成
f.add(m3);
m1.rt(45);
m1.fd(d);
m3.tcolor = Color.blue; // m3 の亀の色を青色に変える
m3.tscale = m3.tscale * 4; // m3 の亀を現在の 4 倍の大きさにする
m3.fd(d);
}
}
| TurtleFrameクラス | |
| コンストラクタ | |
| TurtleFrame() | TurtleFrameを,デフォルトの大きさ(400×400)で生成する. |
| TurtleFrame(int width, int height) | TurtleFrameを,width×heightの大きさで生成する. |
| メソッド | |
| void add(Turtle t) | タートルtをこのウィンドウに追加する. |
| void remove(Turtle t) | タートルtをこのウィンドウから削除する. |
| void clear() | 今まで描かれたすべての線を消す. |
| void addMesh() | 方眼紙のような桝目を表示する. |
| Turtleクラス | |
| コンストラクタ | |
| Turtle() | (200,200)という座標に0度の角度で,タートルを生成する. |
| Turtle(int x, int y, int angle) | (x,y)という座標にangle度の角度で,タートルを生成する. |
| メソッド | |
| void fd(int n) | nだけ前に進む. |
| void bk(int n) | nだけ後ろに進む. |
| void rt(int n) | n度だけ右に向きを変える. |
| void lt(int n) | n度だけ左に向きを変える. |
| void setColor(java.awt.Color nc) | ペンの色をncに変更する. |
| int moveTo(int x, int y) | (x,y)という座標の方向を向き,(x,y)まで進む.動いた距離を返す. |
| int moveTo(Turtle t) | タートルtの方向を向き,tと同じ座標まで進む.動いた距離を返す. |
| int moveTo(int x, int y, int angle) | (x,y)という座標の方向を向き,(x,y)まで進んだ後,angleの方向を向く.動いた距離を返す. |
| int getX() | 現在の座標のX成分を返す. |
| int getY() | 現在の座標のY成分を返す. |
| int getAngle() | 現在の角度を返す. |
| Turtle clone() | 自分と同じ状態のタートルを生成して返す. |
| void up() | ペンを上げる. |
| void down() | ペンを下ろす.ペンを下ろした状態で進むと,その軌跡が画面に線として描画される. |
| boolean isDown() | ペンをあげた状態ならflase,下げた状態ならtrueを返す. |
| void speed(int x) | タートルの動きの速さをxに設定する.x=20が初期値である.数字が小さいほど速い. |
| static void speedAll(int x) | タートル全体の速さを1〜3で指定する.1が高速,3が低速. |
| フィールド | |
| java.awt.Color tcolor | タートルの色.初期値は緑. |
| double tscale | タートルの大きさを表す小数値.初期値は0.4 |
| static boolean withTurtleAll | もし,falseならすべてのタートルが瞬時に描画を行う.trueなら通常の描画を行う.初期値はtrue. |

タートルグラフィックスの座標系
[R1] タートルグラフィックスを用いて3角形を描画しなさい.
[R2] タートルグラフィックスを用いて自分の名前(ローマ字, ひらがな,カタカナ,漢字のいずれでも可)を描画しなさい.
[R3] (オプション)タートルグラフィックスを用いてアニメのキャラクタを描画しなさい.