- 締切済み
javaのプログラミングについての質問です
javaのプログラミングについての質問です 任意の複数の数値を入れたファイルを読み取りその数値の場所から次の数値まで線を描画するプログラミングを作成しました ここから発展問題としてタートルグラフィックスを 描画するプログラムを50歩進み右に90度曲がることを4度繰り返すという条件で作ってみようと思ったのですが上手くコンパイルが通りません 取りあえず分かっているのは (100.cos45,100.sin45)で90°曲がる repeat 4,forward 50right 90 end 0 だけです もし分かる方がいらっしゃいましたらご返答宜しくお願いします import java.awt.*; import java.awt.event.*; import java.io.*; public class mondai{ int x[] = new int[100]; int y[] = new int[100]; int len = 0; public static void main(String[] args){ new mondai(args[0]); } public mondai(String mondai2){ ReadFile rf = new ReadFile(mondai2); String line; while( (line = rf.gets()) != null) { String[] date = line.split(","); if(date.length == 2){ x[len] = Integer.parseInt(date[0]); System.out.println(date[0]); y[len]= Integer.parseInt(date[1]); System.out.println(date[1]); len++; } } Frame f = new Frame(); f.setTitle("Line"); f.setSize(640,480); f.setLayout(null); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); }}); DrawArea da = new DrawArea(); da.setBounds(0,0,640,480); f.add(da); f.setVisible(true); } private class DrawArea extends Canvas{ public void paint(Graphics g){ for(int i=0;i<len-1;i++) g.drawLine(x[i],y[i],x[i+1],y[i+1]); } } private class ReadFile{ FileInputStream fis; InputStreamReader isr; BufferedReader br; public ReadFile(String filename){ try{ fis = new FileInputStream(filename); isr = new InputStreamReader(fis); br = new BufferedReader(isr); }catch(Exception e){ e.printStackTrace(); } } public String gets(){ String line = ""; try{ line = br.readLine(); }catch(Exception e){ e.printStackTrace(); } return line; } } }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- salsberry
- ベストアンサー率69% (495/711)
分からないことは何ですか? > 50歩進み右に90度曲がることを4度繰り返す 開始地点と今どちらを向いているかの情報があれば、50歩進んだときの終了地点を計算することができますから、その2点間に直線を引けばいいです。 90度曲がるためにも、今向いている方向が必要です。 > 取りあえず分かっているのは > (100.cos45,100.sin45)で90°曲がる この部分は、きっと何かを勘違いしています。 > repeat 4,forward 50right 90 end 0 このように書かれているファイルを読み込んで「50歩進み右に90度曲がることを4度繰り返す」と解釈できるようにするのは意外と面倒です。プログラムを書く前に、どんな命令列があり得るのか、きっちりと文法を定義する必要があります。 > 上手くコンパイルが通りません 質問文中に提示されているプログラムはコンパイルできるようです。コンパイルに失敗するプログラムと、そのエラーメッセージを示してください。