前提・実現したいこと
タートルインスタンスを 10 個生成し,配列に格納する。それぞれの初期位置は,配列のインデックスを idx とすると,(70, 30 * (idx + 2))とする。向きは 90.0 とする。タートルの大きさは,「4 以上 10 未満の整数値を 10 で割った値」とし,乱数により設定する。(idx は 0 以上) 【設定する値は(double)getRandomInt(4,10)/10.0 で記述でき,タートルへの大きさの設定には,void setTScale(double d)メソッドを使用する。】
その後,「start」という文字列をキーボードから受け付けた後,タートルの大きさの順位(ord)を求 め,(200 + idx * 10, 30 * (ord+1))に移動するプログラムを作成しなさい。(ord は 1 以上) 【移動には,void moveTo(double x, double y)メソッドを使用し,その後,0 の向きに向くように回転 する】
同じ大きさであれば,同順位になるので, 横に並ぶことになる。同順位があるときには,後ろの間隔が開くことになる。
実行結果は以下のようになります。
発生している問題・エラーメッセージ
順位付けをする際にどうやってタートルの大きさを比較すれば良いかわかりません。
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 演算子 > は引数の型 void, void で未定義です at Ex10_01.main(Ex10_01.java:29)
該当のソースコード
java
1import tg.Turtle; 2import tg.TurtleFrame; 3 4public class Ex10_01 { 5 static double getRandomDouble(double low, double high) { 6 double ans = 0.0; 7 double r = Math.random(); 8 ans = low + r * (high - low); 9 return ans; 10 } 11 static int getRandomInt(int low, int high) { 12 int ans = 0; 13 ans = (int) getRandomDouble(low, high); 14 return ans; 15 } 16 public static void main(String[] args) { 17 int idx = 10; 18 int ord; 19 double d = (double)getRandomInt(4, 10)/10.0; 20 Turtle [ ] turtles = new Turtle[idx]; 21 TurtleFrame f = new TurtleFrame(); 22 for(int i = 0; i < idx; i++) { 23 turtles[i] = new Turtle(70, 30 * (idx + 2), 90); 24 f.add(turtles[i]); 25 turtles[i].setTScale(d); 26 ord = 1; 27 for(int k = 0; k < idx; k++) { 28 turtles[k].setTScale(d); 29 if(turtles[k].setTScale(d) > turtles[i].setTScale(d)) {//ここでエラーが起きます 30 ord++; 31 } 32 } 33 turtles[i].moveTo(200 + idx * 10, 30 * (ord + 1)); 34 double ang = turtles[i].getAngle(); 35 ang = 0.0; 36 } 37 } 38}
試したこと
ネットで調べましたが、解決できませんでした。
補足情報(FW/ツールのバージョンなど)
説明がわかりにくければ、修正依頼お願いします。
回答1件
あなたの回答
tips
プレビュー