public synchronized String endGame() {

		String msg = "";
		
		switch(this.fullVicAchieved) {
			case 1:
				msg = players[detPlayer(titato[0][0])].getName();
				msg += " won on the 1st row";
				msg += ":"+players[detPlayer(titato[0][0])].getPiece();
				this.victor = detPlayer(titato[0][0]);
				break;
			case 2:
				msg = players[detPlayer(titato[0][1])].getName();
				msg +=" won on the 2nd row";
				msg += ":"+players[detPlayer(titato[0][1])].getPiece();
				this.victor = detPlayer(titato[0][1]);
				break;
			case 3:
				msg = players[detPlayer(titato[0][2])].getName();
				msg += " won on the 3rd row";
				msg += ":"+players[detPlayer(titato[0][2])].getPiece();
				this.victor = detPlayer(titato[0][2]);
				break;
			case 4:
				msg = players[detPlayer(titato[0][0])].getName();
				msg += " won on the 1st column";
				msg += ":"+players[detPlayer(titato[0][0])].getPiece();
				this.victor = detPlayer(titato[0][0]);
				break;
			case 5:
				msg = players[detPlayer(titato[1][0])].getName();
				msg += " won on the 2nd column";
				msg += ":"+players[detPlayer(titato[1][0])].getPiece();
				this.victor = detPlayer(titato[1][0]);
				break;
			case 6:
				msg = players[detPlayer(titato[2][0])].getName();
				msg += " won on the 3rd column";
				msg += ":"+players[detPlayer(titato[2][0])].getPiece();
				this.victor = detPlayer(titato[2][0]);
				break;
			case 7:
				msg = players[detPlayer(titato[0][0])].getName();
				msg += " won on the upper left diagonal";
				msg += ":"+players[detPlayer(titato[0][0])].getPiece();
				this.victor = detPlayer(titato[0][0]);
				break;
			case 8:
				msg = players[detPlayer(titato[2][0])].getName();
				msg += " won on the upper right diagonal";
				msg += ":"+players[detPlayer(titato[2][0])].getPiece();
				this.victor = detPlayer(titato[2][0]);
				break;
			case 9:
				msg = "The board is full. DRAW!";
				this.victor = 1;
				break;
		}
		return msg;
	}