Cómo hacer una forma sólo aparece una vez en un bucle?

Solomid1280 :

Estoy tratando de hacer que la forma de estrella sólo aparecen una vez. Intenté usar la función de tiempo y parece que no puede hacer que funcione para las formas, pero logró que por escáner. ¿Es necesario para insertar el código de bucle while en mi código de condición de estrella o ante el bucle comienza al principio? Aquí está mi código:

 public void start(Stage primaryStage) {
    GridPane grid = new GridPane();
    grid.setVgap(5);
    grid.setHgap(5);
    Random rand = new Random();

    //Shapes
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                int shapePick = rand.nextInt(5);
                if (shapePick == 0) {//CIRCLE
                    Circle circle = new Circle(0, 0, 25);
                    circle.setFill(Color.RED);
                    circle.setStroke(Color.BLACK);
                    grid.add(circle, i, j);
                } else if (shapePick == 1) {//SQUARE
                    Rectangle rect = new Rectangle(0, 0, 50, 50);
                    rect.setFill(Color.BLUE);
                    rect.setStroke(Color.BLACK);
                    grid.add(rect, i, j);
                } else if (shapePick == 2) {//TRIANGLE
                    Path tri = new Path();
                    MoveTo moveTo = new MoveTo(25, 0);
                    LineTo line1 = new LineTo(0, 50);
                    LineTo line2 = new LineTo(50, 50);
                    LineTo line3 = new LineTo(25, 0);

                    tri.getElements().add(moveTo);
                    tri.getElements().addAll(line1, line2, line3);
                    tri.setFill(Color.GREEN);
                    tri.setStroke(Color.BLACK);
                    grid.add(tri, i, j);
                } else if (shapePick == 3) {//HEXAGON
                    Polygon hexa = new Polygon(25.0, 0.0, 0.0, 20.0, 0.0, 40.0, 25.0, 60.0, 50.0, 40.0, 50.0, 20.0);
                    hexa.setFill(Color.PURPLE);
                    hexa.setStroke(Color.BLACK);
                    grid.add(hexa, i, j);
                } else {
                        Polygon star = new Polygon(25, 0, 15, 20, 0, 20, 10, 40, 5, 60, 25, 50, 45, 60, 40, 40, 50, 20, 35, 20);
                        star.setFill(Color.YELLOW);
                        star.setStroke(Color.BLACK);
                        grid.add(star, i, j);
                    }
                }

            }

Aquí está la salida

Matt:

Puesto que la estrella es el número más grande, el límite de la gama de opciones.

int possible=5;
//Shapes
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        int shapePick = rand.nextInt(possible);
        //....
        else {
                    Polygon star = new Polygon(25, 0, 15, 20, 0, 20, 10, 40, 5, 60, 25, 50, 45, 60, 40, 40, 50, 20, 35, 20);
                    star.setFill(Color.YELLOW);
                    star.setStroke(Color.BLACK);
                    grid.add(star, i, j);
                    possible = 4;
                }

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=396980&siteId=1
Recomendado
Clasificación