Enter the maze

Strictly X-factor

TV talent shows like X-Factor, or Soapstar Superstars have always been popular. It's not just the talent on show that make them must see TV - it's having the right mix of personalities in the judges too. Simon Cowell has made a career of being rude - even reaching the dizzy heights of a guest appearance on The Simpsons. In contrast judge Sharon Osborne's on screen persona is far more supportive. It's often the tension between the judges that makes good TV. However, if you believe Dr Who, the future of game shows will be robot judges like AnneDroid in the space age version of The Weakest Link...let's look at the robot future. How might you go about designing computer judges?

Concert

We need to write a program. We don't want to have to describe new judges from scratch each time. We want to do as little as possible to describe each new one.

What makes a judge?

First let's describe a basic judge. We will create a plan, a bit like an architect's plan of a building. It can then be used to build individual judges. What's the X-factor that makes a judge a judge? First we need to decide on some characteristics of judges. We can make a list of them. The only thing common to all judges is they have different personalities and they make judgements on people. Let's simply say a judge's personality can be either supportive or rude, and their judgements are just marks out of 10 for whoever they are watching.

Character : SUPPORTIVE OR RUDE. 
Judgement : 1 TO 10. 

So let's start to specify (describe) Judges as people with a personality and capable of thinking of a mark.

DESCRIPTION OF a Judge: 
  Character personality. 
  Judgement mark. 

All we are saying here is whenever we create a Judge it will have a personal character (it will be either RUDE or SUPPORTIVE). For any given judge we will refer to their character as "personality". It will also have a current judgement, which we will refer to as mark: a number between 1 and 10.

Best Behaviour

We are now able to say whether a judge is rude or supportive, but we haven't actually said what that means. We need to set out the behaviours associated with being rude and supportive. To keep it simple, let us say that the personality shows in the things they say. A rude judge will say "You're a disgrace" unless they are awarding a mark above 8/10. For high marks they will grudgingly say "You were ok I suppose".

TO Speak: 
  IF (personality IS Rude) AND (mark <= 8) 
  THEN SAY "You're a discrace".
   
  IF (personality IS Rude) AND (mark > 8) 
  THEN SAY "You were ok I suppose". 

It would be easy for us to give them lots more things to choose to say in a similar way. We can do the same for a supportive judge. They will say "You were stunning" if they award more than 5 out of 10 and otherwise say "You tried hard".

Ten out of Ten

The other thing that judges do is actually come up with their judgement. We will assume, to keep it simple here, that they just think of a random number - essentially throw a 10 sided dice under the desk with numbers 1-10 on. Judges' decisions can sometimes look like that on TV!

TO MakeJudgement: 
  mark = RANDOM (1 TO 10). 

Putting that all together to make our full judge description we get as our final plan for making judges:

DESCRIPTION OF A Judge: 
  Character personality. 
  Judgement mark. 

  TO Speak: 
    IF (personality IS Rude) AND (mark <= 8) 
    THEN SAY "You're a discrace". 
    
    IF (personality IS Rude) AND (mark > 8) 
    THEN SAY "You were ok I suppose". 
    
    IF (personality IS Supportive) AND (mark > 5) 
    THEN SAY "You were stunning". 
    
    IF (personality IS Supportive) AND (mark <= 5) 
    THEN SAY "You tried hard". 

  TO MakeJudgement:  
    mark = RANDOM (1 TO 10). 

So how do we use our plan to actually make judges?