aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java
diff options
context:
space:
mode:
authorEduardo Pedroni <e.pedroni91@gmail.com>2015-06-24 18:58:15 +0200
committerEduardo Pedroni <e.pedroni91@gmail.com>2015-06-24 18:58:15 +0200
commitbf29c3d96160eeaa64f60a512a0a9f4d7c85167a (patch)
treed748a0fa4016c188b3d4be5bdd719261b40655b0 /src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java
parent59174889aba82c64ae63e0a5622d6cbcab63dc39 (diff)
Mulling over the generic comparator issue
Diffstat (limited to 'src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java')
-rw-r--r--src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java b/src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java
new file mode 100644
index 0000000..5736381
--- /dev/null
+++ b/src/eu/equalparts/cardbase/comparator/ComparatorDelegates.java
@@ -0,0 +1,39 @@
+package eu.equalparts.cardbase.comparator;
+
+
+abstract class ComparatorDelegates {
+
+ private ComparatorDelegates() {}
+
+ public static Integer compareManaCost(Comparable<String> field1, Comparable<String> field2) {
+ // avoid casting syntax nightmare
+ String mc1 = (String) field1, mc2 = (String) field2;
+
+ // first by number of colours
+ int mc1count = 0, mc2count = 0;
+ if (mc1.contains("W")) mc1count++;
+ if (mc1.contains("U")) mc1count++;
+ if (mc1.contains("B")) mc1count++;
+ if (mc1.contains("R")) mc1count++;
+ if (mc1.contains("G")) mc1count++;
+
+ if (mc2.contains("W")) mc2count++;
+ if (mc2.contains("U")) mc2count++;
+ if (mc2.contains("B")) mc2count++;
+ if (mc2.contains("R")) mc2count++;
+ if (mc2.contains("G")) mc2count++;
+
+ if (mc1count != mc2count)
+ return (mc1count < mc2count) ? -1 : ((mc1count == mc2count) ? 0 : 1);
+
+ // next by colour wheel
+
+ return 0;
+ }
+
+}
+/*
+ * first by number of colours
+ * next by colour wheel: white > blue > black > red > green
+ * next by cmc
+ */ \ No newline at end of file