因此,我正在制作一个名为Crazy 8的纸牌游戏。在此过程中,我将负责建立手形课程。
问题在于手类具有我无法构造的这两种方法。 RemoveCard(Card):布尔值(如果可能,从Hand移除给定的Card。如果成功,则返回true) + RemoveCardAt(int):布尔值(在整数参数给定的索引处删除卡。如果成功,则返回true。)
假设该卡存储在一个列表中,名为_hand。
我尝试使用for循环获取给定的卡,然后使用_hand.remove(card)并返回true。但是测试服说我错了。
public Boolean RemoveCard(Card card)
{
for (int i = 0; i < _hand.Count(); i++)
{
if (_hand[i] == card)
{
_hand.RemoveAt(i);
return true;
}
}
return false;
我想知道我的逻辑是否正确吗?
答案 0 :(得分:0)
KookieMonster确实指出了寻找位置的方向。
您需要为类Card
实现比较和相等运算符。
您可以通过实现接口IEquality
和IComparable
(如果我正确)来实现此目的,或者编写自己的静态方法来检查两个给定的卡对象是否相同。