@Override
	public void run() {
		ArrayList<Meld> play, trivialPlay;
		Boolean playMade;
		
		try {
			startNewGame();
			
			while (!game.isGameOver()) {
				updateRound();
				
				playMade = false;
				
				System.out.println(game.displayGame());
				printStatus("Current Hand : " + hand.toString());
				
				if(initialMeld){
					trivialPlay = hand.getMeldsFromHand();
					
					if(trivialPlay.size() > 0){
						game.addMelds(trivialPlay);
						game.setHand(playerIndex, hand.getNumTiles());
						playMade = true;
					}
					
					play = game.getAdjacentPlay(hand, playerIndex);
					if(play != null){
						playMade = true;
					}
					else if (trivialPlay.size() > 0)
						play = trivialPlay;
				}
				
				else{
					play = hand.getInitialMeld();
					
					if(play != null){
						game.addMelds(play);
						game.setHand(playerIndex, hand.getNumTiles());
						initialMeld = true;
						playMade = true;
					}
				}
				
				if(!playMade){
					printStatus("Could not make a meld");
					drawTile();
				}
				else{
					playMelds(play);
				}
				
				// Wait for it to be your turn again 
				game = new GameInfo(client.getMessage());
			}
		}

		catch (Exception e) {
			printStatus("The server disconnected me?");
			e.printStackTrace();
		}
		
		this.endGame();
	}