public void discard(Card card) {
		// remove card from hand
		if (players[turn].getHand().remove(card)) {
			discard.add(card);
			sendAll(PacketCreator.discardNotify(card));
		} else {
			out.println("Discard Error. Card " + card
					+ " was not in player's hand.");
			System.exit(1);
			return;
		}
		// send foot if empty
		checkAndSendFoot();

		// detect endgame
		if (players[turn].isInFoot() && players[turn].getHand().isEmpty()) {
			score[0] += endRoundScore(0);
			score[1] += endRoundScore(1);

			if (round < 4) {
				Packet packet;
				for (Player p : players) {
					boolean team = p.getNumber() % 2 == 0;
					// round + 1 for human readable
					packet = PacketCreator.endRound(team ? score[0] : score[1],
							team ? score[1] : score[0], round + 1);
					p.send(packet);
				}
				new Thread() {
					@Override
					public void run() {
						try {
							Thread.sleep(8000);
						} catch (InterruptedException e) {
						}
						startRound();
					}
				}.start();
			}
			round++;
		} else {
			endTurn();
		}
	}