# OOGA Lab Discussion ## Names and NetIDs Oliver Rodas (oar5) ## Fluxx ### High Level Design Ideas ### CRC Card Classes This class's purpose or value is to manage orders based on data: ```java public class Something { // sums the numbers in the given data public int getTotal (Collection<Integer> data) // creates an order from the given data public Order makeOrder (String structuredData) } ``` This class's purpose or value is to mange an Order based on the given data: ```java public class Order { // updates the information based on new data public void update (int data) } ``` ### Use Cases * A player plays a Goal card, changing the current goal, and wins the game. ```java Something thing = new Something(); Order o = thing.makeOrder(sformattedStringData); p.update(13); ``` * A player plays an Action card, allowing him to choose cards from another player's hand and play them. ```java Something thing = new Something(); Order o = thing.makeOrder(sformattedStringData); p.update(13); ``` * A player plays a Rule card, adding to the current rules to set a hand-size limit, requiring all players to immediately drop cards from their hands if necessary. ```java Something thing = new Something(); Order o = thing.makeOrder(sformattedStringData); p.update(13); ``` * A player plays a Rule card, changing the current rule from Play 1 to Play All, requiring the player to play more cards this turn. ```java Something thing = new Something(); Order o = thing.makeOrder(sformattedStringData); p.update(13); ``` * A player plays a card, fulfilling the current Ungoal, and everyone loses the game. ```java Something thing = new Something(); Order o = thing.makeOrder(sformattedStringData); p.update(13); ``` * A new theme for the game is designed, creating a different set of Rule, Keeper, and Creeper cards. ```java Something thing = new Something(); Value v = thing.getValue(); v.update(13); ```