2016-12-21 10 views
0

私はこのプロジェクトでいくつかの助けを得ることができますかjavafxで省略記号を9x9にしようとしています。私は省略記号のコードを持っていますが、私は次のことをするための論理を理解できません。私はちょうど私の路盤を与えるループのため定期的に使用しているforループからずらした配列を作る方法javafx

を探しています何の

例。省略記号は、別の

 for (int i = 0; i < 9; i++) 
     for (int j = 0; j < 9; j++) 

ので、私はそれが
上の写真のように見えるようにするために、ループのためにこれを行うには何をすべきか任意のヘルプは素晴らしいのおかげだろう1の上に積み重ね。

+0

私はあなたの身長の2倍のサイズが必要であることを熟知しています。あなたは空/スペースが必要です。その後、モジュラス演算子を見てください。 – StarWind0

+0

おかげで、それは本当に宿題問題ではありません。クリスマスの笑いから3日間です。私は本当にそれらの背後にあるロジックと闘っている。私はjavafxには新しくボードゲームを作っている最後の質問は私のために進んでいたので、私は簡単な方法を思いついた。魔法使いは、省略記号9x9のずらした配列でGUIをグリッドにすることです。その後、その後ろに省略記号に合った多角形を作成します。 – enat

+1

これは '9x9'ではなく'(5 + 4)x 2'のように見えます – fabian

答えて

0

円の水平/垂直オフセットを決定するだけです。

他のすべての行にはもう1つの円が含まれ、小さな行よりも左にオフセットの半分が始まります。

final double fieldWidth = 50; 
final double fieldHeight = 50; 
final double radius = 20; 

Pane parent = new Pane(); 

boolean bigRow = true; 
final int rows = 9; 
final int columns = 9; 
for (int y = 0; y < rows; y++, bigRow = !bigRow) { 
    double offsetX = bigRow ? fieldWidth/2 : fieldWidth; 
    double offsetY = fieldHeight * y + fieldHeight/2; 
    for (int x = 0, size = bigRow ? columns : columns - 1; x < size; x++) { 
     Circle c = new Circle(offsetX + x * fieldWidth, offsetY, radius, Color.TRANSPARENT); 
     c.setStroke(Color.BLACK); 
     parent.getChildren().add(c); 
    } 
} 
+0

ファビアンのおかげで助けてくれた人のためにもう一度このサイトのいくつかの質問に答えて、本当にうまく説明してくれます。上記の質問で私は実際にコードを初期化しました[9] [9]変数を作成するのではなく、配列でどのコードを使用するのですか? – enat

+0

@enat答えが気に入ったら、正しいとマークしてください。あなたは戻ってあなたの他の質問に対するいくつかの答えを正しいものとしてマークしたいかもしれません。回答にクレジットを与えないことは、一般的に人々が将来あなたの質問に答えるのを妨げることになります。 –

+0

感謝james_D私はそうしたと思った。それがうまくいかない場合は、まだそれを正しいとマークしていますか? – enat

関連する問題