我被分配了创建臭名昭著的“UNO”游戏的任务。我在使用其中一种方法时遇到了麻烦,如果他们选择玩它,它应该会“删除”玩家手中的一张卡片对象。我想你必须玩过UNO才能理解。无论如何,这里是该方法应该是什么的描述:
创建一个名为 removeCardFromHand 的方法,该方法将整数索引作为参数,并在玩家手的该位置移除并返回卡片。如果指定的索引与手中的一张牌不对应,则该方法应抛出 IndexOutOfBoundsException。取出卡片后,应根据需要重新排列剩余卡片,使其占据阵列的最左侧位置。一种方法是将最右边的卡片移动到要移除的卡片的位置。例如,如果手牌当前是四张牌{蓝色 3,红色 2,黄色 7,绿色 1},而您要移除位置 1 的牌(红色 2),您可以用最后一张牌(绿色1),因此得到的手牌是:{蓝 3,绿 1,黄 7}。
不幸的是,我不允许使用数组列表或向量,只能使用简单的旧数组
到目前为止,这是我的代码:
public Card removeCardFromHand(int n)
{
Card c = cards[n];
for(int i = n; i < cards.length; i--)
{
cards[n] = cards[n + 1];
}
c = cards[cards.length - 1];
return c;
}
显然这是不对的,但我只是不确定该怎么做。