@Override
	public void actionPerformed(ActionEvent e) {

		if(e.getActionCommand().equals("skip")) {
			
			nextTurn();
			
			if(lastTurnWasSkipped) {
				
				endGame();
				
			} else {
				
				setLastTurnWasSkipped(true);
			
			}
			
		} else if (e.getActionCommand().equals("undo")) {
			
			if (turnNumber > 0) {
				
				board.copyBoardFrom(boardBeforeLast);
				whiteScore = lastWhiteScore;
				blackScore = lastBlackScore;
				previousTurn();
				
				setUndoButtonEnabled(false);
				
				forceBoardViewRepaint();
				
			}
			
		} else if (e.getActionCommand().equals("score")) {
			
			String winningMessage;
			
			if (getBlackScore() >= getWhiteScore()) {
				winningMessage = "Black wins!";
			} else {
				winningMessage = "White wins!";
			}
			
			JOptionPane.showMessageDialog(topFrame,
					"Black: " + getBlackScore() +
					"\nWhite: " + getWhiteScore() +
					"\n" + winningMessage,
					"Final Score",
					JOptionPane.PLAIN_MESSAGE);
			
		} else if (e.getActionCommand().equals("about")) {
			
			JOptionPane.showMessageDialog(topFrame,
					"By William Berg @ william.berg08@imperial.ac.uk" +
					"\nDistributed under GPL v3",
					"Version 1.0",
					JOptionPane.INFORMATION_MESSAGE);
			
		}
		
		topFrame.repaint();
		
	}