为二十一点创建Player类/变量

时间:2015-03-27 00:45:52

标签: java draw blackjack

Java比较新,我到目前为止都喜欢它,但我仍然坚持做作业。我必须创建一个二十一点游戏,(我已经完成了多次Google搜索)并且在创建Player1和Player2时遇到了麻烦。我已经创建了卡class。我需要向一个玩家发一张牌,问他/她是否愿意另一个(我有这个循环),并将卡加在一起。对于Player2也是如此。这就是我被卡住的地方,我的卡片类包括一个draw(),它可以处理卡片。

import java.util.Random;
import java.util.Scanner;

public class Game
{



    public static void main(String[] args)
    {
        int Player1 = 0, Sum1, Player2 = 0, Sum2;//Sums used to keep running total of cards Players have

        Card[] cards = new Cards[52];




       }

    //sample of loop I would use to ask if they would like another card
    do
    {


    System.out.println("Would you like to draw another card?");
    answer = input.nextLine();


    }while(answer.equals("Yes"));


    }

    //Card class with draw() at the bottom
        class Card{ 

    private int Spades = 0, Hearts = 1, Diamonds = 2, Clubs = 3;

    private int Ace = 1, Jack = 11, Queen = 12, King = 13;


        private int face_value;

        public Card(){
            face_value = 1;
    }
    public void setFacevalue(int value){

        face_value = value;
    }
    public int getFacevalue(){

            return face_value;
    }
    public int draw(){

        Random ran = new Random();
            face_value = ran.nextInt(13)+1;
        return face_value;
    }
}

}

1 个答案:

答案 0 :(得分:0)

有人会认为类卡会代表一张卡,因此不会有处理一副卡的方法。没有好的方法让一张牌知道牌组中有多少牌等,而不给单张牌提供牌组,这是违反直觉的。

我说你有甲板课的原因,包含一些卡片。我认为你的卡类会允许一个名字(杰克,女王,10)和这个游戏中的一个值(所有这些都是10)。

那么也许你的主(在一个名为Dealer的类中?)调用Deck上的一个方法来获取一张随机卡,然后在Player上调用一个方法给他们这张卡片,在游戏中旋转玩家(可能还有更多有一天会超过2)直到每个人都有最初的2张牌。然后第一个玩家可以查看他拥有的所有牌的总数,并决定他是否想要另一张牌,直到他被击败或停止等等。看来你的玩家类有逻辑来确定他何时停止接受其他牌

我希望这有足够的帮助。玩得开心。