タートルインスタンスを 10 個生成し,配列に格納する。それぞれのタートルインスタン
スの X 座標及び Y 座標は,TurtleFrame の中に収まる範囲で適切に決める。
「start」という文字列をキーボードから受け付けた後,最も距離が遠い二つのタートル
を求め,その二つのタートルを,それぞれの中間点に移動するようなプログラムを作成したい。中間点とは,それぞれの X 座標の真ん中,Y 座標の真ん中の位置を表すもの。
java
1package prog; 2import java.util.Scanner; 3import tg.Turtle; 4import tg.TurtleFrame; 5public class kadai1104 { 6 static Turtle [ ] makeTurtles(int n, double xmin, double xmax, double ymin, double ymax, double ang) { 7 Turtle[]turtles=new Turtle[n]; 8 TurtleFrame f = new TurtleFrame(); 9 for(int i = 0; i < turtles.length; i++) { 10 double x=xmin + (xmax - xmin) * Math.random(); 11 double y=ymin + (ymax - ymin) * Math.random(); 12 turtles[i]=new Turtle(x,y,ang); 13 f.add(turtles[i]); 14 } 15 return turtles; 16 } 17 public static void main(String[] args) { 18 Scanner sc=new Scanner(System.in); 19 int n=10; 20 Turtle[]turtles=makeTurtles(n,0,360,0,360,180); 21 String st=sc.next(); 22 if(st.equals("start")) { 23 double max = 0.0; 24 for(int i=0; i < n; i++) { 25 for(int k = i + 1; k < n; k++) { 26 double dist =k-i; 27 if(dist > max) max = dist; 28 } 29 turtles[i].moveTo(turtles[i].getX()-max,turtles[i].getY()-max); 30 } 31 } 32 } 33} 34
ここまで自己流に作成してみたのですが、中間点への移動の仕方がなかなか思いつきませんでした。
間違っているとしたら
double dist =k-i;
この部分と
java
1turtles[i].moveTo(turtles[i].getX()-max,turtles[i].getY()-max);
だとは思うのですが、どう変えていけばわかりません。この部分を教えてもらいたいです
回答1件
あなたの回答
tips
プレビュー