在javafx的记忆游戏中随机

时间:2013-04-19 07:45:22

标签: javafx

我正在用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()
                        }
                    }
                }
            ]
        }
    }

2 个答案:

答案 0 :(得分:0)

熙,

Ik zie dat je ook nederlands bent en mn engels is niet zo goed :) Maar moet je die memorie voor school maken? Ik moet namelijk precies hetzelfde maken! Alleen ik heb het op een ie andere manier dan jij gedaan met plaatjes en jij met gekleurde vakjes,maar ik heb het iets anders met plaatjes gedaan maar het komt wel ongeveer op hetzelfde neer。 Ik heb het met de shuffle functie gedaan en dan de namen van de plaatjes en bij mij komen ze geen 2keer。 Ik weet niet of je via dit berichtjes kan sturen of dat je je mail wilt geven dan mail ik de code wel event,希望mijn leraar是erg goed in google en vind dat als het op internet staat ik het waarschijnlijk niet zelf gemaakt hebt:P

答案 1 :(得分:0)

查看这段代码,可能会有所帮助:

    // Draws a random 100x100 rectangle in a random color.
import java.awt.*;
import java.util.*;
public class RandomRectangle {
public static void main(String[] args) {
DrawingPanel panel = new DrawingPanel(500, 500);
Graphics g = panel.getGraphics();
Random rand = new Random();
// choose random location
Point rectPoint = new Point();
rectPoint.x = rand.nextInt(500);
rectPoint.y = rand.nextInt(500);
// choose random color
int randomColor = rand.nextInt(3);
if (randomColor == 0) {
g.setColor(Color.RED);
} else if (randomColor == 1) {
g.setColor(Color.GREEN);
} else {
g.setColor(Color.BLUE);
}
g.fillRect(rectPoint.x, rectPoint.y, 100, 100);
}
}