2020-03-03 04:18:07 +01:00
|
|
|
package inf112.fiasko.roborally.objects;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Random;
|
|
|
|
|
|
|
|
public class Deck {
|
|
|
|
private ArrayList<ProgrammingCard> cardDeck;
|
|
|
|
|
|
|
|
public Deck(ArrayList<ProgrammingCard> cardDeck){
|
|
|
|
this.cardDeck=cardDeck;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void shuffle() {
|
|
|
|
Random randomNumber = new Random();
|
|
|
|
for (int i = cardDeck.size() - 1; i > 0; i--) {
|
|
|
|
int index = randomNumber.nextInt(i);
|
|
|
|
|
|
|
|
ProgrammingCard CardIndex = cardDeck.get(index);
|
|
|
|
cardDeck.add(index, cardDeck.get(i));
|
|
|
|
cardDeck.remove(index+1);
|
|
|
|
cardDeck.add(i, CardIndex);
|
|
|
|
cardDeck.remove(i+1);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public ProgrammingCard drawCard(){
|
|
|
|
ProgrammingCard draw = cardDeck.get(0);
|
|
|
|
cardDeck.remove(0);
|
|
|
|
return draw;
|
|
|
|
}
|
2020-03-03 04:33:58 +01:00
|
|
|
|
|
|
|
public void drawNCardsFromOtherDeck(int n, Deck otherDeck){
|
|
|
|
if (n<1 || n>otherDeck.getCards().size()){
|
|
|
|
throw new IllegalArgumentException("cant draw negativ cards or more cards then are in the deck");
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
for (int i=0;i<n;i++){
|
|
|
|
cardDeck.add(otherDeck.drawCard());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-03-03 04:18:07 +01:00
|
|
|
|
|
|
|
public void drawCardOtherDeck(Deck otherCardDeck){
|
|
|
|
cardDeck.add(otherCardDeck.drawCard());
|
|
|
|
}
|
|
|
|
|
|
|
|
public ArrayList<ProgrammingCard> drawAllCard(){
|
|
|
|
ArrayList<ProgrammingCard> allCards= new ArrayList<>();
|
2020-03-03 04:33:58 +01:00
|
|
|
int cardDeckSize = cardDeck.size();
|
|
|
|
for (int i=0;i<cardDeckSize;i++){
|
|
|
|
allCards.add(cardDeck.get((cardDeckSize-1)-i));
|
2020-03-03 04:18:07 +01:00
|
|
|
}
|
2020-03-03 04:33:58 +01:00
|
|
|
for (int i=0; i<cardDeckSize;i++){
|
2020-03-03 04:18:07 +01:00
|
|
|
cardDeck.remove(0);
|
|
|
|
}
|
|
|
|
return allCards;
|
|
|
|
}
|
|
|
|
|
2020-03-03 04:33:58 +01:00
|
|
|
public ArrayList<ProgrammingCard> getCards(){
|
|
|
|
return cardDeck;
|
|
|
|
}
|
2020-03-03 04:18:07 +01:00
|
|
|
|
2020-03-03 04:33:58 +01:00
|
|
|
public Boolean isEmpty(){
|
|
|
|
return cardDeck.isEmpty();
|
|
|
|
}
|
|
|
|
public int size(){
|
|
|
|
return cardDeck.size();
|
|
|
|
}
|
2020-03-03 04:18:07 +01:00
|
|
|
|
|
|
|
}
|
|
|
|
|