From 2e1038ca48180811122763d34622278c27443daa Mon Sep 17 00:00:00 2001 From: phfr24 Date: Sun, 19 Apr 2026 16:39:58 -0300 Subject: [PATCH] initial commit --- .classpath | 10 ++++++++++ .gitignore | 5 +++++ .project | 17 +++++++++++++++++ src/solitaire/Card.java | 41 +++++++++++++++++++++++++++++++++++++++++ src/solitaire/Main.java | 11 +++++++++++ src/solitaire/Rank.java | 28 ++++++++++++++++++++++++++++ src/solitaire/Suit.java | 29 +++++++++++++++++++++++++++++ 7 files changed, 141 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 src/solitaire/Card.java create mode 100644 src/solitaire/Main.java create mode 100644 src/solitaire/Rank.java create mode 100644 src/solitaire/Suit.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..efedf92 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f2960c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +bin/ +.settings/ +*.class +*.swp +*.swo diff --git a/.project b/.project new file mode 100644 index 0000000..1c407ce --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + solitaire + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/solitaire/Card.java b/src/solitaire/Card.java new file mode 100644 index 0000000..b0fbb5c --- /dev/null +++ b/src/solitaire/Card.java @@ -0,0 +1,41 @@ +package solitaire; + +final class Card { + private final Suit suit; + private final Rank rank; + private boolean hidden; + + Card(Suit suit, Rank rank, boolean hidden) { + this.suit = suit; + this.rank = rank; + this.hidden = hidden; + } + + Card(Suit suit, Rank rank) { + this(suit, rank, true); + } + + Suit getSuit() { + return this.suit; + } + + Rank getRank() { + return this.rank; + } + + boolean isHidden() { + return this.hidden; + } + + void reveal() { + this.hidden = false; + } + + @Override + public String toString() { + if (this.hidden) + return " * "; + + return String.format("%s%2s", this.suit, this.rank); + } +} diff --git a/src/solitaire/Main.java b/src/solitaire/Main.java new file mode 100644 index 0000000..a27fa26 --- /dev/null +++ b/src/solitaire/Main.java @@ -0,0 +1,11 @@ +package solitaire; + +class Main { + + public static void main(String[] args) { + Card c = new Card(Suit.SPADES, Rank.TEN); + c.reveal(); + System.out.println(c); + } + +} diff --git a/src/solitaire/Rank.java b/src/solitaire/Rank.java new file mode 100644 index 0000000..e4aa93c --- /dev/null +++ b/src/solitaire/Rank.java @@ -0,0 +1,28 @@ +package solitaire; + +enum Rank { + ACE("A"), + TWO("2"), + THREE("3"), + FOUR("4"), + FIVE("5"), + SIX("6"), + SEVEN("7"), + EIGHT("8"), + NINE("9"), + TEN("10"), + JACK("J"), + QUEEN("Q"), + KING("K"); + + private String symbol; + + Rank(String symbol) { + this.symbol = symbol; + } + + @Override + public String toString() { + return this.symbol; + } +} diff --git a/src/solitaire/Suit.java b/src/solitaire/Suit.java new file mode 100644 index 0000000..7304794 --- /dev/null +++ b/src/solitaire/Suit.java @@ -0,0 +1,29 @@ +package solitaire; + +enum Suit { + CLUBS("♣", false), + DIAMONDS("♦", true), + HEARTS("♥", true), + SPADES("♠", false); + + private String symbol; + private boolean red; + + Suit(String symbol, boolean red) { + this.symbol = symbol; + this.red = red; + } + + boolean isRed() { + return this.red; + } + + boolean isBlack() { + return !this.red; + } + + @Override + public String toString() { + return this.symbol; + } +} -- 2.53.0