Added comments
This commit is contained in:
parent
a339a6724b
commit
75a2d24210
21
JavaFX.iml
21
JavaFX.iml
|
@ -32,26 +32,5 @@
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.1" level="project" />
|
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: commons-io:commons-io:1.3.1" level="project" />
|
<orderEntry type="library" name="Maven: commons-io:commons-io:1.3.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
||||||
<orderEntry type="library" name="Maven: de.codecentric.centerdevice:javafxsvg:1.2.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-anim:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-parser:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-xml:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-io:commons-io:1.3.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
|
@ -1,2 +1,11 @@
|
||||||
# Leendert
|
# Leendert
|
||||||
Het spectaculaire tuinavontuur
|
Het spectaculaire tuinavontuur
|
||||||
|
|
||||||
|
## Gemaakt door
|
||||||
|
* Mette Lejeune (afbeeldingen)
|
||||||
|
* Julius de Jeu (programmeren)
|
||||||
|
* Jelle Miltenburg (muziek)
|
||||||
|
* Marleen Peeters (afbeeldingen)
|
||||||
|
* Jesper de Wilde (programmeren en afbeeldingen)
|
||||||
|
* Nathan van der Kamp (programmeren)
|
||||||
|
|
||||||
|
|
35
pom.xml
35
pom.xml
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -13,12 +13,41 @@
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>RELEASE</version>
|
<version>3.6.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>1.8</source>
|
||||||
<target>1.8</target>
|
<target>1.8</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>2.4.1</version>
|
||||||
|
<configuration>
|
||||||
|
<!-- get all project dependencies -->
|
||||||
|
<descriptorRefs>
|
||||||
|
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||||
|
</descriptorRefs>
|
||||||
|
<!-- MainClass in mainfest make a executable jar -->
|
||||||
|
<archive>
|
||||||
|
<manifest>
|
||||||
|
<mainClass>nl.minkema.leendert.Main</mainClass>
|
||||||
|
</manifest>
|
||||||
|
</archive>
|
||||||
|
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-assembly</id>
|
||||||
|
<!-- bind to the packaging phase -->
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
|
|
@ -25,11 +25,19 @@ public class Dice extends Group {
|
||||||
private Group dotPattern6 = new Group();
|
private Group dotPattern6 = new Group();
|
||||||
private Group klaver = new Group();
|
private Group klaver = new Group();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dit is de constructor van onze dobbelsteen
|
||||||
|
* De dobbelsteen is helemaal gemaakt met basisvormen door Nathan, daarna een beetje aangepast door Julius
|
||||||
|
*
|
||||||
|
* @param x de x-coördinaat van de dobbelsteen
|
||||||
|
* @param y de y-coördinaat van de dobbelsteen
|
||||||
|
*/
|
||||||
public Dice(int x, int y) {
|
public Dice(int x, int y) {
|
||||||
this.r = new Random(System.currentTimeMillis());
|
this.r = new Random(System.currentTimeMillis());
|
||||||
this.setTranslateX(x);
|
this.setTranslateX(x);
|
||||||
this.setTranslateY(y);
|
this.setTranslateY(y);
|
||||||
|
|
||||||
|
|
||||||
Ellipse mainEll = new Ellipse(50, 50, 40, 50);
|
Ellipse mainEll = new Ellipse(50, 50, 40, 50);
|
||||||
mainEll.setFill(Color.DARKRED);
|
mainEll.setFill(Color.DARKRED);
|
||||||
Ellipse headEll1 = new Ellipse(34, 11, 6, 4);
|
Ellipse headEll1 = new Ellipse(34, 11, 6, 4);
|
||||||
|
@ -136,13 +144,21 @@ public class Dice extends Group {
|
||||||
roll();
|
roll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Dit is de functie die het rollen van de dobbelsteen op zich neemt.
|
||||||
|
*/
|
||||||
public int roll() {
|
public int roll() {
|
||||||
|
//We willen een getal tussen 0 en 6
|
||||||
int roll = r.nextInt(6);
|
int roll = r.nextInt(6);
|
||||||
|
//We maken eerst de groep leeg
|
||||||
this.getChildren().clear();
|
this.getChildren().clear();
|
||||||
|
//Als er 3 uit de roll komt, en we dus 4 zeggen, willen we een klavertje 4 laten zien
|
||||||
if (roll == 3) {
|
if (roll == 3) {
|
||||||
this.getChildren().add(klaver);
|
this.getChildren().add(klaver);
|
||||||
} else {
|
} else {
|
||||||
|
//Maar anders gaan we voor een lieveheersbeestje
|
||||||
this.getChildren().add(ladybah);
|
this.getChildren().add(ladybah);
|
||||||
|
//Dit zijn alle afzonderlijke patronen
|
||||||
switch (roll) {
|
switch (roll) {
|
||||||
case 0:
|
case 0:
|
||||||
this.getChildren().add(dotPattern1);
|
this.getChildren().add(dotPattern1);
|
||||||
|
@ -159,10 +175,12 @@ public class Dice extends Group {
|
||||||
case 5:
|
case 5:
|
||||||
this.getChildren().add(dotPattern6);
|
this.getChildren().add(dotPattern6);
|
||||||
break;
|
break;
|
||||||
|
//Dit zou wel heel bijzonder zijn
|
||||||
default:
|
default:
|
||||||
System.out.println("Error drawing die");
|
System.out.println("Error drawing die");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//En aan het eind nemen we de roll en tellen we er één bij op.
|
||||||
return roll + 1;
|
return roll + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,12 @@ import javafx.scene.control.Label;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
|
import javafx.scene.layout.Background;
|
||||||
|
import javafx.scene.layout.BackgroundFill;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.media.Media;
|
import javafx.scene.media.Media;
|
||||||
import javafx.scene.media.MediaPlayer;
|
import javafx.scene.media.MediaPlayer;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.shape.Circle;
|
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -27,23 +28,31 @@ public class Game extends Pane {
|
||||||
public static int[][] locations;
|
public static int[][] locations;
|
||||||
public static ArrayList<Player> players = new ArrayList<>();
|
public static ArrayList<Player> players = new ArrayList<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* De constructor voor de game
|
||||||
|
*/
|
||||||
public Game() {
|
public Game() {
|
||||||
|
//We willen dat de volgorde van de spelers willekeurig is.
|
||||||
Collections.shuffle(players);
|
Collections.shuffle(players);
|
||||||
Image bord = new Image("/images/KLAAR.png");
|
//Dit is de achtergrond met het bord er op.
|
||||||
|
Image bord = new Image("/images/bord.png");
|
||||||
ImageView view = new ImageView(bord);
|
ImageView view = new ImageView(bord);
|
||||||
|
|
||||||
view.setPreserveRatio(true);
|
view.setPreserveRatio(true);
|
||||||
view.setFitHeight(800);
|
view.setFitHeight(800);
|
||||||
view.setX(0);
|
view.setX(0);
|
||||||
view.setY(0);
|
view.setY(0);
|
||||||
this.getChildren().add(view);
|
this.getChildren().add(view);
|
||||||
|
|
||||||
|
//Dit zorgt voor de nummers in de vakjes
|
||||||
for (int i = 0, locationsLength = locations.length; i < locationsLength; i++) {
|
for (int i = 0, locationsLength = locations.length; i < locationsLength; i++) {
|
||||||
int[] k = locations[i];
|
int[] k = locations[i];
|
||||||
getChildren().add(new Circle(k[0], k[1], 5, Color.RED));
|
//getChildren().add(new Circle(k[0], k[1], 5, Color.RED));
|
||||||
getChildren().add(new Text(k[0], k[1], String.valueOf(i)));
|
Text text = new Text(k[0] - 5, k[1] - 10, String.valueOf(i));
|
||||||
|
text.setFill(Color.GREENYELLOW);
|
||||||
|
getChildren().add(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Dit was om de locaties van de vakjes te bepalen.
|
||||||
this.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
this.setOnMouseClicked(new EventHandler<MouseEvent>() {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -52,12 +61,14 @@ public class Game extends Pane {
|
||||||
//System.out.printf("%d: %d,%d%n", i++, (int) event.getSceneX(), (int) event.getSceneY());
|
//System.out.printf("%d: %d,%d%n", i++, (int) event.getSceneX(), (int) event.getSceneY());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
//Dit is de afbeelding van de speler die mag gooien
|
||||||
ImageView playerTurn = new ImageView();
|
ImageView playerTurn = new ImageView();
|
||||||
playerTurn.setX(1000);
|
playerTurn.setX(1000);
|
||||||
playerTurn.setY(50);
|
playerTurn.setY(50);
|
||||||
playerTurn.setPreserveRatio(true);
|
playerTurn.setPreserveRatio(true);
|
||||||
playerTurn.setFitHeight(400);
|
playerTurn.setFitHeight(400);
|
||||||
|
|
||||||
|
//Hier staat de naam van het karaker in.
|
||||||
Label l = new Label();
|
Label l = new Label();
|
||||||
l.setTranslateX(965);
|
l.setTranslateX(965);
|
||||||
l.setTranslateY(370);
|
l.setTranslateY(370);
|
||||||
|
@ -66,19 +77,31 @@ public class Game extends Pane {
|
||||||
this.getChildren().add(playerTurn);
|
this.getChildren().add(playerTurn);
|
||||||
this.getChildren().addAll(l);
|
this.getChildren().addAll(l);
|
||||||
|
|
||||||
|
//Dit is onze dobbelsteen
|
||||||
Dice dice = new Dice(1100, 700);
|
Dice dice = new Dice(1100, 700);
|
||||||
this.getChildren().add(dice);
|
this.getChildren().add(dice);
|
||||||
|
//Dit is de knop van de dobbelsteen.
|
||||||
this.getChildren().add(Menu.createButton("Gooi", 1100, 650, e -> {
|
this.getChildren().add(Menu.createButton("Gooi", 1100, 650, e -> {
|
||||||
|
//We kijken wie de volgende speler is
|
||||||
Player p = players.get(Player.getNextActive());
|
Player p = players.get(Player.getNextActive());
|
||||||
|
//En rollen een dobbelsteen
|
||||||
int roll = dice.roll();
|
int roll = dice.roll();
|
||||||
|
//Dan verplaatsen we de speler
|
||||||
p.move(roll);
|
p.move(roll);
|
||||||
|
//Als de speler 4 gooit mag hij/zij nog een keer
|
||||||
if (roll == 4) Player.four();
|
if (roll == 4) Player.four();
|
||||||
|
//We zoeken uit wie er hier na mag
|
||||||
int next = players.get(Player.getNextActive()).getCh();
|
int next = players.get(Player.getNextActive()).getCh();
|
||||||
|
//Zetten die afbeelding als de speler die mag gooien
|
||||||
playerTurn.setImage(Menu.images[next]);
|
playerTurn.setImage(Menu.images[next]);
|
||||||
|
//En doen hetzelfde met de naam van de speler
|
||||||
l.setText(Menu.names[next] + " is aan de beurt!");
|
l.setText(Menu.names[next] + " is aan de beurt!");
|
||||||
|
//En zetten het weer terug naar de vorige speler
|
||||||
Player.four();
|
Player.four();
|
||||||
}));
|
}));
|
||||||
//this.setBackground(new Background(new BackgroundFill(Color.RED, null, null)));
|
//Dit is de achtergrond
|
||||||
|
this.setBackground(new Background(new BackgroundFill(Color.GREENYELLOW, null, null)));
|
||||||
|
//Dit zijn alle spelers
|
||||||
for (Player p : players) {
|
for (Player p : players) {
|
||||||
this.getChildren().add(p.getImageView());
|
this.getChildren().add(p.getImageView());
|
||||||
}
|
}
|
||||||
|
@ -86,6 +109,7 @@ public class Game extends Pane {
|
||||||
playerTurn.setImage(Menu.images[players.get(1).getCh()]);
|
playerTurn.setImage(Menu.images[players.get(1).getCh()]);
|
||||||
l.setText(Menu.names[players.get(1).getCh()] + " is aan de beurt!");
|
l.setText(Menu.names[players.get(1).getCh()] + " is aan de beurt!");
|
||||||
|
|
||||||
|
//En hier is de achtergrondmuziek, die het soms wel en soms niet doet...
|
||||||
String loc = this.getClass().getResource("/music/game.mp3").toString();
|
String loc = this.getClass().getResource("/music/game.mp3").toString();
|
||||||
Media music = new Media(loc);
|
Media music = new Media(loc);
|
||||||
MediaPlayer menuplayer = new MediaPlayer(music);
|
MediaPlayer menuplayer = new MediaPlayer(music);
|
||||||
|
|
|
@ -14,13 +14,10 @@ import java.util.Properties;
|
||||||
public class Main extends Application {
|
public class Main extends Application {
|
||||||
public static Scene scene;
|
public static Scene scene;
|
||||||
|
|
||||||
public static boolean memes = false;
|
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
for (String s : args) {
|
|
||||||
if (s.equals("-memes")) memes = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//Je kan properties best goed gebruiken om simpele lijsten in te laden
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
properties.load(Main.class.getResourceAsStream("/text/locations.properties"));
|
properties.load(Main.class.getResourceAsStream("/text/locations.properties"));
|
||||||
Game.locations = new int[properties.size()][2];
|
Game.locations = new int[properties.size()][2];
|
||||||
|
|
|
@ -37,32 +37,42 @@ public class Menu extends Group {
|
||||||
|
|
||||||
private ArrayList<Integer> chosen = new ArrayList<>();
|
private ArrayList<Integer> chosen = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* De constructor voor het menu
|
||||||
|
*
|
||||||
|
* @throws URISyntaxException als de achtergrondmuziek niet gevonden kan worden.
|
||||||
|
* @throws MalformedURLException gebeurt hopelijk niet...
|
||||||
|
*/
|
||||||
public Menu() throws URISyntaxException, MalformedURLException {
|
public Menu() throws URISyntaxException, MalformedURLException {
|
||||||
ArrayList<Node> nodes = new ArrayList<>();
|
ArrayList<Node> nodes = new ArrayList<>();
|
||||||
Image bg = new Image(ModLoader.getFile("/images/background.png"));
|
//achtergrondafbeelding
|
||||||
|
Image bg = new Image("/images/background.png");
|
||||||
ImageView view = new ImageView(bg);
|
ImageView view = new ImageView(bg);
|
||||||
|
//zet de x en y naar de linker bovenhoek
|
||||||
view.setX(0);
|
view.setX(0);
|
||||||
view.setY(0);
|
view.setY(0);
|
||||||
|
//dit is om te zorgen dat de afbeelding past
|
||||||
view.setFitHeight(850);
|
view.setFitHeight(850);
|
||||||
view.setPreserveRatio(false);
|
view.setPreserveRatio(false);
|
||||||
view.setFitWidth(1250);
|
view.setFitWidth(1250);
|
||||||
|
nodes.add(view);
|
||||||
|
|
||||||
|
|
||||||
|
//De achtergrondmuziek
|
||||||
String loc = this.getClass().getResource("/music/menu.mp4").toString();
|
String loc = this.getClass().getResource("/music/menu.mp4").toString();
|
||||||
//loc = new File("menu.mp4").toURI().toURL().toString();
|
|
||||||
//loc = ModLoader.getFile("/music/menu.mp4");
|
|
||||||
Media music = new Media(loc);
|
Media music = new Media(loc);
|
||||||
MediaPlayer menuplayer = new MediaPlayer(music);
|
MediaPlayer menuplayer = new MediaPlayer(music);
|
||||||
menuplayer.setCycleCount(Integer.MAX_VALUE);
|
menuplayer.setCycleCount(Integer.MAX_VALUE);
|
||||||
menuplayer.setVolume(0.6f);
|
menuplayer.setVolume(0.6f);
|
||||||
|
//Dit deel is om te garanderen dat de muziek start, hoewel het soms toch niet werkt, iets met codecs enzo
|
||||||
menuplayer.setAutoPlay(true);
|
menuplayer.setAutoPlay(true);
|
||||||
menuplayer.play();
|
menuplayer.play();
|
||||||
menuplayer.play();
|
menuplayer.play();
|
||||||
|
|
||||||
nodes.add(view);
|
//De breedte van de afbeelding
|
||||||
|
|
||||||
|
|
||||||
int imagewidth = 100;
|
int imagewidth = 100;
|
||||||
|
//Een array met speler afbeeldingen
|
||||||
images = new Image[]{
|
images = new Image[]{
|
||||||
new Image("/svg/p1.svg", imagewidth, 0, true, false),
|
new Image("/svg/p1.svg", imagewidth, 0, true, false),
|
||||||
new Image("/svg/p2.svg", imagewidth, 0, true, false),
|
new Image("/svg/p2.svg", imagewidth, 0, true, false),
|
||||||
|
@ -70,36 +80,50 @@ public class Menu extends Group {
|
||||||
new Image("/svg/p4.svg", imagewidth, 0, true, false),
|
new Image("/svg/p4.svg", imagewidth, 0, true, false),
|
||||||
new Image("/svg/p5.svg", imagewidth, 0, true, false)};
|
new Image("/svg/p5.svg", imagewidth, 0, true, false)};
|
||||||
|
|
||||||
|
//De namen van de karakters
|
||||||
names = new String[]{"Paulus", "Pinkeltje", "Petunia", "Kwebbel", "Stuart"};
|
names = new String[]{"Paulus", "Pinkeltje", "Petunia", "Kwebbel", "Stuart"};
|
||||||
int x = 0, y = 0;
|
int x = 0, y = 0;
|
||||||
|
//Voor elke afbeelding wordt dit uitgevoerd
|
||||||
for (int i1 = 0; i1 < images.length; i1++) {
|
for (int i1 = 0; i1 < images.length; i1++) {
|
||||||
|
//We maken van de afbeelding een ImageView, zodat het zichtbaar gemaakt kan worden
|
||||||
Image i = images[i1];
|
Image i = images[i1];
|
||||||
ImageView iv = new ImageView(i);
|
ImageView iv = new ImageView(i);
|
||||||
iv.setX(750 + x);
|
iv.setX(750 + x);
|
||||||
iv.setY(400 + y);
|
iv.setY(400 + y);
|
||||||
|
//En geven het een tooltip met de naam van de Kabouter
|
||||||
Tooltip.install(iv, new Tooltip(names[i1]));
|
Tooltip.install(iv, new Tooltip(names[i1]));
|
||||||
x += i.getRequestedWidth();
|
x += i.getRequestedWidth();
|
||||||
|
//Als we te ver gaan op de x as, gaan we door op een volgende regel
|
||||||
if (x > 200) {
|
if (x > 200) {
|
||||||
y += 150;
|
y += 150;
|
||||||
x = -70;
|
x = -70;
|
||||||
}
|
}
|
||||||
final int ch = i1;
|
final int ch = i1;
|
||||||
|
//Wat er gebeurt als je op een kabouter klikt
|
||||||
iv.setOnMouseClicked(e -> {
|
iv.setOnMouseClicked(e -> {
|
||||||
|
//Eerst controleren of het karakter al is gekozen.
|
||||||
if (chosen.contains(ch)) {
|
if (chosen.contains(ch)) {
|
||||||
new Alert(Alert.AlertType.ERROR, "Sorry, dit karakter is al door iemand anders gekozen...").show();
|
new Alert(Alert.AlertType.ERROR, "Sorry, dit karakter is al door iemand anders gekozen...").show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Als er nog geen hoeveelheid is gekozen kan dat ook best een probleempje opleveren.
|
||||||
if (hoeveel < 0) {
|
if (hoeveel < 0) {
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR, "Je moet eerst kiezen hoe veel spelers je wilt!\nDruk links op de juiste hoeveelheid kaboutertjes!", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.ERROR, "Je moet eerst kiezen hoe veel spelers je wilt!\nDruk links op de juiste hoeveelheid kaboutertjes!", ButtonType.OK);
|
||||||
alert.show();
|
alert.show();
|
||||||
} else {
|
} else {
|
||||||
|
//Maar verder kunnen we gewoon de karakters vinden
|
||||||
Image image = new Image(i.impl_getUrl(), 0, 50, true, false);
|
Image image = new Image(i.impl_getUrl(), 0, 50, true, false);
|
||||||
|
//Toevoegen aan de lijst van spelers
|
||||||
Game.players.add(new Player(image, ch));
|
Game.players.add(new Player(image, ch));
|
||||||
|
//De hoeveelheid benodigde spelers met één verlagen
|
||||||
hoeveel--;
|
hoeveel--;
|
||||||
|
//En controleren of iedereen er een gekozen heeft
|
||||||
if (hoeveel == 0) {
|
if (hoeveel == 0) {
|
||||||
|
//Zo ja: we stoppen het muziekje en starten het spel!
|
||||||
menuplayer.stop();
|
menuplayer.stop();
|
||||||
Main.scene.setRoot(new Game());
|
Main.scene.setRoot(new Game());
|
||||||
} else {
|
} else {
|
||||||
|
//Maar anders laten we mensen nog kiezen.
|
||||||
String een = "Er moet nog 1 persoon kiezen!";
|
String een = "Er moet nog 1 persoon kiezen!";
|
||||||
String meer = String.format("Er moeten nog %d mensen kiezen!", hoeveel);
|
String meer = String.format("Er moeten nog %d mensen kiezen!", hoeveel);
|
||||||
Alert alert = new Alert(Alert.AlertType.NONE, hoeveel > 1 ? meer : een, ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.NONE, hoeveel > 1 ? meer : een, ButtonType.OK);
|
||||||
|
@ -110,22 +134,24 @@ public class Menu extends Group {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
//Maar we moeten wel het karakter zichtbaar maken.
|
||||||
nodes.add(iv);
|
nodes.add(iv);
|
||||||
}
|
}
|
||||||
|
|
||||||
int x2 = 30, y2 = 50;
|
int x2 = 30, y2 = 50;
|
||||||
|
|
||||||
|
//Dit zijn de knoppen voor de hoeveelheid spelers
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
if (i == 0) continue;
|
if (i == 0) continue;
|
||||||
int number = 1 + i;
|
int number = 1 + i;
|
||||||
int locy = y2 + 150 * i + 10;
|
int locy = y2 + 155 * i + 10;
|
||||||
for (int e = 0; e < number; e++) {
|
for (int e = 0; e < number; e++) {
|
||||||
ImageView view1 = new ImageView(new Image("/svg/p1.svg", 75, 0, true, false));
|
ImageView view1 = new ImageView(new Image("/svg/p1.svg", 75, 0, true, false));
|
||||||
view1.setX(x2 + 85 * e + 10 * e);
|
view1.setX(x2 + 85 * e + 10 * e);
|
||||||
view1.setY(locy);
|
view1.setY(locy);
|
||||||
nodes.add(view1);
|
nodes.add(view1);
|
||||||
}
|
}
|
||||||
Rectangle clickable = new Rectangle(x2 - 10, locy + 125, 95 + i * 95, 150);
|
Rectangle clickable = new Rectangle(x2 - 10, locy + 125, 95 + i * 95, 152);
|
||||||
clickable.setFill(Color.TRANSPARENT);
|
clickable.setFill(Color.TRANSPARENT);
|
||||||
clickable.setStroke(Color.BLACK);
|
clickable.setStroke(Color.BLACK);
|
||||||
clickable.setArcHeight(50);
|
clickable.setArcHeight(50);
|
||||||
|
@ -143,6 +169,14 @@ public class Menu extends Group {
|
||||||
getChildren().addAll(nodes);
|
getChildren().addAll(nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maakt een knop op een plek, met een willekeurige kleur.
|
||||||
|
* @param string de tekst van de knop
|
||||||
|
* @param x de x coördinaat van de knop
|
||||||
|
* @param y de y coördinaat van de knop
|
||||||
|
* @param onClick een {@link EventHandler} die wordt uitgevoerd als de knop is ingedrukt
|
||||||
|
* @return een stackpane met daarin een knop
|
||||||
|
*/
|
||||||
public static StackPane createButton(String string, double x, double y, EventHandler<MouseEvent> onClick) {
|
public static StackPane createButton(String string, double x, double y, EventHandler<MouseEvent> onClick) {
|
||||||
Text text = createText(string);
|
Text text = createText(string);
|
||||||
Rectangle rectangle = rectangulate(text);
|
Rectangle rectangle = rectangulate(text);
|
||||||
|
@ -153,6 +187,11 @@ public class Menu extends Group {
|
||||||
return pane;
|
return pane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maakt een text object
|
||||||
|
* @param string de tekst van het object
|
||||||
|
* @return een object met de tekst
|
||||||
|
*/
|
||||||
private static Text createText(String string) {
|
private static Text createText(String string) {
|
||||||
Text text = new Text(string);
|
Text text = new Text(string);
|
||||||
text.setBoundsType(TextBoundsType.VISUAL);
|
text.setBoundsType(TextBoundsType.VISUAL);
|
||||||
|
@ -165,6 +204,11 @@ public class Menu extends Group {
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maakt een rechthoek precies passend om de tekst heen.
|
||||||
|
* @param text een {@link Text} object
|
||||||
|
* @return een rechthoek met daar in de tekst
|
||||||
|
*/
|
||||||
private static Rectangle rectangulate(Text text) {
|
private static Rectangle rectangulate(Text text) {
|
||||||
Rectangle rectangle = new Rectangle();
|
Rectangle rectangle = new Rectangle();
|
||||||
rectangle.setFill(getRandomColor());
|
rectangle.setFill(getRandomColor());
|
||||||
|
@ -176,6 +220,11 @@ public class Menu extends Group {
|
||||||
return rectangle;
|
return rectangle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* methode die de breedte van een {@link Text} object opvraagt
|
||||||
|
* @param text het object
|
||||||
|
* @return de breedte van het object
|
||||||
|
*/
|
||||||
private static double getWidth(Text text) {
|
private static double getWidth(Text text) {
|
||||||
new Scene(new Group(text));
|
new Scene(new Group(text));
|
||||||
text.applyCss();
|
text.applyCss();
|
||||||
|
@ -183,6 +232,11 @@ public class Menu extends Group {
|
||||||
return text.getLayoutBounds().getWidth();
|
return text.getLayoutBounds().getWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* methode die de hoogte van een {@link Text} object opvraagt
|
||||||
|
* @param text het object
|
||||||
|
* @return de hoogte van het object
|
||||||
|
*/
|
||||||
private static double getHeight(Text text) {
|
private static double getHeight(Text text) {
|
||||||
new Scene(new Group(text));
|
new Scene(new Group(text));
|
||||||
text.applyCss();
|
text.applyCss();
|
||||||
|
@ -190,6 +244,10 @@ public class Menu extends Group {
|
||||||
return text.getLayoutBounds().getHeight();
|
return text.getLayoutBounds().getHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* maakt een willekeurige kleur
|
||||||
|
* @return een willekeurige kleur.
|
||||||
|
*/
|
||||||
public static Color getRandomColor() {
|
public static Color getRandomColor() {
|
||||||
|
|
||||||
return Color.hsb(random.nextInt(360), 0.8, 0.8);
|
return Color.hsb(random.nextInt(360), 0.8, 0.8);
|
||||||
|
|
|
@ -8,6 +8,12 @@ import java.io.File;
|
||||||
*/
|
*/
|
||||||
public class ModLoader {
|
public class ModLoader {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dit was een leuk idee, maar het werkte 9/10 keer niet goed
|
||||||
|
*
|
||||||
|
* @param file de naam van het bestand
|
||||||
|
* @return het pad, danwel in het .jar bestand of als absoluut bestand
|
||||||
|
*/
|
||||||
public static String getFile(String file) {
|
public static String getFile(String file) {
|
||||||
File f = new File("mods" + file);
|
File f = new File("mods" + file);
|
||||||
if (f.exists()) {
|
if (f.exists()) {
|
||||||
|
|
|
@ -23,18 +23,28 @@ public class Player {
|
||||||
private int plaats = 0;
|
private int plaats = 0;
|
||||||
private int[] coords = Game.locations[plaats];
|
private int[] coords = Game.locations[plaats];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* De constructor voor een speler
|
||||||
|
*
|
||||||
|
* @param image de afbeelding die bij de speler hoort
|
||||||
|
* @param ch het hoeveelste karakter de speler is.
|
||||||
|
*/
|
||||||
public Player(Image image, int ch) {
|
public Player(Image image, int ch) {
|
||||||
this.ch = ch;
|
this.ch = ch;
|
||||||
Random r = new Random(System.currentTimeMillis());
|
Random r = new Random(System.currentTimeMillis());
|
||||||
this.image = image;
|
this.image = image;
|
||||||
this.view = new ImageView(this.image);
|
this.view = new ImageView(this.image);
|
||||||
|
//Elke speler staat niet precies op het zelfde punt, ziet er wat leuker uit
|
||||||
this.add = new int[]{r.nextInt(10) - 5 - image.widthProperty().intValue() / 2, r.nextInt(10) - 5 - image.heightProperty().intValue() / 2};// new int[]{r.nextInt(10) - 5, r.nextInt(10) - 5};
|
this.add = new int[]{r.nextInt(10) - 5 - image.widthProperty().intValue() / 2, r.nextInt(10) - 5 - image.heightProperty().intValue() / 2};// new int[]{r.nextInt(10) - 5, r.nextInt(10) - 5};
|
||||||
coords = new int[]{coords[0] + add[0], coords[1] + add[1]};
|
coords = new int[]{coords[0] + add[0], coords[1] + add[1]};
|
||||||
getImageView().setTranslateX(coords[0]);
|
getImageView().setTranslateX(coords[0]);
|
||||||
getImageView().setTranslateY(coords[1]);
|
getImageView().setTranslateY(coords[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Een methode om de volgende speler te verkrijgen
|
||||||
|
* @return het nummer van de volgende speler, niet verwarren met het character id.
|
||||||
|
*/
|
||||||
public static int getNextActive() {
|
public static int getNextActive() {
|
||||||
who++;
|
who++;
|
||||||
if (who >= Game.players.size()) {
|
if (who >= Game.players.size()) {
|
||||||
|
@ -44,10 +54,12 @@ public class Player {
|
||||||
return who;
|
return who;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Dit zorgt dat de vorige speler geselecteerd wordt
|
||||||
public static void four() {
|
public static void four() {
|
||||||
who -= 1;
|
who -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Dit is de afbeelding die bij de speler hoort
|
||||||
public ImageView getImageView() {
|
public ImageView getImageView() {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -56,20 +68,27 @@ public class Player {
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dit is de methode die wordt gebruikt om de speler te verplaatsen
|
||||||
|
* @param roll de hoeveelheid die is gegeooid.
|
||||||
|
*/
|
||||||
public void move(int roll) {
|
public void move(int roll) {
|
||||||
|
//De standaard tekst
|
||||||
Alert alert = new Alert(Alert.AlertType.NONE, "Je hebt " + roll + " gegooid!", ButtonType.OK);
|
Alert alert = new Alert(Alert.AlertType.NONE, "Je hebt " + roll + " gegooid!", ButtonType.OK);
|
||||||
|
//Als er 4 is gegooid mag je nog een keer, dus passen we de tekst aan
|
||||||
if (roll == 4)
|
if (roll == 4)
|
||||||
alert.contentTextProperty().setValue("Je hebt " + roll + " gegooid!\nKlavertje 4! Je mag dus nog een keer!");
|
alert.contentTextProperty().setValue("Je hebt " + roll + " gegooid!\nKlavertje 4! Je mag dus nog een keer!");
|
||||||
|
//We willen geen titel
|
||||||
alert.titleProperty().setValue("");
|
alert.titleProperty().setValue("");
|
||||||
if (plaats + roll == 69 && Main.memes) {
|
//Zolang er geen waterval of klimop is laten we het zien
|
||||||
alert.contentTextProperty().setValue("heheheh 69 icksdie\n" + alert.getContentText());
|
|
||||||
}
|
|
||||||
if (!Game.specials.containsKey(plaats + roll))
|
if (!Game.specials.containsKey(plaats + roll))
|
||||||
alert.show();
|
alert.show();
|
||||||
|
//We gaan alleen niet over 100 heen...
|
||||||
if (roll + plaats > 100) {
|
if (roll + plaats > 100) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//We gebruiken een TranslateTransition om de speler te verplaatsen
|
||||||
TranslateTransition tt = new TranslateTransition(Duration.millis(200), getImageView());
|
TranslateTransition tt = new TranslateTransition(Duration.millis(200), getImageView());
|
||||||
tt.setFromX(coords[0]);
|
tt.setFromX(coords[0]);
|
||||||
tt.setFromY(coords[1]);
|
tt.setFromY(coords[1]);
|
||||||
|
@ -77,16 +96,19 @@ public class Player {
|
||||||
tt.setToY(coords[1] = Game.locations[plaats + 1][1] + add[1]);
|
tt.setToY(coords[1] = Game.locations[plaats + 1][1] + add[1]);
|
||||||
TranslateTransition last = tt;
|
TranslateTransition last = tt;
|
||||||
|
|
||||||
|
//Dit is voor alles hoger dan 1
|
||||||
for (int i = plaats + 2; i < roll + plaats + 1; i++) {
|
for (int i = plaats + 2; i < roll + plaats + 1; i++) {
|
||||||
TranslateTransition tl = new TranslateTransition(Duration.millis(200), getImageView());
|
TranslateTransition tl = new TranslateTransition(Duration.millis(200), getImageView());
|
||||||
tl.setFromX(coords[0]);
|
tl.setFromX(coords[0]);
|
||||||
tl.setFromY(coords[1]);
|
tl.setFromY(coords[1]);
|
||||||
tl.setToX(coords[0] = Game.locations[i][0] + add[0]);
|
tl.setToX(coords[0] = Game.locations[i][0] + add[0]);
|
||||||
tl.setToY(coords[1] = Game.locations[i][1] + add[1]);
|
tl.setToY(coords[1] = Game.locations[i][1] + add[1]);
|
||||||
|
//Als we meer dan 1 beweging willen moet dat er na afgespeeld worden, anders gaan ze tegelijk
|
||||||
last.setOnFinished(e -> tl.play());
|
last.setOnFinished(e -> tl.play());
|
||||||
last = tl;
|
last = tl;
|
||||||
}
|
}
|
||||||
plaats += roll;
|
plaats += roll;
|
||||||
|
//Als er een waterval of klimop is
|
||||||
if (Game.specials.containsKey(plaats)) {
|
if (Game.specials.containsKey(plaats)) {
|
||||||
TranslateTransition tl = new TranslateTransition(Duration.millis(200), getImageView());
|
TranslateTransition tl = new TranslateTransition(Duration.millis(200), getImageView());
|
||||||
tl.setFromX(coords[0]);
|
tl.setFromX(coords[0]);
|
||||||
|
@ -96,21 +118,23 @@ public class Player {
|
||||||
last.setOnFinished(e -> tl.play());
|
last.setOnFinished(e -> tl.play());
|
||||||
|
|
||||||
String text;
|
String text;
|
||||||
|
//We passen de tekst aan
|
||||||
if (plaats < Game.specials.get(plaats)) {
|
if (plaats < Game.specials.get(plaats)) {
|
||||||
text = alert.getContentText() + "\n\nRoltrappen!\nJe mag " + (Game.specials.get(plaats) - plaats) + " plaatsen vooruit!";
|
text = alert.getContentText() + "\n\nKlimop!\nJe mag " + (Game.specials.get(plaats) - plaats) + " plaatsen vooruit!";
|
||||||
} else {
|
} else {
|
||||||
text = alert.getContentText() + "\n\nSlangen!\nJe moet " + (plaats - Game.specials.get(plaats)) + " plaatsen terug!";
|
text = alert.getContentText() + "\n\nWaterval!\nJe moet " + (plaats - Game.specials.get(plaats)) + " plaatsen terug!";
|
||||||
|
|
||||||
}
|
}
|
||||||
Alert alert1 = new Alert(Alert.AlertType.NONE, text, ButtonType.OK);
|
Alert alert1 = new Alert(Alert.AlertType.NONE, text, ButtonType.OK);
|
||||||
alert1.show();
|
alert1.show();
|
||||||
|
|
||||||
|
//Laten we de plaats van de speler ook even aanpassen
|
||||||
plaats = Game.specials.get(plaats);
|
plaats = Game.specials.get(plaats);
|
||||||
}
|
}
|
||||||
|
|
||||||
tt.play();
|
tt.play();
|
||||||
|
|
||||||
|
//Bij 100 heeft er iemand gewonnen!
|
||||||
if (plaats == 100) {
|
if (plaats == 100) {
|
||||||
System.out.println("Een speler heeft gewonnen!");
|
System.out.println("Een speler heeft gewonnen!");
|
||||||
Alert alert2 = new Alert(Alert.AlertType.WARNING, "Speler " + Menu.names[getCh()], ButtonType.OK);
|
Alert alert2 = new Alert(Alert.AlertType.WARNING, "Speler " + Menu.names[getCh()], ButtonType.OK);
|
||||||
|
|
BIN
src/main/resources/images/bord.png
Normal file
BIN
src/main/resources/images/bord.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1 MiB |
|
@ -1,102 +1,101 @@
|
||||||
#format: nummer:x,y
|
0=711,718
|
||||||
0:438,52
|
1=658,716
|
||||||
1:496,53
|
2=602,713
|
||||||
2:548,53
|
3=555,713
|
||||||
3:609,52
|
4=506,711
|
||||||
4:664,53
|
5=475,656
|
||||||
5:704,111
|
6=528,663
|
||||||
6:639,109
|
7=577,663
|
||||||
7:583,110
|
8=627,665
|
||||||
8:529,110
|
9=677,666
|
||||||
9:472,107
|
10=737,661
|
||||||
10:418,105
|
11=762,619
|
||||||
11:381,166
|
12=707,614
|
||||||
12:446,173
|
13=653,608
|
||||||
13:499,168
|
14=610,608
|
||||||
14:554,169
|
15=561,608
|
||||||
15:605,168
|
16=499,607
|
||||||
16:670,167
|
17=444,606
|
||||||
17:721,168
|
18=428,558
|
||||||
18:758,220
|
19=474,557
|
||||||
19:704,228
|
20=522,557
|
||||||
20:635,226
|
21=582,559
|
||||||
21:578,223
|
22=632,562
|
||||||
22:521,223
|
23=682,558
|
||||||
23:451,222
|
24=730,557
|
||||||
24:413,222
|
25=786,559
|
||||||
25:346,224
|
26=812,505
|
||||||
26:323,281
|
27=751,505
|
||||||
27:379,281
|
28=705,508
|
||||||
28:434,281
|
29=655,508
|
||||||
29:490,281
|
30=607,508
|
||||||
30:545,281
|
31=554,509
|
||||||
31:603,280
|
32=499,508
|
||||||
32:665,281
|
33=453,506
|
||||||
33:720,280
|
34=402,508
|
||||||
34:782,280
|
35=376,460
|
||||||
35:809,330
|
36=424,457
|
||||||
36:755,335
|
37=477,459
|
||||||
37:703,336
|
38=529,457
|
||||||
38:646,337
|
39=581,458
|
||||||
39:588,337
|
40=628,458
|
||||||
40:527,338
|
41=678,458
|
||||||
41:470,339
|
42=730,455
|
||||||
42:408,336
|
43=784,456
|
||||||
43:361,336
|
44=831,457
|
||||||
44:289,339
|
45=859,410
|
||||||
45:265,399
|
46=807,409
|
||||||
46:322,397
|
47=756,408
|
||||||
47:372,395
|
48=706,407
|
||||||
48:439,395
|
49=655,406
|
||||||
49:500,393
|
50=601,406
|
||||||
50:554,393
|
51=554,406
|
||||||
51:606,396
|
52=503,406
|
||||||
52:675,396
|
53=452,406
|
||||||
53:721,396
|
54=400,406
|
||||||
54:792,396
|
55=345,406
|
||||||
55:835,397
|
56=373,351
|
||||||
56:817,452
|
57=424,349
|
||||||
57:755,455
|
58=474,352
|
||||||
58:695,457
|
59=525,356
|
||||||
59:648,457
|
60=577,357
|
||||||
60:581,455
|
61=629,356
|
||||||
61:528,454
|
62=684,357
|
||||||
62:467,454
|
63=733,358
|
||||||
63:401,454
|
64=781,359
|
||||||
64:358,452
|
65=835,355
|
||||||
65:302,453
|
66=809,307
|
||||||
66:320,511
|
67=758,304
|
||||||
67:378,515
|
68=709,304
|
||||||
68:442,513
|
69=656,303
|
||||||
69:486,512
|
70=606,303
|
||||||
70:551,513
|
71=551,303
|
||||||
71:607,514
|
72=507,301
|
||||||
72:671,515
|
73=454,303
|
||||||
73:732,515
|
74=401,303
|
||||||
74:782,514
|
75=427,253
|
||||||
75:758,572
|
76=478,253
|
||||||
76:687,573
|
77=528,254
|
||||||
77:633,572
|
78=580,252
|
||||||
78:575,573
|
79=630,252
|
||||||
79:533,574
|
80=680,255
|
||||||
80:471,572
|
81=731,255
|
||||||
81:407,570
|
82=781,255
|
||||||
82:357,570
|
83=757,204
|
||||||
83:382,639
|
84=706,204
|
||||||
84:437,636
|
85=655,204
|
||||||
85:503,633
|
86=604,203
|
||||||
86:548,631
|
87=553,202
|
||||||
87:605,630
|
88=503,202
|
||||||
88:660,627
|
89=451,203
|
||||||
89:733,628
|
90=477,152
|
||||||
90:695,681
|
91=529,151
|
||||||
91:648,681
|
92=581,151
|
||||||
92:582,682
|
93=630,152
|
||||||
93:526,682
|
94=678,153
|
||||||
94:479,682
|
95=732,154
|
||||||
95:411,683
|
96=709,99
|
||||||
96:444,736
|
97=657,99
|
||||||
97:497,751
|
98=604,102
|
||||||
98:549,749
|
99=552,102
|
||||||
99:607,748
|
100=500,102
|
||||||
100:674,746
|
|
|
@ -1,14 +1,12 @@
|
||||||
5=10
|
1=27
|
||||||
7=4
|
17=32
|
||||||
18=13
|
21=4
|
||||||
20=27
|
22=30
|
||||||
30=24
|
47=68
|
||||||
42=88
|
52=59
|
||||||
50=43
|
61=39
|
||||||
57=65
|
70=79
|
||||||
63=52
|
74=53
|
||||||
71=62
|
76=91
|
||||||
80=82
|
81=64
|
||||||
88=87
|
92=71
|
||||||
92=97
|
|
||||||
98=90
|
|
Loading…
Reference in a new issue