Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Lab12bvst.java
- // This is the Student-Starting file.
- // This version is implemented with "Dynamic Arrays"
- // This assignment pertains to some of the "Elevens" AP Lab Materials
- //***************************************************************************
- // The "Elevens" AP Lab is created for the College Board APCS
- // curriculum by Michael Clancy, Robert Glen Martin and Judith Hromcik.
- // Leon Schram has altered some of the "Elevens" files to focus on
- // specific CS topics as the "Elevens" Lab is integrated into the curriculum.
- //Ivey Rao, Period 9
- import java.util.ArrayList;
- import java.util.Random;
- public class Lab12bst
- {
- public static void main(String[] args)
- {
- Deck deck = new Deck();
- deck.shuffle(1000);
- System.out.println(deck);
- }
- }
- class Deck
- {
- private ArrayList<Card> cards;
- private int size;
- private ArrayList<String> suits = new ArrayList<>();
- private ArrayList<String> ranks = new ArrayList<>();
- private ArrayList<Integer> numbers = new ArrayList<>();
- public Deck()
- {
- size = 52;
- cards = new ArrayList<Card>();
- suits.add("Clubs");
- suits.add("Diamonds");
- suits.add("Hearts");
- suits.add("Spades");
- ranks.add("Two");
- ranks.add("Three");
- ranks.add("Four");
- ranks.add("Five");
- ranks.add("Six");
- ranks.add("Seven");
- ranks.add("Eight");
- ranks.add("Nine");
- ranks.add("Ten");
- ranks.add("Jack");
- ranks.add("Queen");
- ranks.add("King");
- ranks.add("Ace");
- numbers.add(2);
- numbers.add(3);
- numbers.add(4);
- numbers.add(5);
- numbers.add(6);
- numbers.add(7);
- numbers.add(8);
- numbers.add(9);
- numbers.add(10);
- numbers.add(10);
- numbers.add(10);
- numbers.add(10);
- numbers.add(11);
- for (int suitIndex = 0; suitIndex < suits.size(); suitIndex++)
- {
- for(int rvIndex = 0; rvIndex < ranks.size(); rvIndex++)
- {
- cards.add(new Card(suits.get(suitIndex), ranks.get(rvIndex), numbers.get(rvIndex)));
- //parameter is an object of type Card, not Card parameters
- }
- }
- //System.out.println(cards); //to test
- }
- public String toString()
- {
- String str = "";
- for(Card card : cards)
- {
- str += card.toString() + "\n";
- }
- return str;
- }
- /*
- public void shuffle(int times)
- {
- int temp = cards.size()-1;
- for (int i=0;i<times;i++)
- {
- int index1 = (int)(Math.random()*52);
- int index2 = (int)(Math.random()*52);
- cards.set(temp,cards.get(index1));
- cards.set(index1,cards.get(index2));
- cards.set(index2,cards.get(temp));
- }
- }
- */
- public void shuffle(int times)
- { /*
- ArrayList<Integer> newCards = new ArrayList<>();
- ArrayList<Integer> shuffledCards = new ArrayList<>();
- size = 52;
- for(int i=0;i<size;i++)
- {
- newCards.add(i);
- }
- while (newCards.size() > 0)
- {
- int index = (int) (Math.random() * newCards.size());
- shuffledCards.add(newCards.remove(index));
- //System.out.println("shuffledcards" + shuffledCards); //to test
- }
- for(int i=0;i<size;i++)
- {
- cards.set(i, cards.get(shuffledCards.get(i)));
- }
- */ //DID NOT WORK
- /*
- ArrayList<Integer> shuffledCards = new ArrayList<>();
- size = 52;
- for(int i=0;i<size;i++)
- {
- shuffledCards.add(i);
- }
- int temp = cards.size()-1;
- for (int i=0;i<times;i++)
- {
- int index1 = (int)(Math.random()*52);
- int index2 = (int)(Math.random()*52);
- shuffledCards.set(temp,shuffledCards.get(index1));
- shuffledCards.set(index1,shuffledCards.get(index2));
- shuffledCards.set(index2,shuffledCards.get(temp));
- //System.out.println("s"+ shuffledCards); //to test
- }
- for(int i=0;i<size;i++)
- {
- cards.set(i, cards.get(shuffledCards.get(i)));
- }
- */ //DID NOT WORK
- ArrayList<Card> cardsMod = new ArrayList<>();
- Random random = new Random();
- for (Card card : cards)
- {
- int newCard = cardsMod.size()+1;
- int index = random.nextInt(newCard); //random integer between 0 and newCard (inclusive)
- cardsMod.add(index,card); //adds card of random index from cards ArrayList
- }
- cards = cardsMod; //sets cards to cardsMod's values
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement