public void deal() {
		// solution is now picked
		selectAnswer();
		// create and fill a deck with all cards to be dealt.  This is necessary since cards is a set and wont allow get() function
		List<Card> dealDeck = new ArrayList<Card>();
		for (Card c : cards) {
			if (!(c.getName() == solution.getPerson() || c.getName() == solution.getRoom() || c.getName() == solution.getWeapon())) {
				dealDeck.add(c);
			}
		}
		int dealt = 0;
		int numPlayers = players.size();
		int currentPlayer = 0;
		while (dealt < dealDeck.size()) {
			// get the current player and add the current card to that player's list of cards
			players.get(currentPlayer % numPlayers).getCards().add(dealDeck.get(dealt));
			dealt++;
			currentPlayer++;
		}

		// currentCards used to display humans cards on GUI
		currentCards.addCards(players.get(0).getCards());
		
		ArrayList<ComputerPlayer> comPlayers = new ArrayList<ComputerPlayer>();
		for (int i = 1; i < getPlayers().size(); ++i) {
			comPlayers.add((ComputerPlayer) getPlayers().get(i));
		}
		// update computers seen cards
		for (ComputerPlayer p : comPlayers) {
			for(Card c : p.getCards()) {
				p.updateSeen(c);
			}
		}
	}