Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java内存游戏如何翻转单个卡?_Java - Fatal编程技术网

Java内存游戏如何翻转单个卡?

Java内存游戏如何翻转单个卡?,java,Java,当我点击一张卡片时,我试图翻转它们。当我点击所有卡片时,所有卡片同时翻转 这是我的密码。任何帮助都将不胜感激,并提前向您表示感谢 package cards; import processing.core.PApplet; public class MemoryGame extends PApplet { static final int COLS=2; static final int RAWS=3; Card[] cards; public void setup() { si

当我点击一张卡片时,我试图翻转它们。当我点击所有卡片时,所有卡片同时翻转

这是我的密码。任何帮助都将不胜感激,并提前向您表示感谢

package cards;

import processing.core.PApplet;

public class MemoryGame extends PApplet {

static final int COLS=2;
static final int RAWS=3;
Card[] cards;

public void setup() {
    size(RAWS*Card.WIDTH, COLS*Card.HEIGHT); // card witdth 60*9+(10*9) for the gaps=630
    cards = new Card[COLS*RAWS];
    cards[0] = new Card(11, 0, 0);
    cards[1] = new Card(3, Card.WIDTH, 0);
    cards[2] = new Card(7, 2 * Card.WIDTH, 0);
    cards[3] = new Card(3, 0, Card.HEIGHT);
    cards[4] = new Card(7, Card.WIDTH, Card.HEIGHT);
    cards[5] = new Card(11, 2 * Card.WIDTH, Card.HEIGHT);

}

public void draw() {
    background(204);
    for (int i = 0; i < 6; i++) {
        cards[i].display(this);
    }
}

public void mousePressed() {
    for (int i = 0; i < 6; i++) {
        cards[i].flip();
    }
}

public static void main(String[] args) {
    PApplet.main("cards.MemoryGame");
}
}

这是因为当你按下一张卡片时,你会在每张卡片上循环

public void mousePressed() {
    for (int i = 0; i < 6; i++) {
        cards[i].flip();
    }
}
public void mousePressed(){
对于(int i=0;i<6;i++){
卡片[i].flip();
}
}

尝试定义您单击的卡,并仅对该卡使用翻转方法。

这是因为当您按下一张卡时,您会在每张卡上循环

public void mousePressed() {
    for (int i = 0; i < 6; i++) {
        cards[i].flip();
    }
}
public void mousePressed(){
对于(int i=0;i<6;i++){
卡片[i].flip();
}
}

尝试定义您单击的卡,并仅对该卡使用翻转方法。

您在按住鼠标的
方法中循环浏览所有卡并翻转它们。你以为会发生什么


我想象你想检查用户点击的位置,然后翻转该位置的卡。

你在按住鼠标的
方法中循环浏览所有卡,然后翻转它们。你以为会发生什么


我想您应该检查用户单击的位置,然后翻转位于该位置的卡。

当按下鼠标按钮时,您正在翻转所有卡。 您必须检查鼠标位置是否与卡相交,并按下鼠标,如果是,则翻转该卡。 生成方法mouseX()和mouseY(),它们为您提供鼠标坐标。 只需添加if(鼠标位置与卡相交):

public void mousePressed(){
对于(int i=0;i<6;i++){

如果(mouseX()>=cards[i].x&&mouseX()=cards[i].y&&mouseY()当按下鼠标按钮时,您正在翻转所有卡片。 您必须检查鼠标位置是否与卡相交,并按下鼠标,如果是,则翻转该卡。 生成方法mouseX()和mouseY(),它们为您提供鼠标坐标。 只需添加if(鼠标位置与卡相交):

public void mousePressed(){
对于(int i=0;i<6;i++){

如果(mouseX()>=cards[i].x&&mouseX()=cards[i].y&&mouseY()您需要在mousePressed()方法中获取鼠标事件,这样您就可以确定单击了哪张卡,以便翻转它。
尝试在MemoryGame类中实现java.awt.MouseListener接口。

您需要在mousePressed()方法中获取鼠标事件,这样您就可以确定单击了哪张卡,以便翻转它。
尝试在MemoryGame类中实现java.awt.MouseListener接口。

你太棒了。非常感谢。它工作得非常好。如果我的答案真的帮助了你,最好将其设置为可接受答案或有用答案。谢谢!你太棒了。非常感谢。它工作得非常好。如果我的答案真的帮助了你,这将是很好的设置为接受的答案或设置为有用的答案。谢谢!
    public void mousePressed() {
    for (int i = 0; i < 6; i++) {
        if(mouseX() >= cards[i].x && mouseX() <= cards[i].x+cards[i].width && mouseY() >= cards[i].y && mouseY() <= cards[i].y+card[i].height) {
            cards[i].flip();
        }
    }
}