]> wirehaze git hosting - solitaire.git/commitdiff

wirehaze git hosting

initial commit
authorphfr24 <phfr24@inf.ufpr.br>
Sun, 19 Apr 2026 19:39:58 +0000 (16:39 -0300)
committerphfr24 <phfr24@inf.ufpr.br>
Sun, 19 Apr 2026 19:39:58 +0000 (16:39 -0300)
.classpath [new file with mode: 0644]
.gitignore [new file with mode: 0644]
.project [new file with mode: 0644]
src/solitaire/Card.java [new file with mode: 0644]
src/solitaire/Main.java [new file with mode: 0644]
src/solitaire/Rank.java [new file with mode: 0644]
src/solitaire/Suit.java [new file with mode: 0644]

diff --git a/.classpath b/.classpath
new file mode 100644 (file)
index 0000000..efedf92
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-25">
+               <attributes>
+                       <attribute name="module" value="true"/>
+               </attributes>
+       </classpathentry>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..f2960c0
--- /dev/null
@@ -0,0 +1,5 @@
+bin/
+.settings/
+*.class
+*.swp
+*.swo
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..1c407ce
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>solitaire</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/src/solitaire/Card.java b/src/solitaire/Card.java
new file mode 100644 (file)
index 0000000..b0fbb5c
--- /dev/null
@@ -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 (file)
index 0000000..a27fa26
--- /dev/null
@@ -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 (file)
index 0000000..e4aa93c
--- /dev/null
@@ -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 (file)
index 0000000..7304794
--- /dev/null
@@ -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;
+       }
+}