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

View File

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

View File

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

View File

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