Note: For information about the points this response earned, please see the Create Commentary.
Submit one video in .mp4, .wmv, .avi, or .mov format that demonstrates the running of at least one significant feature of your program. Your video must not exceed 1 minute in length and must not exceed 30MB in size.
2. Written Responses
Submit one PDF file in which you respond directly to each prompt. Clearly label your responses 2a–2d in order. Your response to all prompts combined must not exceed 750 words, exclusive of the Program Code.
Program Purpose and Development
2a. Provide a written response or audio narration in your video that:
- identifies the programming language;
- identifies the purpose of your program; and
- explains what the video illustrates.
(Approximately 150 words)
Sample response to 2a:
I created my program using Alice, a 3-Dimensional world creator that uses drag-and-drop blocks for its code. My simulator is a very crude video game that has basic methods and functions, and is mainly meant to be entertaining for a few minutes, as well as practice my capabilities of making user interactive based programs. The video starts off with me "exploring" all the controls and showing how the turret on top of the tank controlled by the user can be turned separately from the rest of the tank, sort of how actual tanks work. Then, I finish the video by shooting all of the target tanks, resulting in the game to end with a large "You Win" in front of the camera.
2b. Describe the incremental and iterative development process of your program, focusing on two distinct points in that process. Describe the difficulties and/or opportunities you encountered and how they were resolved or incorporated. In your description clearly indicate whether the development described was collaborative or independent. At least one of these points must refer to independent program development.
(Approximately 200 words)
Sample response to 2b:
The entire development of this program was my independent work. For the first half of the production process of this game, I focused on creating all of the controls, including movement, camera toggling, and firing the tank's cannon. Movement and camera toggling was very simple, but making a working cannon was difficult. I could not make objects load in and out of the game, so i had to use the same projectile for each shot. I made the projectile instantly turn invisible and move back to the tank as a solution. The second half of the development was the most difficult part, because I was planning on creating AI. That failed though, so I decided to create static targets. The Alice program itself has many bugs, which made the developement much harder to work with. For example, the method that runs when a target tank is shot would not work when it's hit at some angles, even though the method is based off of proximity, not direction.
2c. Capture and paste the program code segment that implements an algorithm (marked with an oval in section 3 below) that is fundamental for your program to achieve its intended purpose. Your code segment must include an algorithm that integrates other algorithms and integrates mathematical and/or logical concepts. Describe how each algorithm within your selected algorithm functions independently, as well as in combination with others, to form a new algorithm that helps to achieve the intended purpose of the program.
(Approximately 200 words)
Sample response to 2c:
My code is primarily dependent of its events rather than its methods. These events are what controls when a target tank is hit, and will call the TurretHit method with the specific target tank and its turret as parameters, as well as the fire that appears once a tank is hit. The method Turret Hit simply replaces the targeted tank's turret with a fire animation that will fun for the remainder of the program. Once all of the turrets are hit, a method will be called that will end the game.
2d. Capture and paste the program code segment that contains an abstraction you developed (marked with a rectangle in section 3 below). Your abstraction should integrate mathematical and logical concepts. Explain how your abstraction helped manage the complexity of your program.
(Approximately 200 words)
Sample response to 2d:
Since the program uses very simple algorithms, and all of them are called by events, most forms of abstraction would be redundant; therefore my program does not include very many abstracted segments. The only areas of code where there are abstractions are in the events shown in question 2c, and in the method
This abstraction is mandatory if world.EndGame doesn't have its own method. This abstraction is not extremely crucial, but the abstraction seen in the events is extremely important for the program to be successful.
3. Program Code
Capture and paste your entire program code in this section.
- Mark with an oval the segment of program code that implements the algorithm you created for your program that integrates other algorithms and integrates mathematical and /or logical concepts.
- Mark with a rectangle the segment of program code that represents an abstraction you developed.
- Include comments or citations for program code that has been written by someone else.