Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
[JAVA][家庭作业]Pickomino游戏_Java_Arrays - Fatal编程技术网

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

[JAVA][家庭作业]Pickomino游戏,java,arrays,Java,Arrays,嘿,小伙子们,姑娘们。 这是我在这里的第一篇帖子,所以如果可以的话,请温柔一点 我必须创建一个名为Pickomino的Java版棋盘游戏。在这个游戏中,你是一只小鸡,你在掷骰子,你在收集桌上的虫子。桌子上有16张牌。若一个玩家选择了一张牌,他会把它放在他的“堆叠堆”中,然后把它从桌子上移除 在我的“main method”中,我有一个从表中获取分数的代码,但正如您将看到的,它不是100%正确的,所以我希望听到您的意见,也许有更好的解决方案 if (player1.canIPick(pickedD

嘿,小伙子们,姑娘们。 这是我在这里的第一篇帖子,所以如果可以的话,请温柔一点

我必须创建一个名为Pickomino的Java版棋盘游戏。在这个游戏中,你是一只小鸡,你在掷骰子,你在收集桌上的虫子。桌子上有16张牌。若一个玩家选择了一张牌,他会把它放在他的“堆叠堆”中,然后把它从桌子上移除

在我的“main method”中,我有一个从表中获取分数的代码,但正如您将看到的,它不是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;
        }
    }
在这段代码中有两件事我不喜欢,首先,这是错误的,因为如果有人从表中选择一张牌并获得积分,另一个玩家可以选择相同的牌。 正如我所说,这是我主要方法的一部分,我不喜欢,所以我想在另一个类中创建一个数组,并从那里访问卡,但我在这方面遇到了一些问题。 你还有什么建议可以给我帮助我吗? 阵列会起作用吗?还是它也是一种错误的方式


谢谢你的时间。

我不确定这个游戏到底是怎么玩的。 但是我建议你在桌子上制作一系列的卡片,(就像你说的)。 并在新游戏开始时重置值

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

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

或者您可以尝试使用带有整数和布尔值的HashMap,并在使用卡时使用布尔值表示

到底是什么不起作用/不对?你发布的代码与你在问题中提到的卡片无关。想象一下,卡片上有两个数字。这一个号码是你可以使用卡的号码,在我的情况下就是这个号码。setPoint()方法中的数字是玩家获得的点数(=蠕虫)。如果我是玩家1,在骰子中总共得到25分,我将得到2分。如果你在轮到你的时候得到25分,在我的代码中,你也会得到2分。这是错误的。你不能再从棋盘上选那张牌了。听起来不错。我会试试的,我会回来的。谢谢
if (player1.canIPick(pickedDice)){
    if(cardsOnTable.contains(sumOfDice)) {
       /* check for points here*/
       cardsOnTable.remove(sumOfDice));
    }
}