Skip to content
Snippets Groups Projects
Commit eae3abe8 authored by giovanni.novati@studenti.unimi.it's avatar giovanni.novati@studenti.unimi.it
Browse files

Merge branch 'feature/Player' into develop

parents 4b2af1cb 30e1936c
Branches
Tags
No related merge requests found
......@@ -3,13 +3,11 @@ package it.unimi.di.sweng.briscola;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Player {
// TODO rendere la classe Comparable con altri Player confrontando i punteggi
// TODO rendere la classe Iterable sulle carte che ha in mano
public class Player implements Iterable<Card>, Comparable<Player> {
private @NotNull final String name;
private @NotNull final List<Card> cards = new ArrayList<>();
private @NotNull final List<Card> personalDeck = new ArrayList<>();
......@@ -82,4 +80,15 @@ public class Player {
public void shoutResult() {
System.out.printf("Sono %s e ho vinto con %d punti%n", getName(), getPoints());
}
@NotNull
@Override
public Iterator<Card> iterator() {
return Collections.unmodifiableList(cards).iterator();
}
@Override
public int compareTo(@NotNull Player player) {
return getPoints() - player.getPoints();
}
}
package it.unimi.di.sweng.briscola;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
public class PlayerTest {
@Test
void iterablePlayerTest(){
Player pl1 = new Player("Gio");
List<Card> cards = List.of(
Card.get(Rank.ASSO,Suit.BASTONI),
Card.get(Rank.ASSO,Suit.COPPE),
Card.get(Rank.TRE,Suit.BASTONI));
for (Card card : cards)
pl1.giveCard(card);
Iterator<Card> it = pl1.iterator();
for (Card card : cards)
assertThat(card).isEqualTo(it.next());
}
@Test
void comparePlayerTest(){
Player pl1 = new Player("Gio");
Player pl2 = new Player("Vale");
pl1.addWonCardsToPersonalDeck(Card.get(Rank.TRE,Suit.BASTONI), Card.get(Rank.ASSO,Suit.DENARI));
assertThat(pl1.compareTo(pl2)).isGreaterThan(0);
pl2.addWonCardsToPersonalDeck(Card.get(Rank.ASSO,Suit.BASTONI), Card.get(Rank.ASSO,Suit.DENARI));
assertThat(pl1.compareTo(pl2)).isLessThan(0);
assertThat(pl2.compareTo(pl1)).isGreaterThan(0);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment