I just got my C++ assignment today, and I don't understand it. Here are the instructions. The topic is on DDR (Dance Dance Revolution)
Your task
For this project, you will implement the following two functions, using the exact function names, parameters types, and return types shown in this specification. (The parameter names may be different if you wish.) bool isDanceWellFormed(string dance)
This function returns true if its parameter is a well-formed dance, and false otherwise. int translateDance(string dance, string& instructions, int& badBeat)
If the parameter dance is translatable, the function sets instructions to the translation of the dance, leaves badBeat unchanged, and returns 0. In all other cases, the function leaves instructions unchanged. If dance is not well-formed, the function leaves badBeat unchanged and returns 1. If dance is well-formed but while a freeze is in effect, a beat not consisting of only a slash is present, badBeat is set to the number of that beat (where the first beat of the whole dance is number 1, etc.), and the function returns 2. If dance is well-formed but ends prematurely, badBeat is set to one more than the number of beats in the string, and the function returns 3. If dance is well-formed but a beat specifies a freeze of length less than 2, badBeat is set to the number of that beat, and the function returns 4. If the dance is well-formed but not translatable for more than one reason, report the leftmost occuring problem. (For example, if dance is 3r//u/0d//2u/, set badBeat to 3 and return 2.)
These are the only two functions you are required to write. (Hint: translateDance may well call isDanceWellFormed.) Your solution may use functions in addition to these three. While we won't test those additional functions separately, their use may help you structure your program more readably. Of course, to test them, you'll want to write a main routine that calls your functions. During the course of developing your solution, you might change that main routine many times. As long as your main routine compiles correctly when you turn in your solution, it doesn't matter what it does, since we will rename it to something harmless and never call it (because we will supply our own main routine to throroughly test your functions).
Your functions must not use any global variables.
When you turn in your solution, neither of the two required functions, nor any functions they call, may write any output to cout. (Of course, during development, you may have them write whatever you like to help you debug.) If you want to print things out for debugging purposes, write to cerr instead of cout. cerr is the standard error destination; items written to it by default go to the screen. When we test your program, we will cause everything written to cerr to be discarded instead -- we will never see that output, so you may leave those debugging output statements in your program if you wish.
What am I supposed to do? Do I run tests with if statements and stuff?