Create player according to chosen difficulty
There are several things that can be improved, in my opinion:


Whitespaces around operators make the code more readable (you use them almost everywhere except this method):

public String toString() {
    return "play \t" + position + "\t" + stepsLeft + "\t"
           + jokingSkill + " \t" + score + "\n";
} 

Comments like // VARIABLES ---------- or // METHODS ---------- are useless (they do not contain any additional information). Adding comments for each individual method explaining what it does (especially for public ones) or what a field is used for is a good practice.  
An alternative for using switch statement is creating an array of constants. It can look like this:

private static int[] stepsLeftForLevel = new int[]{150, 150, 100, 10};

...

public Player(Position position, int difficultyLevel) {
    ...
    stepsLeft = stepsLeftForLevel[difficultyLevel];
    ...
}


It makes the code more readable in my opinion because all "magic" numbers are located in one place (and the code becomes more concise). 
There is no need to use this in a constructor unless the name of the field is shadowed by a parameter (that is, I would recommend using this only when it is necessary).