Create—Applications from Ideas: Sample Response B

Print this page
beginning of content:

Note: For information about the points this response earned, please see the Create Commentary.

1. Video

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.

The video presented is a sample submission from a student and may not contain any audio. User-submitted descriptions are provided below, describing the purpose and functionality of the content depicted in the video.

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.

When the object Projectile is within 5 meters of Target 1\'s turret becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 1 and AI Turret = Target 1's turret When the object Projectile is within 5 meters of Target 2's turret becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 2 and AI Turret = Target 2's turret When the object Projectile is within 5 meters of Target 3's turret becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 3 and AI Turret = Target 3's turret When the object Projectile is within 5 meters of Target 4's turrent becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 4 and AI Turret = Target 4's turret When the object Projectile is within 5 meters of Target 5's turrent becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 5 and AI Turret = Target 5's turret

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 <world.myfirstmethod>.

start the world procedure my first method no variables call to the world method End Game end of the world procedure my first 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.

When the world starts call world's my first method While the left key is pressed, begin is none, during calls tank's turret turn left, end is none. While the right key is pressed, begin is none, during calls tank's turret turn right, end is none. While the W key is pressed, begin is none, during calls tank's tank forward, end is none. While the A key is pressed, begin is none, during calls tank's class is turn left, end is none. While the S key is pressed, begin is none, during calls tank's tank backward, end is none. While the D key is pressed, begin is none, during calls tank's class is turn right, end is none. When the space key is typed, call tank's fire shot. When the C key is typed, call camera's camera toggle. When the object Projectile is within 5 meters of Target 1's turret becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 1 and AI Turret = Target 1's turret When the object Projectile is within 5 meters of Target 2's turrent becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 2 and AI Turret = Target 2's turret When the object Projectile is within 5 meters of Target 3's turrent becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 3 and AI Turret = Target 3's turret When the object Projectile is within 5 meters of Target 4's turrent becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 4 and AI Turret = Target 4's turret When the object Projectile is within 5 meters of Target 5's turrent becomes true then call the world procedure Turret Hit with AI Fire = Fire Gif 5 and AI Turret = Target 5's turret
start the world procedure my first method no variables call to the world procedure End Game end of world's procedure my first method Start the world's turret hit procedure that takes an array named AI Fire of type object, and an array named AI Turret of type object. No variables A comment reads, once another tank is shot, the turret of the tank will disappear and be replaced with fire. AI Turret array set opacity to 0 or 0 percent duration equals 0 seconds AI Turret array move up 10 meters duration equals 0 seconds AI Fire array set opacity to 1 or 100% duration equals 0 seconds Loop infinity times variable times AI Fire array turn to face camera duration equals 0 seconds. End of world's Turret Hit procedure Start of world's end game procedure no variables A comment reads, this will end the game once all the tanks have been shot loop infinity times variable times if both fire gif 1's opacity equals 1 and both fire gif 2's opacity equals 1 and both fire gif 3's opacity equals 1 and both fire gif 4's opacity equals 1 and fire gif 5's opacity equals 1 then you win set is showing to true. otherwise do nothing End of world's end game procedure Start of camera's camera toggle procedure no variables A comment reads, this will toggle the camera between two positions, and will change the UI with each position. start if camera is within 0.1 meters of behind view start do together camera object set point of view to turret barrel view duration equals 0 seconds. start do in order Turret UI set opacity to 1 or 100 percent duration equals 0 seconds Turret UI's body set opacity to 0.6 or 60 percent duration equals 0 seconds end of do in order start do in order compass set opacity to 0.7 or 70 percent duration equals 0 seconds compass's needle set opacity to 1 or 100 percent duration equals 0 seconds end of do in order end of do together else start do together camera set point of view to behind view duration equals 0 seconds turret UI set opacity to 0 or 0% duration equals 0 seconds compass set opacity to 0 or 0% duration equals 0 seconds end do together end if statement end of camera's camera toggle procedure Start of tank's turret turn left procedure no variables A comment reads, turns the turret of the tank left separately from the chassis start do together tank's turret turn at speed direction left speed equals 0.1 revolutions per second turret UI's turret turn at speed direction left speed equals 0.1 revolutions per second compass roll at speed direction left speed equals 0.1 revolutions per second end do together end of tank's turret turn left procedure
Start of tank's turret turn right procedure no variables A comment reads, turns the turret of the tank right separately from the chassis start do together tank's turret turn at speed direction right speed equals 0.1 revolutions per second turret UI's turret turn at speed direction right speed equals 0.1 revolutions per second compass roll at speed direction right speed equals 0.1 revolutions per second end do together end of tank's turret turn right procedure Start of tank's chassis turn right procedure no variables A comment reads, Turns the chassis of the tank right start do together tank turn at speed direction right speed equals 0.1 revolutions per second compass roll at speed direction right speed equals 0.1 revolutions per second end do together end of tank's chassis turn right procedure Start of tank's chassis turn left procedure no variables A comment reads, Turns the chassis of the tank left start do together tank turn at speed direction left speed equals 0.1 revolutions per second compass roll at speed direction left speed equals 0.1 revolutions per second end do together end of tank's chassis turn left procedure Start of tank's tank forward procedure no variables A comment reads, moves the entire tank forward tank move at speed direction forward speed equals 15 meters per second end of tank's tank forward procedure.
Start of tank's tank backward procedure no variables A comment reads, moves the entire tank backward tank move at speed direction backward speed equals 15 meters per second end of tank's tank backward procedure. Start of tank's fire shot procedure no variables A comment reads, will fire a round out of the barrel of the tank's turret start do together start do in order projectile set opacity to 1 or 100% for duration equals 0 seconds projectile move at speed direction forward speed equals 750 meters per second, duration equals 0.5 seconds, as seen by equals projectile launch base projectile set opacity to 0 or 0% duration equals 0 seconds projective move to projectile launch base duration equals 0 seconds end of do in order end of do together end of tank's fire shot procedure