private void addMarker(final MarkerTile markerTile) {
		add(markerTile);
		markerTile.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				Position huffPosition;
				
				board.removeMarkers();
				AbstractPlay play= markerTile.getRelatedPlay();
				play.execute();
				log.setMessage(play.toString());//aggiorna log
				if (play instanceof Capture)
					turnChanger.eatIncrement();
				
				FactoryOfPlays factory = new FactoryOfCapturingsForPiece(play.getDestination(), board);
				boolean flag = true;
				if (play instanceof Capture && !factory.isEmpty()){
					for (AbstractPlay p : factory)
						board.setMarker(p);
					flag = false;
				}
				else {
					turnChanger.next();
				
					huffPosition = turnChanger.getHuffPosition();
					if (huffPosition != null)
						log.setMessage("Huff in " + huffPosition);
						
					getContentPane().removeAll();
					invalidate();
					showBoard(true);
					validate();	
					
					if(turnChanger.gameOver()){
						flag=false;
						new GameEnding(!turnChanger.getTurn(),Game.this).setVisible(true);
						log.setMessage("GAME OVER");
					} 
					else {
						cpuTurn();
						turnChanger.next();
						
						huffPosition = turnChanger.getHuffPosition();
						if (huffPosition != null)
							log.setMessage("Huff in " + huffPosition);
						
						if(turnChanger.gameOver()){
							new GameEnding(!turnChanger.getTurn(),Game.this).setVisible(true);
							log.setMessage("GAME OVER");
						}
					}
				}
				
				getContentPane().removeAll();
				invalidate();
				showBoard(flag);
				validate();
			}			
		});
	}