Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.

QUESTION

flovoh please see

this is an add-on to the tetris file you have been working on

You have already displayed the Tetris Bucket and started dropping the shapes. During this module, you stop the falling shape at the bottom of the Bucket. If there are shapes already stacked at the bottom of the bucket, then you stop the shape on top of other shapes. At the same time, you drop another shape from the top. Add plenty of narrative comments. Your program must be compilable and executable.

If you need guidance, you will find some detailed instruction (below) to assist you.

  1. User input is provided using the arrow keys. By default (with no user input being entered), the shape falls one cell in each loop. The shape can also be made to fall more quickly by pressing the down-arrow key. Assuming that you are using a switch block to handle the user input, in each switch case, you will change the top left x, y and calling different functions to process that arrow input. Regardless of which of the two methods triggered the shape's downward movement, you will probably call the function processDownArrow(TetrisShape& tetrisShape). You will probably find that you need separate functions to handle different key inputs.
    1. In each of these arrow-key input process functions, you need to check whether the shape is stuck and needs to stop. You need to go over the values of the shape array using two nested "for loops". Remember, the shape is not stuck if the cell is empty. Below is the logic to check when the shape is stuck:

if (shapeArray[x][y] != ' '){     if (x,y dimensions are inside the bucket){          if bucket cell is not empty{               The shape is stuck          }     }      else if (x dimension reaches the bottom){          The shape is stuck, so stop the shape.     }     else{          /*Here the shape hits the side wall, but not stuck. The situation is, the shape is at the left wall, and user is pressing the left arrow. In this case, the input is ineffective. So, we will let the shape drop one cell here, and call the processDownArrow(*this). The processDownArrow function will return a bool value whether the shape is stuck or not.*/

          if (the shape is stuck){               Stop the shape          }          else{               the shape is not stuck, let it fall          }     }}

  • When the current shape stops at the bottom, the next shape starts to drop. In the main() function, before the while loop (game loop), you will create two Tetris objects at the same time: currentTetrisShape, and nextTetrisShape. Inside the game loop, when the current shape is stuck, you check whether a line is complete. Then, you call currentTetrisShape.setShape(nextTetrisShapeType). In the setShape() function, you assign the properties of the shape: shapeType, top left X and Y, shapeArray, etc. Then you call nextTetrisShape.setShape (use a new randomly generated int).
Show more
LEARN MORE EFFECTIVELY AND GET BETTER GRADES!
Ask a Question