import javafx.scene.shape.Rectangle; import javafx.scene.paint.Color; import javafx.scene.layout.StackPane; import javafx.scene.text.Text; import java.util.Random; import java.util.ArrayList; public class Rute extends StackPane{ private boolean erMine = false; private boolean besokt = false; private ArrayList naboer; private Rectangle firkant; public Rute(){ firkant = new Rectangle(30, 30, Color.GREY); firkant.setStroke(Color.BLACK); getChildren().add(firkant); //Lambda-funksjon: hva skjer når vi trykker? firkant.setOnMouseClicked(e -> klikk()); //10% sjanse for at det er mine int i = new Random().nextInt(10); erMine = (i == 5); } //Hva skal skje når vi klikker på en Rute? private void klikk(){ if(besokt) return; besokt = true; int antall = antallNabominer(); if(erMine) firkant.setFill(Color.RED); else { firkant.setFill(Color.WHITE); if(antall == 0){ for(Rute r : naboer) r.klikk(); } else { Text t = new Text("" + antall); getChildren().add(t); } } } public void settNaboer(ArrayList naboer){ this.naboer = naboer; } public boolean erMine(){ return erMine; } private int antallNabominer(){ int teller = 0; for(Rute nabo: naboer){ if(nabo.erMine()) teller++; } return teller; } }