Skip to content
Snippets Groups Projects

Added HandOfCard class to

Merged Scott Langum Du Plessis requested to merge add-stream-methods into main
3 files
+ 106
20
Compare changes
  • Side-by-side
  • Inline
Files
3
package edu.ntnu.stud.cardgame;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Random;
import java.util.List;
public class DeckOfCards {
private final char[] suit = { 'S', 'H', 'D', 'C' };
private final char[] suit = {'S', 'H', 'D', 'C'};
private final List<PlayingCard> deck;
Random random = new Random();
public DeckOfCards(){
public DeckOfCards() {
deck = new ArrayList<>();
for (int i = 0; i < 52; i++) {
int face = random.nextInt(13)+1;
int suitNum = random.nextInt(4);
deck.add(new PlayingCard(suit[suitNum], face));
char s = suit[i / 13];
int f = (i % 13) + 1;
deck.add(new PlayingCard(s, f));
}
}
@@ -23,13 +24,29 @@ public class DeckOfCards {
return deck;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (PlayingCard card : deck) {
sb.append(card.getAsString());
sb.append("\n");
public HandOfCards dealHand(int n) {
if (n < 0 || n > deck.size()) {
throw new IllegalArgumentException("Invalid number of cards to deal");
}
HandOfCards hand = new HandOfCards();
for (int i = 0; i < n; i++) {
int cardIndex = random.nextInt(deck.size());
if (hand.getHand().contains(deck.get(cardIndex))) {
i--;
} else {
hand.addCard(deck.get(cardIndex));
}
}
return hand;
}
@Override
public String toString () {
StringBuilder sb = new StringBuilder();
for (PlayingCard card : deck) {
sb.append(card.getAsString());
sb.append("\n");
}
return sb.toString();
}
return sb.toString();
}
}
Loading