Hello Python Tutors! 

I am a non-computer science major taking a computer programming course.  That 
is the first red flag you should know. Second red flag, the course is poorly, I 
mean poorly written. third red flag, it is a distance education course, so it 
is done online. Needless to say I am in big trouble.  I have been working on 
this assignment for days and have gotten nowhere. here are the directions:

For this assignment, you will create a web script that lets the user explore 
RGB colours. 

On the first page the user sees, they should specify two RGB colours. When they 
submit this page, they should be presented with a range of colours in between 
the two. The intermediate colours will be calculated by your program. 

For example, if the user enters the colours red (100% red, 0% green, 0% blue) 
and white (100% red, 100% green, 100% blue), your program might output a page 
containing this: 
(image of a color box)

If you want, you can experiment with an example of a working colour explorer. 
You can copy HTML and CSS code from this example if you wish. 

The easiest way to create one of the blocks of colour is with a <div> like 
this: 

<div class="colourblock" style="background-color: rgb(100.0%,50.0%,0.0%)"> 
</div>
 
There are a couple of new things here. First, note that you can indicate style 
information with the style attribute on an HTML tag. This is generally a bad 
idea, but it's possible for cases just like this where you want to control the 
style of individual elements in very specific ways.
 
Second, you can specify an RGB colour in CSS by specifying three percentages as 
in rgb(100%, 50%, 0%). This isn't used as commonly as the hexadecimal method 
we've used in the course up to now, but it is supported by modern web browsers 
and will be much easier to work with in our program. In this example, the 
colour will have a lot of red (100%=F), half green (50%≅7) and no blue (0%=0) 

Here's how you calculate the in-between colours: I'm going to assume the 
percentage of red the user specified for the first colour is an integer in red1 
and the amount of red for colour two is in red2. The number of steps the user 
requested is in nsteps. If you want the amount of red (as a percent) for colour 
block i, you can do this (assuming i goes from 0 to nsteps-1): 

fraction = (i+1.0)/nsteps
r = (1-fraction)*red1 + fraction*red2 

After this, the variable r will contain the correct percent (as a floating 
point value). The calculation for green and blue are exactly the same. (You 
don't have to repeat the calculation of fraction, of course.) 
Here are some other points about how the program should behave: 

•       You will have to apply a style sheet to the <div> tags so they are 
large enough to see. Something like this might be appropriate: 
    colourblock { width: 10em; height: 1em; } 

•       Your program must never output more than 150 total colours, no matter 
how many the user asks for. If the users asks for more, it should only output 
150. 
Having a limitation like this is an essential security measure. If not, someone 
could ask for 1000000 steps; this would overload the server and someone would 
probably come asking you why you used so much of the University's bandwidth. 
[Actually, the course web server automatically limits the size of the page your 
script can create. This isn't the case on most web servers so you should get 
into the habit of paying attention to the amount of output you generate. Python 
scripts on the server are limited to 60k of output.] 

•       You don't have to worry about catching errors in the user's input. That 
is, don't worry about the possibility of them entering "abcd" as the number of 
steps. 

•       You have to be careful about the spacing when outputting the RGB 
percentage values. You will have to convert the numbers to strings and 
concatenate them. For example, this statement will output part of the style 
attribute: 
print 'style="background-color: rgb(' + str(r) + '%' 

•       All of your XHTML (including generated XHTML) and CSS must be valid. 

I have no idea how to begin!! can you help me?

Thank you,

Andrea Semenik
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to