Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public JassGame(long rngSeed, Map<PlayerId, Player> players, Map<PlayerId, String> playerNames) {
- this.players = Collections.unmodifiableMap(new EnumMap<>(players));
- this.playerNames = Collections.unmodifiableMap(new EnumMap<>(playerNames));
- Random rng = new Random(rngSeed);
- this.shuffleRng = new Random(rng.nextLong());
- this.trumpRng = new Random(rng.nextLong());
- List<Card> deck = new ArrayList<Card>();
- for (Color c : Card.Color.ALL) {
- for (Rank r : Card.Rank.ALL) {
- deck.add(Card.of(c, r));
- }
- }
- Collections.shuffle(deck, shuffleRng);
- long firstPlayerHand = PackedCardSet.EMPTY;
- long secondPlayerHand = PackedCardSet.EMPTY;
- long thirdPlayerHand = PackedCardSet.EMPTY;
- long fourthPlayerHand = PackedCardSet.EMPTY;
- for (int i =0; i<9; i++) {
- PackedCardSet.add(firstPlayerHand, deck.get(i).packed());
- PackedCardSet.add(secondPlayerHand, deck.get(i+9).packed());
- PackedCardSet.add(thirdPlayerHand, deck.get(i+18).packed());
- PackedCardSet.add(fourthPlayerHand, deck.get(i+27).packed());
- }
- this.firstPlayerHand = firstPlayerHand ;
- this.secondPlayerHand = secondPlayerHand;
- this.thirdPlayerHand = thirdPlayerHand;
- this.fourthPlayerHand = fourthPlayerHand;
- PlayerId starterPlayer;
- if(PackedCardSet.contains(firstPlayerHand, PackedCard.pack(Card.Color.DIAMOND, Card.Rank.SEVEN))) {
- starterPlayer = PlayerId.PLAYER_1;
- }
- if(PackedCardSet.contains(secondPlayerHand, PackedCard.pack(Card.Color.DIAMOND, Card.Rank.SEVEN))) {
- starterPlayer = PlayerId.PLAYER_2;
- }
- if(PackedCardSet.contains(thirdPlayerHand, PackedCard.pack(Card.Color.DIAMOND, Card.Rank.SEVEN))) {
- starterPlayer = PlayerId.PLAYER_3;
- }
- if(PackedCardSet.contains(fourthPlayerHand, PackedCard.pack(Card.Color.DIAMOND, Card.Rank.SEVEN))) {
- starterPlayer = PlayerId.PLAYER_4;
- }
- Color trump = Card.Color.ALL.get(trumpRng.nextInt(4));
- this.turnState = TurnState.initial(trump, Score.INITIAL, starterPlayer);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement