ssd by remco

This commit is contained in:
2022-09-16 10:43:16 +02:00
parent da98bc2c91
commit 0f8b0ce880
8 changed files with 60 additions and 14 deletions

View File

@@ -0,0 +1,17 @@
@startuml
skinparam sequenceMessageAlign right
actor Player
participant System
Player -> System ++ : Start game
loop until 1 player || 0 cards left
alt valid move
Player -> System: play()
else else
Player -> System: draw()
end
end
@enduml

View File

@@ -0,0 +1,34 @@
@startuml
skinparam sequenceMessageAlign right
entity " " as start
participant Game
participant Player
participant Card
participant Referee
actor User
actor Bot
start -> Game: playGame()
loop until someone wins
Game -> Player: getPlay(currentCard)
alt user's turn
alt play
User -> Player: play(card)
Game <-- Player: playedCard
Game -> Referee: checkPlay(currentCard, playedCard)
else draw
User -> Player: draw()
end
else bot's turn
alt play
Bot -> Player: play(card)
Game <-- Player: playedCard
Game -> Referee: checkPlay(currentCard, playedCard)
else draw
Bot -> Player: draw()
end
end
end
@enduml

View File

@@ -3,6 +3,7 @@ package mau.mau;
import mau.mau.players.Player;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Dealer {
@@ -14,13 +15,8 @@ public class Dealer {
}
public List<Card> shuffleDeck(List<Card> unshuffledDeck) {
List<Card> shuffledDeck = new ArrayList<>();
while (unshuffledDeck.size() > 0) {
int randomIndex = (int) (Math.random() * unshuffledDeck.size());
shuffledDeck.add(unshuffledDeck.get(randomIndex));
unshuffledDeck.remove(randomIndex);
}
return shuffledDeck;
Collections.shuffle(unshuffledDeck);
return unshuffledDeck;
}
public List<Card> getHand() {

View File

@@ -38,7 +38,7 @@ public class Game {
skipNextPlayer = false;
continue;
}
System.out.println("Current card is " + currentCard.getType() + " " + currentCard.getValue());
System.out.println("Current card is " + currentCard);
Card card = player.getPlay(currentCard);
if (card != null) {
playCard(card);

View File

@@ -26,10 +26,8 @@ public class Bot extends Player {
}
for(Card card : hand) {
TYPENUM cardType = card.getType();
VALUENUM cardValue = card.getValue();
if(Referee.isValidMove(card, currentCard)) {
System.out.println("Bot played " + cardType + " " + cardValue);
System.out.println("Bot played " + card);
hand.remove(card);
System.out.println("Bot now has " + hand.size() + " cards");
return card;

View File

@@ -29,7 +29,7 @@ public class Human extends Player {
}
if (input.equals("draw")) {
Card card = drawCard();
System.out.println("You drew a " + card.getType() + " " + card.getValue());
System.out.println("You drew a " + card);
hand.add(card);
return null;
}
@@ -54,7 +54,8 @@ public class Human extends Player {
private void printHand(){
List<Card> hand = super.getHand();
for (int i = 0; i < hand.size(); i++) {
System.out.println("(" + i + ") " + hand.get(i).getType() + " " + hand.get(i).getValue());
Card card = hand.get(i);
System.out.println("(" + i + ") " + card);
}
}
}