diff --git a/Cribbage/cribbage.log b/Cribbage/cribbage.log new file mode 100644 index 0000000000000000000000000000000000000000..9c8820efcf7e505da73e32b9ae4615520f98595a --- /dev/null +++ b/Cribbage/cribbage.log @@ -0,0 +1,8 @@ +seed,55510 +cribbage.RandomPlayer,P0 +cribbage.RandomPlayer,P1 +deal,P0,[2C,2H,7C,QC,QD,KH] +deal,P1,[AD,AH,TD,JS,QH,KC] +discard,P0,[2C,QC] +discard,P1,[JS,KC] +starter,8H diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class index b636d7c25768c7e14e9facd6fddfbb332c9f861f..a147958a39f3d8d4f821a8a9067d4cd3a3a31377 100644 Binary files a/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$1.class differ diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class index 7f88f19f23e274ea9f17e6786740ec458e7e9fe9..fd620cdab36aae8688b2641dad70484ff1e0caa1 100644 Binary files a/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$MyCardValues.class differ diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class index 16191b6bcfbdc9d188c27062d7e8b7ff8834c356..9b0414c05acf17d1611d7f441ef9cd299f7afef0 100644 Binary files a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Rank.class differ diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class index c29a01eb38b299c3fdb4558b0fcae0c623362058..15eaecc4b144ba1962aff3b0f0d9eb0db13d2b88 100644 Binary files a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Segment.class differ diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class index 0feeb133f36e5eb1aad4401e9c03d61c2ce33e29..e6a85e089e9a8805170c3ac5f5cb24ea0c0b61f3 100644 Binary files a/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class and b/Cribbage/out/production/Cribbage/cribbage/Cribbage$Suit.class differ diff --git a/Cribbage/out/production/Cribbage/cribbage/Cribbage.class b/Cribbage/out/production/Cribbage/cribbage/Cribbage.class index 4e8c9da01b16425c21278d4f249537f8e8c10bda..e2ceda0a8d6876c7363284db3c0881cf5e589609 100644 Binary files a/Cribbage/out/production/Cribbage/cribbage/Cribbage.class and b/Cribbage/out/production/Cribbage/cribbage/Cribbage.class differ diff --git a/Cribbage/out/production/Cribbage/cribbage/LogGenerator.class b/Cribbage/out/production/Cribbage/cribbage/LogGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..cc7d45b71d7f8103957aa6174f635d01805be96e Binary files /dev/null and b/Cribbage/out/production/Cribbage/cribbage/LogGenerator.class differ diff --git a/Cribbage/src/cribbage/Cribbage.java b/Cribbage/src/cribbage/Cribbage.java index 5fb110551072fa0705466c6d8d4ad3b9412cd7ba..874ec0d1a717e9ff24e2a0ffa58a6e7d6a8966aa 100644 --- a/Cribbage/src/cribbage/Cribbage.java +++ b/Cribbage/src/cribbage/Cribbage.java @@ -8,8 +8,7 @@ import observer.*; import java.awt.Color; import java.awt.Font; -import java.io.FileReader; -import java.io.IOException; +import java.io.*; import java.lang.reflect.InvocationTargetException; import java.util.*; import java.util.stream.Collectors; @@ -135,6 +134,9 @@ public class Cribbage extends CardGame { static private final IPlayer[] players = new IPlayer[nPlayers]; private final int[] scores = new int[nPlayers]; +static private final LogGenerator logGenerator = new LogGenerator(); +private final String[] playerName = {"P0", "P1"}; + final Font normalFont = new Font("Serif", Font.BOLD, 24); final Font bigFont = new Font("Serif", Font.BOLD, 36); @@ -175,6 +177,9 @@ private void deal(Hand pack, Hand[] hands) { hands[i].sort(Hand.SortType.POINTPRIORITY, true); } layouts[0].setStepDelay(0); + //log + logGenerator.writeLog("deal,P0," + canonical(players[0].hand)); + logGenerator.writeLog("deal,P1," + canonical(players[1].hand)); } private void discardToCrib() { @@ -184,11 +189,18 @@ private void discardToCrib() { crib.setView(this, layout); // crib.setTargetArea(cribTarget); crib.draw(); + Hand dPlayer = new Hand(deck); //discarded cards. for (IPlayer player: players) { for (int i = 0; i < nDiscards; i++) { transfer(player.discard(), crib); } + dPlayer.insert(crib.get(crib.getNumberOfCards()-1), false); + dPlayer.insert(crib.get(crib.getNumberOfCards()-2), false); + dPlayer.sort(Hand.SortType.POINTPRIORITY, false); crib.sort(Hand.SortType.POINTPRIORITY, true); + //log + logGenerator.writeLog("discard," + playerName[player.id] + "," + canonical(dPlayer)); + dPlayer.removeAll(false); } } @@ -200,6 +212,7 @@ private void starter(Hand pack) { starter.draw(); Card dealt = randomCard(pack); dealt.setVerso(false); + logGenerator.writeLog("starter," + canonical(dealt)); transfer(dealt, starter); } @@ -308,7 +321,7 @@ void modifySubject(HandCards playersHandCards){ playersHandCards.addRule(fifteens); playersHandCards.addRule(runs); playersHandCards.addRule(pairs); - //playersHandCards.addRule(flush); + playersHandCards.addRule(flush); playersHandCards.addRule(jack); } @@ -381,6 +394,12 @@ public Cribbage() players[1] = (IPlayer) clazz.getConstructor().newInstance(); // End properties + //log + logGenerator.generateLogFile(); + logGenerator.writeLog("seed," + SEED); + logGenerator.writeLog(cribbageProperties.getProperty("Player0") + ",P0"); + logGenerator.writeLog(cribbageProperties.getProperty("Player1") + ",P1"); + new Cribbage(); } diff --git a/Cribbage/src/cribbage/LogGenerator.java b/Cribbage/src/cribbage/LogGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..be03ef43f6d99cf66385d996afedc3416bbe5586 --- /dev/null +++ b/Cribbage/src/cribbage/LogGenerator.java @@ -0,0 +1,32 @@ +package cribbage; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +public class LogGenerator { + + String pathName = "cribbage.log"; + + public void generateLogFile(){ + try { + File file = new File(pathName); + if (file.exists()){ + file.delete(); + } else { + file.createNewFile(); + } + }catch (Exception e){e.printStackTrace();} + } + + public void writeLog(String str){ + try { + FileWriter fileWriter = new FileWriter(pathName, true); + BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter.write(str); + bufferedWriter.newLine(); + bufferedWriter.close(); + }catch (IOException e){e.printStackTrace();} + } +}