This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
haas:fall2020:c4eng:projects:lob0 [2020/08/13 22:39] – created wedge | haas:fall2020:c4eng:projects:lob0 [2020/08/21 12:50] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 4: | Line 4: | ||
</ | </ | ||
- | ======Project: VISUALIZATION - Letters of Blocks (lob0)====== | + | {{page> |
- | =====Objective===== | ||
- | To create a program that generates an image containing a set of letters, made from coordinated blocks. | ||
- | |||
- | =====Background===== | ||
- | For this project, you will be using a graphics design library to render the indicated image. | ||
- | |||
- | =====Program===== | ||
- | It is your task to write a program that generates an image containing the representation of a set of letters, in the current directory as your source code and binary, named and accessible as **lob0.png** | ||
- | |||
- | The program will be an exercise in exploration: | ||
- | |||
- | * 4 letters | ||
- | * each letter is a unique render (if you had 2 letter M's, both M's should look different) | ||
- | * the 4 letters are arranged to comfortably fit within a canvas of 1280x1024 pixels | ||
- | * the image will utilize no fewer than 8 different colours | ||
- | * letters are to be entirely constructed out of blocks (filled but square rectangles), | ||
- | |||
- | Letters could be your initials, plus extra to fill up to 4 total letters. | ||
- | |||
- | Restrictions: | ||
- | |||
- | * I don't want to see all simple letters (4 L's, 4 I's, etc.) | ||
- | |||
- | ====On your pi==== | ||
- | Develop and test this program on your pi. Only when done, verify that it compiles on lab46. | ||
- | |||
- | To utilize the needed functionality for this project, you will need to ensure you have the following packages installed: | ||
- | |||
- | * build-essential (hopefully you took care of this in ntr0) | ||
- | * libgd-dev | ||
- | * libgd-tools | ||
- | * libgd3 | ||
- | |||
- | =====Specifications===== | ||
- | Your program should: | ||
- | |||
- | * have valid, descriptive variable names of length //no shorter than// 4 symbols | ||
- | * have consistent, well-defined indentation (no less than 4 spaces per level of indentation) | ||
- | * all code within the same scope aligned to its indentation level | ||
- | * have proximal comments explaining your rationale and what is going on, throughout your code | ||
- | * perform the intended operation, outputting the correct/ | ||
- | * at the end of your main() function, use a single return statement to conclude your code, return a 0 indicating successful operation | ||
- | |||
- | =====Grabbing project resources===== | ||
- | I have prepared a **grabit** for resources related to this project. To obtain: | ||
- | |||
- | <cli> | ||
- | lab46: | ||
- | make: Entering directory '/ | ||
- | '/ | ||
- | '/ | ||
- | make: Leaving directory '/ | ||
- | lab46: | ||
- | </ | ||
- | |||
- | At which point you can change into the newly created and populated **lob0** directory. | ||
- | |||
- | =====Compiling===== | ||
- | Since the grabit brought in a Makefile, you can compile your code simply by typing: **make** | ||
- | |||
- | Any compiler errors will go into a text file called **errors** | ||
- | |||
- | To do a full cleaning, run: **make clean** then **make** (or **make debug**) | ||
- | |||
- | If you'd like to see compiler messages as you compile, run: **make debug** | ||
- | |||
- | When done and ready to submit, on lab46: **make submit** | ||
- | |||
- | =====Submission===== | ||
- | To successfully complete this project, the following criteria must be met: | ||
- | |||
- | * Code must compile cleanly (no notes, warnings, nor errors) | ||
- | * Output must be correct, and match the form given in the sample output above. | ||
- | * Code must be nicely and consistently indented | ||
- | * Code must be well commented | ||
- | * Do NOT double space your code. Group like statements together. | ||
- | * Output Formatting (including spacing) of program must conform to the provided output (see above). | ||
- | * Track/ | ||
- | * Submit a copy of your source code to me using the **submit** tool. | ||
- | |||
- | To submit this program to me using the **submit** tool, run the following command at your lab46 prompt: | ||
- | |||
- | <cli> | ||
- | lab46: | ||
- | Submitting c4eng project " | ||
- | -> lob0.c(OK) | ||
- | |||
- | SUCCESSFULLY SUBMITTED | ||
- | </ | ||
- | |||
- | You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches. | ||
- | |||
- | What I'll be looking for: | ||
- | |||
- | < | ||
- | 26: | ||
- | *: | ||
- | *:lob0:no negative compiler messages for program [7/7] | ||
- | *:lob0:code is pushed to lab46 repository [6/6] | ||
- | </ | ||
- | |||
- | Additionally: | ||
- | * Solutions not abiding by spirit of project will be subject to a 25% overall deduction | ||
- | * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction | ||
- | * Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction | ||
- | * Solutions not organized and easy to read are subject to a 25% overall deduction |