あなたはどの程度コンピュータを使えるか?
プログラミングはコンピュータを学ぶ上での基礎中の基礎
例(クラス名は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] (オプション)タートルグラフィックスを用いてアニメのキャラクタを描画しなさい.