Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 已处理黑杰克印刷卡_Java_Arrays - Fatal编程技术网

Java 已处理黑杰克印刷卡

Java 已处理黑杰克印刷卡,java,arrays,Java,Arrays,我在玩黑杰克游戏时需要帮助。我在一个阵列中有一副牌组,每次我拿出一张牌并处理它时,阵列会被重新分配到比大小小的一张。所以我有一个循环,每个第n个玩家发两张牌 deck=createCardArray(); shuffle(deck); int[] players = createPlayers(n); int[] points = createPoints(n); for(int i = 1 ; i<= p

我在玩黑杰克游戏时需要帮助。我在一个阵列中有一副牌组,每次我拿出一张牌并处理它时,阵列会被重新分配到比大小小的一张。所以我有一个循环,每个第n个玩家发两张牌

        deck=createCardArray();
        shuffle(deck); 
        int[] players = createPlayers(n);
        int[] points = createPoints(n);

        for(int i = 1 ; i<= players.length; i++){
            Card a = dealCard(deck);
            updatePoints(players, points, i, a);
            Card b = dealCard(deck);
            updatePoints(players, points, i, b);
            printStats(players, points, a, b);
        }
deck=createCardArray();
洗牌(牌组);
int[]players=createPlayers(n);
int[]点=创建点(n);

对于(int i=1;i玩家有一手牌…所以给玩家他的牌!换句话说,创建一个代表玩家当前牌的字段。然后,当你发牌时,做
player.hit(card newCard)
,然后要显示他的手牌,只需做
列出player.getHand()
玩家“有一手牌”手牌…所以给玩家他的牌!换句话说,创建一个代表玩家当前牌的字段。然后,当你发牌时,执行
player.hit(card newCard)
,然后显示他的手牌,只需执行
List player.getHand()

您可以通过创建一个包含您正在调用的方法的播放器类来改进设计

   public class Player{
        Card a;
        Card b;

        public Card getA() {
            return a;
        }
        public void setA(Card a) {
            this.a = a;
        }
        public Card getB() {
            return b;
        }
        public void setB(Card b) {
            this.b = b;
        }

        public int points(){
            //calculation for returning point value
            int points = 0;
            return points;
        }

    }
现在,不再使用两个数组,只需使用一个数组来包含每个玩家。当你循环使用此数组时,你可以使用
setA()
setB()
方法将牌交给玩家。一旦每个玩家都有牌,你可以再次循环使用数组并使用
getA()
getB()
打印卡片。使用
点数()
可以轻松计算每个玩家手牌的点数,而无需在额外的阵列中拖动


如果使用列表或ArrayList而不是显式地使用A、B属性来保存卡,则可以使此功能更加有用。这将使您可以在oter卡牌游戏中使用相同的系统,而不仅仅使用2张卡。

您可以通过创建包含所调用方法的Player类来改进设计。一个简单的实现这看起来像这样

   public class Player{
        Card a;
        Card b;

        public Card getA() {
            return a;
        }
        public void setA(Card a) {
            this.a = a;
        }
        public Card getB() {
            return b;
        }
        public void setB(Card b) {
            this.b = b;
        }

        public int points(){
            //calculation for returning point value
            int points = 0;
            return points;
        }

    }
现在,不再使用两个数组,只需使用一个数组来包含每个玩家。当你循环使用此数组时,你可以使用
setA()
setB()
方法将牌交给玩家。一旦每个玩家都有牌,你可以再次循环使用数组并使用
getA()
getB()
打印卡片。使用
点数()
可以轻松计算每个玩家手牌的点数,而无需在额外的阵列中拖动


如果您使用列表或数组列表而不是显式地使用A、B属性来保存卡,则可以使此功能更加有用。这将允许您在oter纸牌游戏中使用相同的系统,而不仅仅是使用两张卡。

您真的在每个循环中调用
printStats
?我不知道有任何其他方法printStats是查看e的一种方法非常适合玩家的卡牌和点数。这种方法通常在所有玩家都有卡牌和点数要查看后调用,而不是在您仍在设置所有内容时调用,仅此而已。请看我下面的答案,了解在不添加更多数组的情况下简化设计的方法。您真的在每个循环中调用
printStats
?我不知道任何其他wayprintStats都是一种查看每个玩家的牌和点数的方法。这种方法通常在所有玩家都有牌和点数要查看后调用,而不是在您仍在设置所有内容时调用,仅此而已。请查看我下面的答案,以了解在不添加更多阵列的情况下简化设计的方法。