gpt4 book ai didi

java - 如何用两个循环实现一个条件

转载 作者:行者123 更新时间:2023-11-29 09:18:04 24 4
gpt4 key购买 nike

public void PlayforMe()
{
for (int i=game.size()-1;i>=1;i--)
{
Card a = game.get(i);
Card b = game.get(i-1);
if (a.getSuit().equals(b.getSuit()) | (a.getCardNum().equals(b.getCardNum())))
{
game.remove(b);
break;
}
}

for (int j=game.size()-1;j>=3;j--)
{
Card c = game.get(j);
Card d = game.get(j-3);
if (c.getSuit().equals(d.getSuit()) | (c.getCardNum().equals(d.getCardNum())))
{
game.set(j-3,game.get(j));
game.remove(j);
break;
}
}
}

我已经为我正在用 Java 代码制作的单人纸牌游戏编写了这段 Java 代码。我对这种语言(以及一般的编程)很陌生。我的牌组有一个 arrayList,“游戏”有一个 arrayList。在这种方法/移动中,我有它,所以它会找到最接近发牌末端的牌,如果花色或牌号相同,它会直接与它前面的牌“交换”。

如果此移动不是发牌的选项,那么我需要它通过第二个循环,找到最接近发牌末端的牌,并将其与它之前的 [3] 个牌“交换”如果花色或牌号相同。

它们单独工作,但我无法获得将通过第一个循环的条件(例如,我已经尝试过 if 语句),如果它没有成功移除卡片,它将通过第二个循环。

该方法应该只执行一次移动,如果满足条件,则优先将一张牌移动到下一张(之前)的牌上。我可以让它通过两个循环(即将这段代码放入两个方法并从我的菜单中调用它们)但是我需要它来执行第一个循环并且只在第一个循环出现时才执行第二个循环不成功(即卡 b 未被移除/game.remove(b);未被调用。)

如果有人有任何建议,我将不胜感激:)

最佳答案

您想将 Boolean finished = false; 放在函数的开头,然后在完成时放置 finished = true。然后将 if (finished) { ... } 放在第二个循环中。

或者在完成时在第一个循环中放置一个return。这将返回您的函数并且不再执行任何代码行。尽管有些人认为这种风格很糟糕。

关于java - 如何用两个循环实现一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230934/

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