我正在用 javafx 制作一个记忆游戏,但我有一个小问题,它一切正常,但它选择随机颜色的随机函数,但有时它选择三种相同的颜色。我已经启动了一个变量以使其工作,但请帮助我!我已经完成的部分:
for (aantalkaarten in [1..16]){
var choice = RANDOM.nextInt(
sizeof mogelijkewaarde);
gekozenwaarde[aantalkaarten] = mogelijkewaarde[choice];
for(x in [1..16]){
if (gekozenkaart[aantalkaarten] == gekozenkaart[x]){
counter ++;
}
if (counter == 2){
//HIER MOET IETS KOMEN WAARMEE JE DIE KAART DIE ALS
//DERDE DIE KLEUR KRIJGT WEER OPNIEUW RANDOM EEN KLEUR KRIJGT
}
}
}
和整个代码:
package newpackage;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.shape.Rectangle;
import javafx.scene.paint.Color;
import javafx.scene.control.Button;
import java.util.Random;
var backColor = "lightblue";
var rectangle1: Rectangle;
var rectangle2: Rectangle;
var rectangle3: Rectangle;
var rectangle4: Rectangle;
var rectangle5: Rectangle;
var rectangle6: Rectangle;
var rectangle7: Rectangle;
var rectangle8: Rectangle;
var rectangle9: Rectangle;
var rectangle10: Rectangle;
var rectangle11: Rectangle;
var rectangle12: Rectangle;
var rectangle13: Rectangle;
var rectangle14: Rectangle;
var rectangle15: Rectangle;
var rectangle16: Rectangle;
var kaarten = ["", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red",];
var kaartzichtbaar = [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true];
var gekozenkaart = [0, 0, 0];
var tekst = "beginnen maar";
var aantalclicks = 0;
var kaartkeuze = ["", ""];
var scene: Scene;
var button: Button;
var score = 0;
var gekozenwaarde = ["","","","","","","","","","","","","","","","",""];
var mogelijkewaarde = ["yellow","blue","white","grey","green","pink","magenta","orange"];
var RANDOM = Random{};
var counter =0;
for (aantalkaarten in [1..16]){
var choice = RANDOM.nextInt(
sizeof mogelijkewaarde);
gekozenwaarde[aantalkaarten] = mogelijkewaarde[choice];
for(x in [1..16]){
if (gekozenkaart[aantalkaarten] == gekozenkaart[x]){
counter ++;
}
if (counter == 2){
//HIER MOET IETS KOMEN WAARMEE JE DIE KAART DIE ALS
//DERDE DIE KLEUR KRIJGT WEER OPNIEUW RANDOM EEN KLEUR KRIJGT
}
}
}
function KaartControle() {
if (aantalclicks == 2) {
if (kaartkeuze[0] == kaartkeuze[1]) {
tekst = "goed bezig!";
kaartzichtbaar[gekozenkaart[0]] = false;
kaartzichtbaar[gekozenkaart[1]] = false;
aantalclicks = 0;
score++;
}
}
else if (aantalclicks == 3) {
tekst = "jammer!";
kaarten[gekozenkaart[0]] = "red";
kaarten[gekozenkaart[1]] = "red";
kaarten[gekozenkaart[2]] = "red";
aantalclicks = 0;
score--;
}
if (score == 8) {
tekst = "Hoera!! Het spel is voltooid";
}
}
Stage {
title: "Memory"
scene: Scene {
width: 500
height: 300
fill: bind Color.web(backColor)
content: [
Text {
font: Font {
size: 16
}
x: 10
y: 30
content: bind tekst;
}
Text {
font: Font {
size: 16
}
x: 250
y: 30
content: bind score.toString();
}
button = Button {
translateX: 300
translateY: 150
text: "reset"
visible: true
action: function() {
kaartzichtbaar = [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true];
kaarten = ["", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red", "red",];
aantalclicks = 0;
score = 0;
for (aantalkaarten in [1..16]){
var choice = RANDOM.nextInt(
sizeof mogelijkewaarde);
gekozenwaarde[aantalkaarten] = mogelijkewaarde[choice];
}
}
}
//Kaart 1
rectangle1 = Rectangle {
visible: bind kaartzichtbaar[1]
width: 50
height: 50
x: 10
y: 50
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[1])
onMouseClicked: function(event) {
if (kaarten[1] == "red") {
kaarten[1] = gekozenwaarde[1];
kaartkeuze[aantalclicks] = gekozenwaarde[1];
gekozenkaart[aantalclicks] = 1;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 2
rectangle2 = Rectangle {
visible: bind kaartzichtbaar[2]
width: 50
height: 50
x: 10
y: 110
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[2])
onMouseClicked: function(event) {
if (kaarten[2] == "red") {
kaarten[2] = gekozenwaarde[2];
kaartkeuze[aantalclicks] = gekozenwaarde[2];
gekozenkaart[aantalclicks] = 2;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 3
rectangle3 = Rectangle {
visible: bind kaartzichtbaar[3]
width: 50
height: 50
x: 10
y: 170
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[3])
onMouseClicked: function(event) {
if (kaarten[3] == "red") {
kaarten[3] = gekozenwaarde[3];
kaartkeuze[aantalclicks] = gekozenwaarde[3];
gekozenkaart[aantalclicks] = 3;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 4
rectangle4 = Rectangle {
visible: bind kaartzichtbaar[4]
width: 50
height: 50
x: 10
y: 230
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[4])
onMouseClicked: function(event) {
if (kaarten[4] == "red") {
kaarten[4] = gekozenwaarde[4];
kaartkeuze[aantalclicks] = gekozenwaarde[4];
gekozenkaart[aantalclicks] = 4;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 5
rectangle5 = Rectangle {
visible: bind kaartzichtbaar[5]
width: 50
height: 50
x: 70
y: 50
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[5])
onMouseClicked: function(event) {
if (kaarten[5] == "red") {
kaarten[5] = gekozenwaarde[5];
kaartkeuze[aantalclicks] = gekozenwaarde[5];
gekozenkaart[aantalclicks] = 5;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 6
rectangle6 = Rectangle {
visible: bind kaartzichtbaar[6]
width: 50
height: 50
x: 70
y: 110
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[6])
onMouseClicked: function(event) {
if (kaarten[6] == "red") {
kaarten[6] = gekozenwaarde[6];
kaartkeuze[aantalclicks] = gekozenwaarde[6];
gekozenkaart[aantalclicks] = 6;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 7
rectangle7 = Rectangle {
visible: bind kaartzichtbaar[7]
width: 50
height: 50
x: 70
y: 170
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[7])
onMouseClicked: function(event) {
if (kaarten[7] == "red") {
kaarten[7] = gekozenwaarde[7];
kaartkeuze[aantalclicks] = gekozenwaarde[7];
gekozenkaart[aantalclicks] = 7;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 8
rectangle8 = Rectangle {
visible: bind kaartzichtbaar[8]
width: 50
height: 50
x: 70
y: 230
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[8])
onMouseClicked: function(event) {
if (kaarten[8] == "red") {
kaarten[8] = gekozenwaarde[8];
kaartkeuze[aantalclicks] = gekozenwaarde[8];
gekozenkaart[aantalclicks] = 8;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 9
rectangle9 = Rectangle {
visible: bind kaartzichtbaar[9]
width: 50
height: 50 x: 130
y: 50
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[9])
onMouseClicked: function(event) {
if (kaarten[9] == "red") {
kaarten[9] = gekozenwaarde[9];
kaartkeuze[aantalclicks] = gekozenwaarde[9];
gekozenkaart[aantalclicks] = 9;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 10
rectangle10 = Rectangle {
visible: bind kaartzichtbaar[10]
width: 50
height: 50
x: 130
y: 110
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[10])
onMouseClicked: function(event) {
if (kaarten[10] == "red") {
kaarten[10] = gekozenwaarde[10];
kaartkeuze[aantalclicks] = gekozenwaarde[10];
gekozenkaart[aantalclicks] = 10;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 11
rectangle11 = Rectangle {
visible: bind kaartzichtbaar[11]
width: 50
height: 50
x: 130
y: 170
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[11])
onMouseClicked: function(event) {
if (kaarten[11] == "red") {
kaarten[11] = gekozenwaarde[11];
kaartkeuze[aantalclicks] = gekozenwaarde[11];
gekozenkaart[aantalclicks] = 11;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 12
rectangle12 = Rectangle {
visible: bind kaartzichtbaar[12]
width: 50
height: 50
x: 130
y: 230
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[12])
onMouseClicked: function(event) {
if (kaarten[12] == "red") {
kaarten[12] = gekozenwaarde[12];
kaartkeuze[aantalclicks] = gekozenwaarde[12];
gekozenkaart[aantalclicks] = 12;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 13
rectangle13 = Rectangle {
visible: bind kaartzichtbaar[13]
width: 50
height: 50
x: 190
y: 50
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[13])
onMouseClicked: function(event) {
if (kaarten[13] == "red") {
kaarten[13] = gekozenwaarde[13];
kaartkeuze[aantalclicks] = gekozenwaarde[13];
gekozenkaart[aantalclicks] = 13;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 14
rectangle14 = Rectangle {
visible: bind kaartzichtbaar[14]
width: 50
height: 50
x: 190
y: 110
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[14])
onMouseClicked: function(event) {
if (kaarten[14] == "red") {
kaarten[14] = gekozenwaarde[14];
kaartkeuze[aantalclicks] = gekozenwaarde[14];
gekozenkaart[aantalclicks] = 14;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 15
rectangle15 = Rectangle {
visible: bind kaartzichtbaar[15]
width: 50
height: 50
x: 190
y: 170
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[15])
onMouseClicked: function(event) {
if (kaarten[15] == "red") {
kaarten[15] = gekozenwaarde[15];
kaartkeuze[aantalclicks] = gekozenwaarde[15];
gekozenkaart[aantalclicks] = 15;
aantalclicks++;
KaartControle()
}
}
}
//Kaart 16
rectangle16 = Rectangle {
visible: bind kaartzichtbaar[16]
width: 50
height: 50
x: 190
y: 230
arcWidth: 10
arcHeight: 10
fill: bind Color.web(kaarten[16])
onMouseClicked: function(event) {
if (kaarten[16] == "red") {
kaarten[16] = gekozenwaarde[16];
kaartkeuze[aantalclicks] = gekozenwaarde[16];
gekozenkaart[aantalclicks] = 16;
aantalclicks++; KaartControle()
}
}
}
]
}
}