// Chooses 3 cards to pass. public static void handleRequestPass(Message m) { Deck toPass = randomCards(hand, 3); for (int i = 0; i < toPass.length(); i++) hand.remove(toPass.cardAt(i)); Message m2 = new Message(Message.PASS, null, toPass); server.sendMessage(m2); }
// Plays a card. public static void handleRequestPlay(Message m) { boolean heartsBroken = false; if (m.info.equals("true")) heartsBroken = true; Deck legal = Rules.extractLegalCards(hand, trick, heartsBroken); Card c = randomCards(legal, 1).cardAt(0); hand.remove(c); Message m2 = new Message(Message.PLAY, null, c); server.sendMessage(m2); }
// Chooses n random cards from haystack public static Deck randomCards(Deck haystack, int n) { Deck tbr = new Deck(); while (tbr.length() < n) { int random = Randomness.random(0, haystack.length() - 1); Card c = haystack.cardAt(random); if (tbr.hasCard(c)) continue; tbr.add(c); } return tbr; }
// Receives passed cards. public static void handleSendPassed(Message m) { Deck d = m.getDeck(); for (int i = 0; i < d.length(); i++) hand.add(d.cardAt(i)); hand.sort(); }