Good luck with the assignment. If you have any questions, ask me in class or send me an email.
Write a windows program using Visual Studio 2012 that neatly displays 5
randomly generated dominos in a window. Each domino will be drawn as a 2D
rectangle with two squares in it and each square and will randomly have from 0
to 6 spots, arranged as is customary for dominos. Follow all the directions
carefully. Part of this assignment is to see if you can carefully implement a
program following all specifications.
This is not a group project. You must work independently. You must not receive any help or
assistance from any source other than the class instructor or individuals that the instructor
specifically designates. You must not provide any help or assistance to another student. You
must keep your program securely where no one else can see it or use it in any way. Failure to
comply with all the provisions in this paragraph will be considered a violation of the FAU Code of
Academic Integrity and will probably result in an F in the class and other consequences including
possible suspension or dismissal from FAU.
1) Somewhere on the window will be the following text “There are X even
dominos!” where X is the number of dominoes that are displaying an even
number of total spots. The value of X will always be between zero and five
2) The title bar of the window will be your full name.
3) When the user presses an arrow key the dominoes will all move slightly in the direction of the arrow.
4) When the user presses page-up the dominoes will grow in size. (They will remain rectangles with the same
aspect ratio, their centers will not move and the spots will be displayed appropriately.)
5) When the user presses page-down the dominoes will shrink in size. (They will remain rectangles with the
same aspect ratio, their centers will not move and the spots will be displayed appropriately.)
6) For extra credit have the dominoes each individually rotate one degree clockwise every time the 'r' key is
pressed. (The dominoes will remain rectangles with the same aspect ratio, their centers will not move and the
spots will be displayed appropriately.) The functionality of items 4 and 5 will have to still work without
changing the current rotation. In other words, if the dominoes are rotated ten degrees by pressing r ten times,
then the dominoes should remain rotated ten degrees even when it changes size by pressing page-up or pagedown.
7) When the ‘c’ key is pressed all the dominoes will change to a new random colors. They should at this point
each be a different color and should have spots that are different colors. Make sure that the color of the spots
contrasts enough from the color of the background of the dominoes so they can be read.
8) When the space bar is pressed each domino will be rerolled. In other words it will display two new random
values between 0 and 6. The value of X in item 1 will be recalculated and displayed.
9) Carefully follow all the submission directions provided. (Your grade is based on following all directions.)
10) Please don't get clever and add any extra functionality. Stick with the specs.
You can make your own private version and let it do anything you want. You can have the dominoes dance the
fandango or do the watusi, but for the version you turn in just have it do what is described here and nothing
else. If you have a private version that is very cool I will like to see it in my office during office hours and I may
consider giving extra credit.
11) Include a file in the same directory as the sln file called test.txt where you list which of these 11 criteria in
this assignment that your program does not completely meet. For example if your program does not print the
number of even dominoes correctly and does not rotate the dominoes but everything else worked perfectly you
would include the following in test.txt: “1,6” If you met all the specifications simply include the following in
test.txt: “Everything perfect!”. The grade you get on the assignment will be strongly affected by the accuracy of
your test.txt file. The ability to test your own programs and understand if they have met the specification is an
important part of programming.