private void MoverPieza(int x, int y){
		//Si ya se han colocado las piezas
		if(piezaSeleccionada.jugando){	
			//Si pulsas otra pieza de tu equipo la selecciona automaticamente
			if (Piezas[x,y] != null && Piezas [x, y].esAzul != turnoRojo) {
				BoardHighlight.Instance.Hidehighlights ();
				SeleccionarPieza (x, y);
				return;
			}

			//Si puedes moverte a donde has pinchado
			if (movimientosPermitidos [x, y]) {
				Pieza piezaEnemiga = Piezas [x, y];
				//Borra highlights
				BoardHighlight.Instance.Hidehighlights ();	
				//Muestra las dos casillas que se ha movido este turno
				BoardHighlight.Instance.encenderCasilla (piezaSeleccionada.CurrentX, piezaSeleccionada.CurrentY);
				BoardHighlight.Instance.encenderCasilla (x, y);

				//Si atacas a un enemigo
				if (piezaEnemiga != null && piezaEnemiga.esAzul == turnoRojo) {
					//Mostramos textos
					if (turnoRojo) {
						mostrarTexto (piezaSeleccionada, textoValorAtaque, Color.red);
						mostrarTexto (piezaEnemiga, textoValorDefensa, Color.blue);					
					} else {
						mostrarTexto (piezaSeleccionada, textoValorAtaque, Color.blue);
						mostrarTexto (piezaEnemiga, textoValorDefensa, Color.red);					
					}

					//Calcula resultado del combate
					int combate = Combate (piezaSeleccionada, piezaEnemiga);

					//Si gana atacante
					if (combate == 1) {
						//Elimina de lista
						figurasActivas.Remove (piezaEnemiga.gameObject);

						//Destruye objeto del tablero
						Destroy (piezaEnemiga.gameObject);		

						//Calcula si quedan piezas movibles
						if (comprobarEmpateOrMovible ())
							return;
					}

					//Si gana defensa
					if (combate == -1) {
						//Elimina pieza
						figurasActivas.Remove (piezaSeleccionada.gameObject);
						Destroy (piezaSeleccionada.gameObject);
						Piezas [piezaSeleccionada.CurrentX, piezaSeleccionada.CurrentY] = null;	//Elimina figura de posicion anterior
						piezaSeleccionada = null;			//deselecciona pieza

						//Calcula si quedan piezas movibles
						if (comprobarEmpateOrMovible ())
							return;
						
						//Cambio de turno
						turnoRojo = !turnoRojo;
						if (turnoRojo) {
							cambioTurnoRojo ();
						} else {
							cambioTurnoAzul ();
						}
						return;
					}

					//Si las dos tienen el mismo valor 
					if (combate == 0) {
						//Elimina piezas
						figurasActivas.Remove (piezaSeleccionada.gameObject);
						figurasActivas.Remove (piezaEnemiga.gameObject);
						Destroy (piezaSeleccionada.gameObject);
						Destroy (piezaEnemiga.gameObject);
						Piezas [piezaSeleccionada.CurrentX, piezaSeleccionada.CurrentY] = null;
						Piezas [piezaEnemiga.CurrentX, piezaEnemiga.CurrentY] = null;
						piezaSeleccionada = null;

						//Calcula si quedan piezas movibles
						if (comprobarEmpateOrMovible ())
							return;
						
						//Cambio de turno
						turnoRojo = !turnoRojo;
						if (turnoRojo) {
							cambioTurnoRojo ();
						} else {
							cambioTurnoAzul ();
						}
						return;
					}

					//Si se captura la bandera
					if (combate == 2) {
						if (turnoRojo)
							FinDelJuego (1);
						else
							FinDelJuego (-1);
						return;
					}
				}

				//Mueve la pieza
				Piezas [piezaSeleccionada.CurrentX, piezaSeleccionada.CurrentY] = null;
				piezaSeleccionada.transform.position = GetTileCenter (x, y);
				piezaSeleccionada.setPosition (x, y); //Guardamos nueva posicion
				iTween.MoveTo(piezaSeleccionada.gameObject,new Vector3(x + 0.5f,0,y + 0.5f),4);
				Piezas [x, y] = piezaSeleccionada;

				//Cambia de turno
				turnoRojo = !turnoRojo;
				if (turnoRojo) {
					cambioTurnoRojo();
				} else {
					cambioTurnoAzul();
				}
			}

		} else {		//Si estamos colocando las piezas en el tablero
			if (movimientosPermitidos [x, y]) {
				Pieza posicionDeseada = Piezas [x, y];

				if (posicionDeseada == null) {	//No hay pieza en el sitio
					Piezas [piezaSeleccionada.CurrentX, piezaSeleccionada.CurrentY] = null;	//Borrar de anterior coordenada
					iTween.MoveTo (piezaSeleccionada.gameObject, new Vector3 (x + 0.5f, 0, y + 0.5f), 4);
					piezaSeleccionada.setPosition (x, y); 									//Guardamos nueva posicion		
					Piezas [x, y] = piezaSeleccionada;										//Añadimos a matriz
				} else {		//Ya había una pieza en el sitio
					Piezas [piezaSeleccionada.CurrentX, piezaSeleccionada.CurrentY] = null;	//Borrar de anterior coordenada
					iTween.MoveTo (piezaSeleccionada.gameObject, new Vector3 (x + 0.5f, 0, y + 0.5f), 4);
					piezaSeleccionada.setPosition (x, y); 									//Guardamos nueva posicion		

					piezaSeleccionada2 = Piezas [x, y];			//Guardamos pieza que vamos a devolver a la caja

					Piezas [x, y] = piezaSeleccionada;			//Añadimos a matriz la pieza movida							

					bool fin = false;	//Encontrada posicion en la caja = false
					//Distintas coordenadas dependiendo del color
					if (piezaSeleccionada2.esAzul) {		
						//Comprobamos uno a uno si hay algun hueco libre en la caja
						for (int j = 17; j >= 14; j--) {	
							for (int i = 9; i >= 0; i--) {
								if (Piezas [i, j] == null) {
									iTween.MoveTo (piezaSeleccionada2.gameObject, new Vector3 (i + 0.5f, 0, j + 0.5f), 4);
									piezaSeleccionada2.setPosition (i, j);									//Guardamos nueva posicion
									Piezas [i, j] = piezaSeleccionada2;
									fin = !fin;
									break;
								}
							}
							if (fin)
								break;
						} 
					} else {
						for (int j = 0; j < 4; j++) {
							for (int i = 0; i < 9; i++) {
								if (Piezas [i, j] == null) {
									iTween.MoveTo (piezaSeleccionada2.gameObject, new Vector3 (i + 0.5f, 0, j + 0.5f), 4);
									piezaSeleccionada2.setPosition (i, j);									//Guardamos nueva posicion
									Piezas [i, j] = piezaSeleccionada2;	
									fin = !fin;
									break;
								}
							}
							if (fin)
								break;
						} 
					}
					piezaSeleccionada2 = null;
				}
				// Durante la colocacion de piezas no se cambia turno hasta el final 
				if (RojasColocadas () && turnoRojo) {
					turnoRojo = false;		//Cambio de turno al colocar todas las rojas
					cambioTurnoAzul();
					planeValor.SetActive (false);
					planeValor.transform.position = new Vector3(5,5,0);
				}
				if (AzulesColocadas ()) {
					turnoRojo = true;
					cambioTurnoRojo();
					textoValorAtaque.transform.position = new Vector3 (360,60,0);
				}
			} else if (Piezas[x,y] != null && Piezas [x, y].esAzul != turnoRojo) {
				SeleccionarPieza (x, y);
				return;
			}
			BoardHighlight.Instance.Hidehighlights ();

		}
		piezaSeleccionada = null;
	}