gpt4 book ai didi

java 内存游戏的三个条件

转载 作者:行者123 更新时间:2023-12-01 13:53:20 25 4
gpt4 key购买 nike

我正在尝试制作一个内存卡游戏,有3个条件:

  1. 当玩家开始游戏时,第一次点击会显示第一张牌
  2. 如果玩家点击第二张牌,则有 2 个选项
    A。第二张牌与第一张牌具有相同的值(value)。因此保留它们。
    b.第二张卡有不同的值(value)。因此,当点击
  3. 时,将两者翻转回来

enter image description here

我不知道解决这个问题的最佳方法是什么。我想到使用 if 语句并创建新方法“state”,它应该有 3 个输出。

public void mousePressed() {
if(state==READY){
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+cards[i].HEIGHT) {
cards[i].flip();
}
}
}
else if (state==FIRST_CHOSEN){

}
else{

}
}

最佳答案

我会把问题分解成更小的问题。

有几种不同的方法来解决解决更大的最终目标所需的小任务:

  • public void RevealCard(Card 卡)
  • public boolean isMatch(Card 卡)
  • public void FlipCardsBackOver(卡卡1,卡卡2);

并添加一个实例变量来存储已经打开的卡片。一旦您分解了所有单独的挑战,那么您的问题就变得很简单:

private Card CardOne; //instance variable

public void revealCard(Card myCard) {
myCard.flipCard(); //Whatever task you need to flip the card
if (CardOne = null) {
myCard = CardOne;
return;
}
if myCard.isMatch(CardOne)) {
//Do whatever you need to do when there is a match
}
else {
this.flipCardsBackOver(myCard, CardOne) //Flip all up cards over and set Card1
//to null
}
}

关于java 内存游戏的三个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19795433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com