diff --git a/.idea/sonarlint/issuestore/8/c/8cd796776b040d3af04600b5b5a4185da922f831 b/.idea/sonarlint/issuestore/8/c/8cd796776b040d3af04600b5b5a4185da922f831 index 2c8ddf2d8d54ef816b1bd2b02ce7bca37110ef54..5f1c319947a69f0f34d7f27640a45e50932a3295 100644 --- a/.idea/sonarlint/issuestore/8/c/8cd796776b040d3af04600b5b5a4185da922f831 +++ b/.idea/sonarlint/issuestore/8/c/8cd796776b040d3af04600b5b5a4185da922f831 @@ -1,4 +1,2 @@ -{ java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(�ɿ������8�����1 -W -java:S1128":Remove this unused import 'javafx.scene.layout.StackPane'.(����8�����1 \ No newline at end of file +{ java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(�ɿ������8�����1 \ No newline at end of file diff --git a/src/main/java/org/OleThomas/DeckOfCards.java b/src/main/java/org/OleThomas/DeckOfCards.java index 1fdb1d0821491737cf5ff586516c641c0da7ca84..09df6ea478a8a2c0a12aa9ab1d989faddfc19e4b 100644 --- a/src/main/java/org/OleThomas/DeckOfCards.java +++ b/src/main/java/org/OleThomas/DeckOfCards.java @@ -3,16 +3,25 @@ package org.OleThomas; import java.util.ArrayList; import java.util.Random; +/** + * Represents a deck of playing cards. + * + * @see PlayingCard + * @author Ole-Thomas + * @version 1.0 + */ public class DeckOfCards { private ArrayList<PlayingCard> deckOfCards; private char[] suits = {'S', 'H', 'D', 'C'}; + /** Creates an instance of a deck of cards with all cards accounted for. */ public DeckOfCards() { deckOfCards = new ArrayList<PlayingCard>(); shuffleDeck(); } + /** "Shuffels" a deck of playing cards to get all used cards back. */ public void shuffleDeck() { deckOfCards.clear(); PlayingCard tmp = null; @@ -24,15 +33,21 @@ public class DeckOfCards { } } + /** + * Getter for deckOfCards + * + * @return deckOfCards + */ public ArrayList<PlayingCard> getDeckOfCards() { return deckOfCards; } + /** + * Getter for deckOfCards size + * + * @return deckOfCards.size() + */ public int getSize() { return deckOfCards.size(); } - - public static void main(String[] args) { - System.out.println(new PlayingCard('S', 12).hashCode()); - } } diff --git a/src/main/java/org/OleThomas/Hand.java b/src/main/java/org/OleThomas/Hand.java index 678be444d72c3ee2bd91e6632b99e7794eb171c9..5802d796e2348f2cb736c33a9bb6b18f0bbbb545 100644 --- a/src/main/java/org/OleThomas/Hand.java +++ b/src/main/java/org/OleThomas/Hand.java @@ -1,22 +1,40 @@ package org.OleThomas; -import com.sun.javafx.binding.StringFormatter; - import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Random; import java.util.stream.Collectors; +/** + * Represents an instance of a hand of cards. + * + * @see PlayingCard + * @author Ole-Thomas + * @version 1.0 + */ public class Hand { private ArrayList<PlayingCard> hand; private Random random = new Random(); + private char[] suits = {'S', 'H', 'D', 'C'}; + /** + * Creates an instance of a hand of cards. + * + * @param n number of cards in the hand + * @param deckOfCards the deck of cards to draw from + */ public Hand(int n, DeckOfCards deckOfCards) { this.hand = dealHand(n, deckOfCards); } + /** + * "Draws" a hand of cards + * + * @param n number of cards in the hand + * @param deckOfCards the deck of cards to draw from + * @return hand + */ public ArrayList<PlayingCard> dealHand(int n, DeckOfCards deckOfCards) { if (n < 1 || n > deckOfCards.getSize()) { throw new IllegalArgumentException("Invalid number of cards to deal"); @@ -34,11 +52,21 @@ public class Hand { return hand; } + /** + * Method to find the sum of the faces in the hand. + * + * @return sum + */ public int sumOfTheFaces() { int sum = hand.stream().mapToInt(card -> card.getFace()).sum(); return sum; } + /** + * Method to find the cards with hearts as the face. + * + * @return String of cards or "No Hearts" for no hearts + */ public String getHearts() { List<String> hearts = hand.stream() @@ -57,16 +85,38 @@ public class Hand { } } + /** + * Method to find if a hand contains the queen of spades. + * + * @return boolean + */ public boolean containsQueenOfSpade() { boolean queenOfSpades = hand.stream().anyMatch(card -> card.getSuit() == 'S' && card.getFace() == 12); return queenOfSpades; } + /** + * Method to find if a hand contains a five flush. + * + * @return boolean + */ public boolean containsFiveFlush() { - return false; + boolean fiveFlush = false; + for (char suit : suits) { + long sum = hand.stream().filter(card -> card.getSuit() == suit).count(); + if (sum == 5) { + fiveFlush = true; + } + } + return fiveFlush; } + /** + * toString method + * + * @return string + */ @Override public String toString() { StringBuilder txt = new StringBuilder(); diff --git a/src/main/java/org/OleThomas/Main.java b/src/main/java/org/OleThomas/Main.java index 83659db9fc56c3ce7c82df099c85dbebf385dd1c..ccd51a4552384d9d1e8c33992ec59f74a5510c23 100644 --- a/src/main/java/org/OleThomas/Main.java +++ b/src/main/java/org/OleThomas/Main.java @@ -4,12 +4,14 @@ import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; -import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; +/** + * Main application of the program + */ public class Main extends Application { Stage window; diff --git a/src/test/java/org/OleThomas/PlayingCardTest.java b/src/test/java/org/OleThomas/PlayingCardTest.java index 447889920855aa0a85b5c03d42945fc9a38e60aa..7d7cab60e9026c2d77b273ac3ae1ab3eac7afa1d 100644 --- a/src/test/java/org/OleThomas/PlayingCardTest.java +++ b/src/test/java/org/OleThomas/PlayingCardTest.java @@ -3,56 +3,70 @@ package org.OleThomas; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; + +/** + * Test class for PlayingCard class. + * + * @see PlayingCard + * @author Ole-Thomas + * @version 1.0 + */ class PlayingCardTest { - @Test - void posPlayingCard() { - PlayingCard card1 = new PlayingCard('S', 12); - - assertEquals(card1.getSuit(),'S'); - assertEquals(card1.getFace(),12); - } - - @Test - void negPlayingCard() { - PlayingCard card1 = new PlayingCard('S', 12); - - assertNotEquals(card1.getSuit(),'H'); - assertNotEquals(card1.getFace(),15); - } - - @Test - void posGetAsString() { - PlayingCard card1 = new PlayingCard('S', 12); - assertEquals(card1.getAsString(), "S12"); - } - - @Test - void negGetAsString() { - PlayingCard card1 = new PlayingCard('S', 12); - assertNotEquals(card1.getAsString(), "H13"); - } - - @Test - void posTestEquals() { - PlayingCard card1 = new PlayingCard('S', 12); - PlayingCard card2 = new PlayingCard('S', 12); - assertTrue(card1.equals(card2)); - assertTrue(card2.equals(card1)); - } - - - - @Test - void negTestEquals() { - PlayingCard card1 = new PlayingCard('S', 12); - PlayingCard card2 = new PlayingCard('H', 13); - assertFalse(card1.equals(card2)); - assertFalse(card2.equals(card1)); - } - @Test - void testHashCode() { - PlayingCard card1 = new PlayingCard('S', 12); - assertEquals(card1.hashCode(),9312); - } -} \ No newline at end of file + /** Positive test for playingCard */ + @Test + void posPlayingCard() { + PlayingCard card1 = new PlayingCard('S', 12); + + assertEquals(card1.getSuit(), 'S'); + assertEquals(card1.getFace(), 12); + } + + /** Negative test for playingCard */ + @Test + void negPlayingCard() { + PlayingCard card1 = new PlayingCard('S', 12); + + assertNotEquals(card1.getSuit(), 'H'); + assertNotEquals(card1.getFace(), 15); + } + + /** Positive test for getAsString */ + @Test + void posGetAsString() { + PlayingCard card1 = new PlayingCard('S', 12); + assertEquals(card1.getAsString(), "S12"); + } + + /** Negative test for getAsString */ + @Test + void negGetAsString() { + PlayingCard card1 = new PlayingCard('S', 12); + assertNotEquals(card1.getAsString(), "H13"); + } + + /** Positive test for equals */ + @Test + void posTestEquals() { + PlayingCard card1 = new PlayingCard('S', 12); + PlayingCard card2 = new PlayingCard('S', 12); + assertTrue(card1.equals(card2)); + assertTrue(card2.equals(card1)); + } + + /** Negative test for equals */ + @Test + void negTestEquals() { + PlayingCard card1 = new PlayingCard('S', 12); + PlayingCard card2 = new PlayingCard('H', 13); + assertFalse(card1.equals(card2)); + assertFalse(card2.equals(card1)); + } + + /** Positive test for hashCode. */ + @Test + void testHashCode() { + PlayingCard card1 = new PlayingCard('S', 12); + assertEquals(card1.hashCode(), 9312); + } +}