[JAVA] [家庭作业] Pickomino游戏

时间:2014-01-15 14:18:12

标签: java arrays

嘿,有男人和女孩。 这是我在这里发表的第一篇文章,如果可以,请保持温和。

我必须创建一个名为Pickomino的Java版本的棋盘游戏。在这个游戏中,你是一只鸡,你正在掷骰子,你正在从桌子上收集蠕虫。桌子上有16张牌。如果一个玩家选择了一张牌,他就把它放在他的堆栈中#34;并将其从桌子上移除。

在我的主要方法"我有这个代码从表中获得积分但是你会看到100%是正确的,所以我希望听到你的意见,也许有更好的解决方案。

if (player1.canIPick(pickedDice)){
        switch (sumOfDice) {
            case 21:
            case 22:
            case 23:
            case 24:
                player1.setPoints(1);
                break;
            case 25:
            case 26:
            case 27:
            case 28:
                player1.setPoints(2);
                break;
            case 29:
            case 30:
            case 31:
            case 32:
                player1.setPoints(3);
                break;
            case 33:
            case 34:
            case 35:
            case 36:
                player1.setPoints(4);
                break;
        }
    }

在这段代码中我不喜欢2件事情,首先,如果有人从牌桌上拿到一张牌并得到积分,那么这是错误的原因,另一位玩家可以选择同一张牌。 也像我说的那样,它是我主要方法的一部分,我不喜欢这样,所以我想在另一个类中创建一个数组并可以从那里进入卡,但我有点麻烦。 还有其他建议你可以帮我吗? Array会工作还是错误的方式?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

我不确定这个游戏到底是怎么玩的。 但我会建议创建一系列摆放在桌面上的牌,(就像你说的那样)。 并在新游戏开始时重置值。

ArrayList<Integer> cardsOnTable = new ArrayList<Integer>();

for(int i = minPoint; i<=maxPoint;i++) {
   cardsOnTable.add(i);
}

当您取出卡片时,您可以检查该卡片是否仍在桌面上(在列表中)。

if (player1.canIPick(pickedDice)){
    if(cardsOnTable.contains(sumOfDice)) {
       /* check for points here*/
       cardsOnTable.remove(sumOfDice));
    }
}

或者您可以尝试使用带有整数和布尔值的HashMap,并使用布尔表示是否采用了卡。

相关问题