Assignment 1 Challenge 1 Challenge 2

Assignment 1

In this assignment, you're tasked to implement 2 features into the Random Achievement Game. The first feature is tile effects, more specifically I want you to add a movement multiplier attribute to each type of tile within the game. These movement multiplier either speed up or slow down the player as they traverse through the different tiles. The second feature is a display popup that'll show the Achievement the player got. More Information and details of each task are found below.

Challenge 1: Diffcult Terrain

Estimated Work Time: 10~15 minutes

The movement multiplier is simply a number thats ranged anywhere from 0.1 to 1+, and its used to modify the amount of distance gained when walking aross the tiles. A multiplier of 1 will cause the player to walk at normal speed, while a multiplier of 0.5 will cause the player to move at half speed. Each tile type within the world should have a different multiplier, you can assign any multiplier number (within reason) to a tile. Since trekking through water is much more diffcult than walking on grass, a water tile may have a multiplier of 0.6 (60% of original movement speed), and a grass might be 0.9 (90% of the original movement speed).
Since the movement modifier is the only attribute to be added, you may implement it as you see fit. However do try to make it as memory & speed efficient as you can, refer to the "Fly Weight Pattern" for details.

Challenge 2: Achievement Popup

Estimated Work Time: 1~3 hours ( dont expect to finish by this week but you should get started with it :) !

The achievement popup window, is a simple rectangle that slides up whenever the player manage to get an achievement and display the name of the achievement the player got. The popup window should be render over the map when displayed, but hidden from view when it's gone. The amazing gif below demostrates how it should work.

To create this effect in turtle, we'll need to get creative. Since the window has to be shown over the world, it means we have to render it last, but if we render it last, it'll be displayed the entire time. The trick here is to create a hidden curtain that blocks the window, and the curtain should blend in with the background color. Refer to turtle documentation on how to adjust back ground color, and recall that the function colormode(255) has to be called before using (r,g,b) color in the Turtle module.

If multiple achievements are triggered in a row, use a queue system to manage the order of the achievements to be shown. The popup display will be delay if alot of achievements are triggered (since it can only move so fast). And feel free to stylize the popup with firework particle effects 😊🎉.

Things to think about as your designing this system: