Limit number of decks to 1

The subroutine to get a card shuffles 52 cards when the deck is run
through:

100 REM--SUBROUTINE TO GET A CARD.  RESULT IS PUT IN X.
110 IF C<51 THEN 230
120 PRINT "RESHUFFLING"
130 FOR D=D TO 1 STEP -1
140 C=C-1
150 C(C)=D(D)
160 NEXT D
170 FOR C1=52 TO C STEP -1
180 C2=INT(RND(1)*(C1-C+1))+C
190 C3=C(C2)
200 C(C2)=C(C1)
210 C(C1)=C3
220 NEXT C1
230 X=C(C)
240 C=C+1
250 RETURN
This commit is contained in:
Dave Burke
2022-02-03 08:31:02 -06:00
parent 914f123bfc
commit 15c26cbe09
3 changed files with 7 additions and 18 deletions

View File

@@ -27,7 +27,7 @@ public class Blackjack {
nPlayers = promptInt("NUMBER OF PLAYERS");
}
Deck deck = new Deck(4); // TODO figure out how many decks the BASIC version uses
Deck deck = new Deck();
System.out.println("RESHUFFLING");
deck.shuffle();

View File

@@ -13,13 +13,11 @@ public class Deck {
*
* @param nDecks
*/
public Deck(int nDecks) {
public Deck() {
cards = new LinkedList<>();
for(int deckIndex = 0; deckIndex < nDecks; deckIndex++) {
for(Card.Suit suit : Card.Suit.values()) {
for(int value = 1; value < 14; value++) {
cards.add(new Card(value, suit));
}
for(Card.Suit suit : Card.Suit.values()) {
for(int value = 1; value < 14; value++) {
cards.add(new Card(value, suit));
}
}
}

View File

@@ -5,9 +5,9 @@ import org.junit.jupiter.api.Test;
public class DeckTest {
@Test
void testInitOne() {
void testInit() {
// When
Deck deck = new Deck(1);
Deck deck = new Deck();
// Then
long nCards = deck.size();
@@ -28,13 +28,4 @@ public class DeckTest {
}
@Test
void testInitTwo() {
// When
Deck deck = new Deck(2);
// Then
assertEquals(104, deck.size());
}
}