****************************** * Project Marking Guide * ****************************** (Total 120 Marks) [30] Room / Map Creation & Data Structure [15] Store the state of the rooms in a data structure like a vector of structs. [10] Must have at least one struct type to represent a room. [5] May either statically create the map (designed by you), or dynamically create it with an algorithm. [20] Room Types - Must have at least 3 room types which include actions (10 points; challenge style rooms later). - Actions include some type of player interaction or choice. - Must have at least 2 of each type of room in the map (-5 if only once). [15] Room Navigation [10] Must be able to navigate the map, and at least some times encountering a choice. [5] Must at least some times be able to navigate back to previous parts of the map. (OK if sometimes this is thematically not possible, like after a rock-slide or a train leaving) [5] Robust Input [3] Robust user input that loops until user enters a valid choice. [2] Case insensitive [10] Gather Enhancements [9] Player must be able to gather or earn enhancements. [1] Player told of enhancements each time changing rooms. [20] In-Game Challenges [4] Challenge occurs over multiple turns [4] Enhancements help improve player's chances at passing challenge [2] Must have element of randomness [4] Must be able to choose to continue or run away (or similar) [2] Running away puts player back into previous location [2] Consequence of failing a challenge [5] End Game [4] Must be able to end the game by reaching a goal state. [1] Game must force user to complete at least one challenge before ending game. [5] Room 'Done' State [5] Once an action is completed in a room, that room must not allow the same action again (completed). [10] Implementation - Must have clean code that does not repeat code too often which should be in a function. For example, getting user input. (-4) - Must have at least 1 constant (global OK). (-1) - Must have no global variables. (-10) - Your game must be drive by a data structure of rooms, such as a vector. (-10) - Your game logic (loops, if-statements, ...) must not be hard-coded for specific rooms (-10) - If using a static map (designed by you vs on-the-fly by an algorithm) then you must have a function that returns the vector of room structs. (-3) - Have a data structure (like a vector or array) that stores collected enhancements. (-3)