gpt4 book ai didi

java - 包含java-问题

转载 作者:行者123 更新时间:2023-12-01 16:39:56 25 4
gpt4 key购买 nike

我有这个脚本,它是假设玩家是否可以协助特定牌的花色的标识符。因此,如果他协助,则显示消息,你协助,没问题,但如果他确实虚张声势,则验证永远不会完成并显示 else System.out.println(hand);

此 else 的结果是 [DIAMONDS 七、黑桃四、黑桃七、DIAMONDS KING、更多牌]

pn50.getText()(例如,其结果是 CLUBS)

我的疑问是,为什么 hand.subList(0, 10).contains(pn50.getText()) 行在列表中找不到任何内容(即玩家的手)

例如,如果玩家一玩红心K,而玩家二玩梅花七并且手上有红心三,则假设显示消息“玩另一个”

@Override
public boolean validCard(List<Card> hand, JTextField pn70, JTextField pn50, int i) {
if(pn70.getText().equals (pn50.getText())) {
System.out.println("you assist");
return true;
} else {
if (hand.subList(0, 10).contains(pn50.getText())) {
System.out.println("play another");
}
else
System.out.println(hand);
}
return false;
}

有什么帮助吗?

谢谢

最佳答案

因为您正在将字符串:pn50.getText()Card 对象进行比较。 Contains 使用 .equals 方法来测试相等性,除非您在 Card 上设置 .equals 方法来与另一个 String 进行比较,否则 contains 永远不会返回任何内容。

这是一个解决方案。我假设您可以仅从字符串创建 Card 对象,因此只需将该字符串包装到 Card 对象中并比较它们即可。

Card c = new Card(pn50.getText());
if (hand.subList(0, 10).contains(c)) {
System.out.println("play another");
}
else
System.out.println(hand);

此外,您还需要将 Card 上的 .equals 方法重写为:

public boolean equals(Card other) {
return other.getSuit().equals(this.getSuit()) && other.getNumber().equals(this.getNumber());
}

关于java - 包含java-问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934953/

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