Short drawing programme You just invited a liberal arts major to your house and you're telling him/her


  "You know, I am a great programmer and I can do x and y and z..."


S/he quickly gets bored and asks you:


  "If you really are a great programmer, can you make a programme to let me draw, I just need to draw lines on the screen by using the
  mouse, and selecting different colours in any manner".


Your code may import standard libraries. Your code may require the colours to be selected via the keyboard.

This is code-golf; shortest code wins.

Bullet points


The lines are drawn by moving the mouse around while pressing the left button.
Bresenham's Line Algorithm is not necessary any built-in algorithm will do the trick
If the user can change the line thickness in any way you get a * 0.8 bonus but it is not obligatory.
I guess it should be nicer to implement the line-drawing ourselves, but if you want you can import a library for that just say it in the code description.
The minimum is 5 different colours (red,green,blue,white,black). If you make them change randomly you get a penalty of *1.2. You may change them in any way you may want (both buttons and key presses are OK).
Drawing them pressing the mouse between to points or freehand would be best (i.e. as you do in paint) and gives you a bonus of *0.7 , but any other method is okay: (example) click two points and draw a line between those points? 
The drawing canvas has to be 600x400
Changing the colour should change the colour only of the lines that will be drawn in the future.
Implementing a "Clear All " command is not obligatory but if you implement that you get *0.9 bonus.
Processing - 93 · 0.9 = 83.7

With next to no overhead for drawing, but a very verbose syntax, in Processing the best score is probably reached without any nice features and only one bonus:

void setup(){
size(600,400);
}
void draw(){
if(mousePressed)line(mouseX,mouseY,pmouseX,pmouseY);
}


Score: 93 · 0.9 = 83.7 (Newlines are for readability only and are not counted in the score.)

However, it's much more fun with all the bonuses in place:

void setup(){
size(600,400);
}
int i,x,y;
void draw(){
stroke(7*i%256,5*i%256,i%256);
strokeWeight(i%9);
if(keyPressed)i++;
if(!mousePressed){x=mouseX;y=mouseY;if(x&lt;0)background(0);}
}
void mouseReleased(){
line(x,y,mouseX,mouseY);
}


Score: 221 · 0.8 · 0.7 · 0.9 = 111.4

It's used like this:


Click and drag the mouse to draw a straight line.
While clicked, drag the mouse off the left side of the window and release the mouse button to clear the screen.
Holding down any key will cycle through the red, green and blue values of the drawing colour and through different stroke thicknesses. Since the cycling periods are different, practically all combinations can be reached (with a bit of trying).




Edit:

Since freehand drawing gives the 0.7 bonus as well, here is yet another solution:

void setup(){
size(600,400);
}
int i;
void draw(){
stroke(7*i%256,5*i%256,i%256);
strokeWeight(i%9);
if(keyPressed)i++;
if(key&gt;9)background(0);
if(mousePressed)line(mouseX,mouseY,pmouseX,pmouseY);
}


Score: 188 · 0.8 · 0.7 · 0.9 = 94.8

It's used like this:


Click and drag to draw freehand lines.
Hold the tab key to change the colour and stroke thickness. This can also be done while drawing (see picture).
Hit any key but tab and then tab to clear the screen.