From 095cb903ec254912727840bcc70826c02fa72dcc Mon Sep 17 00:00:00 2001 From: Guy Davidson Date: Mon, 15 Jan 2024 23:47:16 -0500 Subject: [PATCH] Updated games file and slightly cleaned up the display code --- data/games.json | 118 +++++++++++++++--- src/components/atoms/GameTextDisplay.vue | 9 +- .../molecules/SingleGameExtendedJudgment.vue | 2 +- src/components/pages/QuizPage.vue | 1 + src/components/pages/Task1Page.vue | 8 +- src/stores/firestore-db.js | 2 + src/stores/smiledata.js | 4 +- 7 files changed, 121 insertions(+), 23 deletions(-) diff --git a/data/games.json b/data/games.json index 75570cd..aa1caa7 100644 --- a/data/games.json +++ b/data/games.json @@ -1,18 +1,108 @@ { "realGames": { - "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0)": { - "text": "To play this game, pick up a dodgeball and throw it into a hexagonal bin. The game ends when you decide to stop, and your score is equal to the number of successful throws you made into the bin." - }, - "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1)": { - "text": "To set up the game, place a hexagonal bin in the center of the room. The objective of the game is to pick up and move different objects into the bin. Your score at the end of the game is determined by the number of different objects you successfully moved into the bin." - }, - "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0)": { - "text": "To play this game, stand on a rug and throw cube blocks onto a desk without hitting or breaking any lamps, desktops, or laptops. Your score at the end of the game is equal to the number of different cube blocks you successfully threw onto the desk." - }, - "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 1)": { - "text": "To play this game, arrange objects of the same color so that one is either on top of, adjacent to, or inside the other. Make sure the main light switch or a lamp is turned off and avoid breaking any objects in the room. At the end of the game, your score is calculated as follows: you get 5 points for every different object used to satisfy the color arrangement condition, an additional 5 points for every different green object used in this way, and another 5 points for every different brown object used in this way. You also get 15 points for every different object used to satisfy the light switch or lamp condition. However, you lose 10 points for every different object that is broken." - } + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: place a hexagonal bin near a triangular ramp and make sure they stay in place throughout the game.\n\nGameplay: hold a ball and throw it so that it touches the triangular ramp and then lands inside the hexagonal bin.\n\nTerminal: the game ends when the hexagonal bin, which must start standing upright, is no longer upright without being touched or held by you.\n\nScoring: you earn 1 point for each time you successfully throw a ball that touches the ramp and lands in the bin.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0)": "Setup: Place a hexagonal bin next to the bed and ensure it stays there. Make sure no teddy bears or pillows are on the bed during the game.\n\nGameplay: Stand next to a desk and throw balls aiming to get them inside the hexagonal bin.\n\nScoring: You earn 10 points for each dodgeball, 20 points for each basketball, and 30 points for each beachball that lands inside the hexagonal bin. However, you lose 1 point for each ball that does not land in the bin.", + "(1, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin either on the bed or next to a wall and ensure it remains there throughout the game.\n\nGameplay: Hold a dodgeball and throw it into the hexagonal bin. You can throw the ball directly into the bin without it touching the floor or you can bounce it off the floor before it lands in the bin.\n\nScoring: You get 3 points for each throw that lands in the bin without touching the floor and 1 point for each throw that bounces off the floor before landing in the bin.", + "(1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw teddy bears so that they land on pillows\n\nTerminal: the game ends after you've thrown teddy bears at least 10 times\n\nScoring: you get 1 point for each teddy bear that stops moving on a pillow", + "(1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: While standing on the rug, throw balls into a hexagonal bin.\n\nTerminal: The game ends after you've thrown balls 10 times.\n\nScoring: Your score is the number of balls that stop moving inside the hexagonal bin.", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0)": "Gameplay: stack a flat block on a bridge block, then place a tall cylindrical block on the flat block, followed by a cube block on the tall cylindrical block, and finally a pyramid block on the cube block.\n\nScoring: you get 10 points for each different set of blocks you have successfully stacked in this order by the end of the game.", + "(1, 0, 4, 0, 0, 2, 0, 0, 0, 0, 1, 0)": "Setup: Place a chair near the center of the room, ensuring it does not face the desk or the bed, and keep it in this position for the duration of the game.\n\nGameplay: Stand next to a desk and throw dodgeballs aiming to land them inside a hexagonal bin, on the bed, on the chair, or elsewhere in the room.\n\nTerminal: The game ends when your score is 10 points or higher.\n\nScoring: You score 5 points for each dodgeball that lands inside the hexagonal bin, 1 point for each dodgeball on the bed, and 1 point for each dodgeball on the chair. However, you lose 1 point for each dodgeball that lands elsewhere in the room. Add up your points to determine your final score.", + "(1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0)": "Gameplay: place objects that are not pillows on the bed\n\nScoring: you get 1 point for each different non-pillow object on the bed at the end of the game", + "(1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0)": "Setup: Ensure that at some point during the game, the top drawer is empty.\n\nGameplay: Place different objects inside the top drawer and close it.\n\nScoring: You get 1 point for each different object you have placed in the top drawer by the end of the game.", + "(1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: Place all dodgeballs on the desk and put a hexagonal bin on the bed, ensuring both remain in place throughout the game.\n\nGameplay: Stand next to the desk, pick up dodgeballs, and throw them into the hexagonal bin.\n\nTerminal: The game ends after you've thrown dodgeballs 5 times.\n\nScoring: You score 1 point for each dodgeball that stops moving inside the hexagonal bin.", + "(1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0)": "Gameplay: throw a ball so that it touches a wall and then either catch it or touch it\n\nScoring: you get 1 point for each time you successfully throw the ball, it touches a wall, and you are either holding it again or touching it after its flight", + "(1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0)": "Setup: Place a curved wooden ramp next to the rug and ensure it stays there throughout the game.\n\nGameplay: Hold a beachball, throw it so that it rolls on the curved wooden ramp, and make sure it stops on the rug.\n\nScoring: You earn points based on the color of the rug where the beachball stops: 1 point for pink, 2 points for yellow, 3 points for orange, 3 points for green, and 4 points for purple. However, you lose 1 point for each beachball that stops on a white section of the rug.", + "(1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0)": "Setup: place a doggie bed near the center of the room and ensure it remains there for the duration of the game.\n\nGameplay: throw balls towards the doggie bed, aiming to land them on it without touching any walls or by having them touch a wall during their flight.\n\nScoring: you earn points based on the type of ball and how it lands on the doggie bed. For balls that land on the doggie bed without touching any walls, you get 1 point for a basketball, 2 points for a beachball, and 3 points for a dodgeball. For balls that touch a wall before landing on the doggie bed, you get 2 points for a basketball, 3 points for a beachball, and 4 points for a dodgeball.", + "(1, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0)": "Setup: Place a curved wooden ramp near the center of the room and ensure it stays there throughout the game.\n\nGameplay: Hold a pink dodgeball and face the curved wooden ramp. Throw the dodgeball so that it touches the ramp during its flight and then either lands on the bed or comes to a stop and touches you without you holding it.\n\nScoring: Your score is the number of times the dodgeball landed on the bed minus the number of times the dodgeball stopped and touched you without you holding it.", + "(1, 0, 2, 0, 0, 1, 0, 0, 0, 0, 1, 0)": "Setup: Place a green golf ball near the door and ensure it remains there for the entire game. During the game, place at least one dodgeball near the green golf ball.\n\nGameplay: While standing next to the green golf ball and the door, throw dodgeballs with the goal of getting them to stop inside a hexagonal bin.\n\nTerminal: The game ends when you have thrown the same dodgeball and it has stopped moving more than once, or when you have thrown and stopped at least three different objects.\n\nScoring: You earn 10 points for each different object that you successfully throw into the hexagonal bin.", + "(1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the center of the room and make sure it stays there throughout the game.\n\nGameplay: Move objects into the hexagonal bin by either picking them up or setting them in motion.\n\nScoring: You earn 1 point for each different object that you successfully move into the hexagonal bin by the end of the game.", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: throw dodgeballs so that they land inside a hexagonal bin\n\nScoring: you get 1 point for each dodgeball that stops moving inside the bin", + "(1, 1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0)": "Gameplay: pick up cube blocks, place them inside buildings, and then either remove them or leave them until the game's end.\n\nTerminal: the game ends after you have picked up and put down any cube block at least three times.\n\nScoring: your score is the greatest number of times you have placed a cube block inside a single building and then either removed it or reached the end of the game.", + "(1, 0, 3, 0, 0, 0, 0, 0, 2, 1, 0, 0)": "Setup: Ensure no blocks are on any shelves and maintain a building with exactly six objects throughout the game. All blocks must either be in this building or match the type of another block within it, without being identical.\n\nGameplay: \n- Hold blocks without placing them inside any building from the initial setup.\n- Interact with blocks by holding or moving them, ensuring that if one block is inside a building (not from the initial setup) and another is held, they must touch at some point. Then throw the block that was inside the building.\n- By the end of the game, ensure that for any two blocks not in the initial setup building, they are not stacked on each other unless there are two other stacked blocks of the same type inside the non-setup building.\n\nTerminal: The game concludes with the final state of the buildings and blocks.\n\nScoring: Earn 5 points for each unique object you hold without placing in a building. Gain 100 points if there is a building from the initial setup and another that is not, with specific stacking conditions met. Lose 10 points for each time you throw a block that was inside a non-setup building.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0)": "Setup: Place a flat block on the rug and ensure it remains there throughout the game. Also, place every pyramid block on the floor. Arrange a hexagonal bin and three pyramid blocks of different colors\u2014blue, red, and yellow\u2014so that the red pyramid block is farther from the hexagonal bin than the yellow one, and the blue pyramid block is the farthest from the bin. Ensure these objects stay in this arrangement for the duration of the game.\n\nGameplay: Hold a dodgeball while standing next to a pyramid block, throw the dodgeball, and try to get it to land inside the hexagonal bin. Additionally, build structures that include the flat block used in the setup and a cube block.\n\nScoring: You earn 10 points for each successful throw into the bin from next to the yellow pyramid block, 25 points for throws from next to the red pyramid block, and 50 points for throws from next to the blue pyramid block. You also earn 10 points for each different object used in building structures that include the flat block and a cube block. Some parts of the scoring system may contain errors and cannot be processed.", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1)": "Gameplay: While standing next to a desk, pick up and release various objects to move them onto or off the bed.\n\nScoring: You score 1 point for each object that is not a chair, laptop, or doggie bed that comes to rest on the bed, 5 points for each chair, laptop, or doggie bed that comes to rest on the bed, and you lose 5 points for each object that stops moving and is not on the bed.", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: place balls on the bed\n\nScoring: you get 1 point for each different ball you put on the bed by the end of the game", + "(1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: Place a curved wooden ramp next to a hexagonal bin and make sure they stay together for the entire game.\n\nGameplay: Hold a dodgeball and throw it so that it touches the curved wooden ramp and then lands inside the hexagonal bin.\n\nScoring: You earn 1 point for each time you successfully throw a dodgeball that touches the ramp and then stops inside the bin.", + "(1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: Place all golfballs, dodgeballs, triangle blocks, and pyramid blocks near a side table. Ensure no chair is directly in front of the desk throughout the game. Position a curved wooden ramp with its front adjacent to the front of the desk and a hexagonal bin with its front facing the back of the ramp. Keep these items in place for the duration of the game.\n\nGameplay: While standing next to the bed, throw golfballs, dodgeballs, triangle blocks, or pyramid blocks so that they either land inside a hexagonal bin or touch a desktop or laptop computer. If throwing a golfball, it must also touch the curved wooden ramp before landing in the bin.\n\nScoring: Earn points based on the objects thrown into the hexagonal bin: 1 point for each triangle block, 2 points for each pyramid block or dodgeball, and 3 points for each golfball. Earn 6 points for each golfball that touches the ramp before landing in the bin. Lose 1 point for each object that touches a computer.", + "(1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0)": "Gameplay: stand next to a hexagonal bin and throw balls with the goal of getting them to land inside the bin.\n\nTerminal: the game ends after you've thrown balls five times or as soon as you successfully throw a ball into the hexagonal bin.\n\nScoring: you get 5 points for each ball that you successfully throw into the hexagonal bin.", + "(1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0)": "Setup: place a hexagonal bin on the desk next to a wall and make sure it stays there throughout the game.\n\nGameplay: stand on the rug and throw dodgeballs or blocks into the hexagonal bin.\n\nScoring: you get 1 point for each dodgeball and 2 points for each block that ends up in the hexagonal bin by the end of the game.", + "(1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: hold balls and throw them so that they stop moving, aiming to get them inside a hexagonal bin.\n\nTerminal: the game ends once you've scored 6 or more points, or after you've made at least 15 throw attempts.\n\nScoring: you get 1 point for each ball that stops moving inside the hexagonal bin.", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: throw balls into a hexagonal bin, move cube blocks onto the top shelf, and place or throw pillows onto a doggie bed.\n\nScoring: you get 1 point for each different ball you successfully throw into the bin, 1 point for each different cube block you move onto the top shelf, and 1 point for each different pillow you place or throw onto the doggie bed.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a chair, a hexagonal bin, a teddy bear, and a triangular ramp in the room. The teddy bear should be on the chair at some point. Keep the triangular ramp near the center of the room, with the chair in front of it, positioned between the ramp and the hexagonal bin. Any ball should be placed near the hexagonal bin and stay there throughout the game.\n\nGameplay: Pick up the teddy bear from the chair and throw it so that it either lands inside the hexagonal bin or touches a ball.\n\nScoring: You get 5 points for every time the teddy bear lands in the hexagonal bin and 1 point for every time it touches a ball.", + "(1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 2, 0)": "Setup: Place a hexagonal bin near a triangular ramp, ensuring the bin is not directly next to the ramp, and maintain this setup throughout the game.\n\nGameplay: Hold a red dodgeball and throw it into the hexagonal bin without it touching the floor.\n\nTerminal: The game ends after you've thrown the red dodgeball 10 times, or as soon as you successfully throw it into the hexagonal bin, whether it touches the floor or not.\n\nScoring: You score 5 points if you successfully throw the red dodgeball into the hexagonal bin at least once. If you throw the red dodgeball fewer than 5 times and successfully get it into the bin without touching the floor, you score 2 points. The scoring for successfully throwing the dodgeball into the bin without it touching the floor cannot be determined due to a syntax error in the rules." }, - "matchedArchiveGames": {}, - "novelArchiveGames": {} + "matchedArchiveGames": { + "(1, 0, 3, 0, 0, 0, 0, 0, 2, 1, 0, 0)": "Setup: place every red pyramid block on the rug and ensure they stay there throughout the game.\n\nGameplay: pick up and throw cube blocks, place yellow cube blocks inside buildings, and stack blocks with a yellow cube block on top of another block that is the same type as the yellow cube block.\n\nScoring: your score is 80 times the product of the number of thrown cube blocks that have stopped moving and the number of correctly stacked blocks, plus the number of yellow cube blocks you've placed inside buildings.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Setup: put a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: throw dodgeballs aiming to land them on either a doggie bed or the hexagonal bin.\n\nScoring: you earn points for each dodgeball that comes to rest on a doggie bed or the hexagonal bin, with your final score being the sum of these successful throws.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Throw dodgeballs aiming to land them inside the hexagonal bin and stack cube blocks on a bridge block, ensuring that two of them are the same type as the bridge block and one is blue.\n\nScoring: Your score is the number of successful cube block stacks on the bridge block minus four times the number of dodgeballs that landed in the hexagonal bin.", + "(1, 0, 2, 0, 0, 1, 0, 0, 0, 0, 1, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Throw dodgeballs aiming to land them on the desk or inside the hexagonal bin.\n\nScoring: You earn points for each dodgeball that comes to rest either on the desk or inside the hexagonal bin. Your final score is the sum of these points.", + "(1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: throw dodgeballs around the room\n\nScoring: you get 1 point for each dodgeball thrown, but you lose 3 points for every dodgeball that lands inside a doggie bed.", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: hold a dodgeball and throw it so that it lands and rests on a hexagonal bin\n\nScoring: you get 1 point for each time you successfully throw a dodgeball onto the hexagonal bin", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0)": "Setup: Place a hexagonal bin near the north wall and make sure it stays there throughout the game.\n\nGameplay: Throw basketballs and dodgeballs into the hexagonal bin.\n\nScoring: You get 1 point for each dodgeball inside the bin and 0.1 points for each basketball inside the bin at the end of the game.", + "(1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: Place a hexagonal bin near the door and ensure it remains there for the entire game.\n\nGameplay: Throw golfballs and dodgeballs aiming to land them on top of or inside the hexagonal bin.\n\nScoring: You earn points for each successful throw, with points awarded for golfballs that stop on top of the bin, dodgeballs that stop inside the bin, and dodgeballs that stop on top of the bin. Your final score is the sum of these successful throws.", + "(1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0)": "Gameplay: throw dodgeballs so that they land inside a hexagonal bin or a doggie bed\n\nScoring: you get 1 point for each dodgeball that stops moving inside the hexagonal bin and 1 point for each dodgeball that stops moving inside the doggie bed", + "(1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs so that they land and stop moving on either a doggie bed or a hexagonal bin\n\nScoring: you get 1 point for each dodgeball that ends up on a doggie bed and 1 point for each dodgeball that ends up on a hexagonal bin", + "(1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Hold a dodgeball, throw it so that it touches the top shelf, and then lands and rests on the hexagonal bin.\n\nScoring: You earn 1 point for each time you successfully throw a dodgeball that touches the top shelf and then stops on the hexagonal bin.", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: throw dodgeballs aiming to land them inside a hexagonal bin, on top of a hexagonal bin, or on a doggie bed.\n\nScoring: you get 1 point for each dodgeball that stops moving inside the hexagonal bin, on top of the hexagonal bin, or on the doggie bed.", + "(1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0)": "Gameplay: move chairs so that they end up on desks and are in motion\n\nTerminal: the game ends once your score is 30 or more\n\nScoring: you get 1 point for each chair that is on a desk and in motion at the end of the game", + "(1, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the door and ensure it stays there throughout the game.\n\nGameplay: Throw dodgeballs and other balls aiming to land them inside and on top of the hexagonal bin.\n\nScoring: You get 1 point for each ball that lands inside and on top of the bin, and an additional 5 points for each dodgeball that does the same.", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1)": "Gameplay: move objects near the rug, place dodgeballs on the rug, and throw dodgeballs so they land on top of a hexagonal bin\n\nScoring: you get 1 point for each dodgeball that you throw onto a hexagonal bin, and you get 70 points for each object that is not moving and is near the rug, multiplied by the number of dodgeballs on the rug.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: put a hexagonal bin near the rug and ensure it remains there for the duration of the game.\n\nGameplay: throw dodgeballs aiming to land them inside the hexagonal bin or on a doggie bed.\n\nScoring: you earn points for each dodgeball that comes to rest either inside the hexagonal bin or on the doggie bed, with your final score being the sum of these successful throws.", + "(1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Hold a dodgeball and throw it so that it lands inside and on top of the hexagonal bin.\n\nScoring: You earn 1 point for each time you successfully throw a dodgeball into the hexagonal bin and it comes to rest inside and on top of it.", + "(1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Hold a dodgeball and throw it so that it lands inside the hexagonal bin.\n\nScoring: You earn 1 point for each time you successfully throw a dodgeball into the hexagonal bin.", + "(1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs so that they land and come to rest on the top shelf\n\nTerminal: the game ends after 30 seconds\n\nScoring: you get 1 point for each dodgeball that is resting on the top shelf at the end of the game", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: throw dodgeballs so that they land inside a hexagonal bin\n\nScoring: you get 1 point for each dodgeball that stops moving inside the bin", + "(1, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0)": "Setup: Place a hexagonal bin near the east wall and make sure it stays there throughout the game.\n\nGameplay: Throw dodgeballs with the goal of getting them to stop inside the hexagonal bin.\n\nScoring: Your score is the total number of throws you made plus 70% of the throws where the dodgeball ended up inside the hexagonal bin.", + "(1, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the door and ensure it remains there for the entire game.\n\nGameplay: Throw dodgeballs so that they roll on the rug and aim to have them come to rest on the hexagonal bin.\n\nScoring: You earn 1 point for each dodgeball thrown, and an additional 5 points for each dodgeball that stops moving on the hexagonal bin.", + "(1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0)": "Setup: put a hexagonal bin near the rug and keep it there throughout the game\n\nGameplay: throw dodgeballs aiming to land them on the desk or to roll them on the rug and onto the hexagonal bin\n\nScoring: you get 1 point for every dodgeball that stops on the desk and 70 points for every dodgeball that stops on the hexagonal bin after rolling on the rug", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0)": "Gameplay: stack three blocks on top of a tall rectangular block, with two of the stacked blocks being the same type as the tall rectangular block.\n\nScoring: your score is 1.4 times the number of such stacks you have at the end of the game.", + "(1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin next to a rug and make sure it stays there throughout the game.\n\nGameplay: Put cellphones or CDs into the hexagonal bin.\n\nScoring: You get 2 points for each cellphone or CD that is inside the hexagonal bin at the end of the game.", + "(1, 0, 4, 0, 0, 2, 0, 0, 0, 0, 1, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the duration of the game.\n\nGameplay: Throw dodgeballs aiming to land them inside the hexagonal bin, on the bed, on the desk, or on top of the hexagonal bin.\n\nScoring: You earn 1 point for each successful throw that results in a dodgeball stopping inside the hexagonal bin, on the bed, on the desk, or on top of the hexagonal bin. Your final score is the sum of these points.", + "(1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Hold a dodgeball and throw it so that it lands and remains on top of the hexagonal bin.\n\nScoring: You earn 1 point for each time you successfully throw a dodgeball and it comes to rest on top of the hexagonal bin.", + "(1, 1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0)": "Gameplay: pick up cube blocks and either throw them or set them down and pick them up again before placing them down without movement.\n\nScoring: you get 15 points for each time you set down a cube block, picked it up again, and placed it down without movement, and 1 point for each time you threw a cube block.", + "(1, 0, 3, 1, 0, 0, 0, 0, 0, 0, 2, 0)": "Setup: put a hexagonal bin near the rug and keep it there throughout the game.\n\nGameplay: throw dodgeballs so that they land either inside a doggie bed, inside the hexagonal bin, or simply stop moving after being thrown.\n\nScoring: you get 1 point for each dodgeball that lands in a doggie bed, 1 point for each dodgeball that lands in the hexagonal bin, and 1 point for each dodgeball that stops moving after you throw it.", + "(1, 1, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs around the room\n\nScoring: you get 1 point for every dodgeball that has been thrown and stopped moving, but you lose 3 points for every dodgeball that ends up on and inside a doggie bed after being thrown." + }, + "novelArchiveGames": { + "(1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0)": "Setup: place a doggie bed near the rug and make sure it stays there throughout the game.\n\nGameplay: move objects so that they end up not moving and on the doggie bed.\n\nScoring: you get 1 point for each object that is not moving and is on the doggie bed at the end of the game.", + "(1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0)": "Setup: Place every block on the rug and make sure they stay there throughout the game.\n\nGameplay: Pick up cube blocks and throw them.\n\nScoring: Your score is the number of different cube blocks you have thrown by the end of the game.", + "(1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0)": "Gameplay: Place credit cards or CDs inside a hexagonal bin.\n\nScoring: Your score will be zero regardless of the number of credit cards or CDs placed in the bin, as they add to and subtract from the score equally, canceling each other out.", + "(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1)": "Gameplay: move objects so that they are not moving and are near the rug\n\nTerminal: the game ends after 3 minutes\n\nScoring: you get 1 point for each object that is not moving and is near the rug at the end of the game", + "(1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: hold and throw a dodgeball\n\nScoring: you get 1 point for each time you throw a dodgeball and it comes to a stop", + "(1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0)": "Setup: Place all green bridge blocks on the rug and ensure they stay there throughout the game.\n\nGameplay: Stack a cube block and a flat block on top of another block of the same type as the cube block.\n\nScoring: You get 6 points for each stack that meets the criteria at the end of the game.", + "(1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs so that they land inside and on top of a hexagonal bin\n\nScoring: you get 1 point for each dodgeball that stops moving while inside and on top of the bin", + "(1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0)": "Gameplay: pick up and throw cube blocks\n\nScoring: you get 1 point for each different cube block you have thrown by the end of the game", + "(1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1)": "Setup: Place a dodgeball near the desk before starting the game.\n\nGameplay: Throw the dodgeball so that it touches the south wall while it's moving, and make sure you're not holding the dodgeball or a teddy bear when it's in motion.\n\nTerminal: The game ends after 60 seconds.\n\nScoring: You get 1 point for each time you successfully throw the dodgeball and it touches the south wall and then stops moving.", + "(1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0)": "Setup: Place a dodgeball near the desk at least once during the game setup.\n\nGameplay: Hold a dodgeball and throw it.\n\nScoring: You get 1 point for each time you throw a dodgeball and it comes to a stop.", + "(1, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0)": "Gameplay: pick up cube blocks and either throw them onto the rug or set them down and pick them up again.\n\nScoring: you get 1 point for every cube block that you throw onto the rug and 3 points for every cube block that you pick up, set down, and pick up again without it moving.", + "(1, 0, 2, 0, 1, 0, 0, 0, 0, 1, 0, 0)": "Setup: place a hexagonal bin near the north wall and make sure it stays there throughout the game.\n\nGameplay: throw golfballs aiming to have them stop on and inside the hexagonal bin, and stack blocks so that each has three cube blocks on top, with one cube block being the same type as the block it's on.\n\nScoring: you score points based on the number of correctly stacked blocks minus four times the number of golfballs that stop on and inside the hexagonal bin.", + "(1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1)": "Gameplay: move objects so they are not moving and are near the rug, and roll golfballs on the rug until they stop moving.\n\nScoring: you get 1 point for each object that is not moving and is near the rug at the end of the game, and 1 point for each time you roll a golfball on the rug and it comes to a stop.", + "(1, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0)": "Setup: put a hexagonal bin near the rug and keep it there throughout the game.\n\nGameplay: place chairs on desks and throw basketballs so they land on top of the hexagonal bin.\n\nScoring: you get 1 point for every chair on a desk and 40 points for every basketball that stops moving on top of the hexagonal bin.", + "(1, 0, 2, 1, 0, 0, 1, 0, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the door and make sure it stays there throughout the game.\n\nGameplay: Put credit cards or CDs into the hexagonal bin and throw white golfballs.\n\nScoring: You get 1 point for each time you throw a white golfball and it comes to a stop, and 40 points for each credit card or CD you put inside the hexagonal bin.", + "(1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0)": "Gameplay: throw dodgeballs so that they land inside a hexagonal bin or on a doggie bed\n\nScoring: you get 1 point for each dodgeball that stops moving inside the hexagonal bin and 1 point for each dodgeball that stops moving on the doggie bed", + "(1, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Move chairs onto desks and place teddy bears on desks without positioning them diagonally.\n\nScoring: You earn 80 points for each chair on a desk and 1 point for each teddy bear on a desk that is not positioned diagonally at the end of the game.", + "(1, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1)": "Setup: place every blue cube block on the rug and ensure they stay there throughout the game.\n\nGameplay: move objects around the room.\n\nScoring: you get 5 points for every object that's not moving and is near the north wall, and 1 point for every stack where a yellow cube block of the same type as a blue cube block is sandwiched between two other cube blocks.", + "(1, 1, 2, 0, 0, 0, 1, 0, 1, 0, 0, 0)": "Gameplay: pick up and throw cube blocks, and place credit cards or CDs inside a hexagonal bin.\n\nScoring: you get 1 point for every credit card or CD inside the hexagonal bin, but you lose 1 point for every cube block you've thrown and has come to a stop.", + "(1, 1, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs so that they land on the desk or inside and on top of a hexagonal bin.\n\nScoring: you get 1 point for every dodgeball that stops on the desk, and 20 points for every dodgeball that stops inside and on top of the hexagonal bin.", + "(1, 1, 3, 1, 0, 0, 1, 0, 0, 0, 1, 0)": "Gameplay: throw dodgeballs and place credit cards or CDs into a hexagonal bin\n\nScoring: you get 40 points for each dodgeball that ends up in the hexagonal bin multiplied by the number of credit cards or CDs in the bin, plus 1 point for each dodgeball thrown regardless of where it lands.", + "(1, 1, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs aiming to land them on a side table, on a bed, or on top of a hexagonal bin.\n\nScoring: you get 1 point for each dodgeball that stops moving on the side table, 1 point for each dodgeball that stops moving on the bed, and 1 point for each dodgeball that stops moving on top of a hexagonal bin.", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 3, 0, 0)": "Gameplay: Stack blocks in specific configurations\n\nScoring: You get 1 point for each stack where one cube block is on top of another cube block with a tall rectangular block on the same cube block. You also get 1 point for each stack where a cube block is on top of a tall rectangular block, which is on top of another cube block, with an additional cube block on top of the tall rectangular block, provided the bottom cube block is the same type as the tall rectangular block. Additionally, you get 1 point for each stack where a tall rectangular block is on top of a cube block, which is on top of another cube block, and the top cube block is the same type as a third cube block. Your final score is the sum of points from these three configurations.", + "(1, 1, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0)": "Gameplay: move chairs around by picking them up and letting them go so they end up on desks and are moving without you holding them.\n\nTerminal: the game ends when your score is 10 or more.\n\nScoring: you get 1 point each time you let go of a chair and it stops moving, and you get 4 points for each chair that is on a desk and moving without you holding it at the end of the game.", + "(1, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0)": "Setup: Place a hexagonal bin near the rug and ensure it remains there for the entire game.\n\nGameplay: Throw dodgeballs and tan cylindrical blocks aiming for the hexagonal bin. Dodgeballs should land on top of the bin, while tan cylindrical blocks should land inside the bin.\n\nScoring: You score 1 point for each dodgeball that lands on top of the bin, 6 points for each additional dodgeball that lands on top of the bin, and 1 point for each tan cylindrical block that lands inside the bin. Your final score is the sum of these points.", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw golfballs onto a hexagonal bin, and throw basketballs or white golfballs onto the top drawer or onto a hexagonal bin.\n\nScoring: you get 1 point for each golfball resting on a hexagonal bin, and your score is multiplied by 40 times the number of successful throws for each type of throw (golfballs on a bin, basketballs or white golfballs on the top drawer, and basketballs on a bin).", + "(1, 1, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw golfballs and dodgeballs aiming to land them on top of a hexagonal bin\n\nScoring: you get 1 point for each golfball that stops on top of the bin, 1 point for each dodgeball that stops inside the bin, and 1 point for each dodgeball that stops on top of the bin", + "(1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2)": "Gameplay: move objects to be near the rug and the door, and break some objects\n\nScoring: your score is 0.7 times the product of the number of objects near the rug, the number of objects near the door, and the number of broken objects, plus the total number of broken objects.", + "(1, 1, 3, 0, 0, 1, 0, 0, 1, 0, 0, 0)": "Gameplay: pick up and put down green triangle blocks, throw dodgeballs onto the desk, and throw basketballs onto a hexagonal bin.\n\nScoring: you get 1 point for each time you pick up and put down a green triangle block, 1 point for each dodgeball that stops on the desk, and 1 point for each basketball that stops on a hexagonal bin.", + "(1, 1, 3, 1, 0, 0, 0, 0, 0, 2, 0, 0)": "Gameplay: Stack blocks in specific configurations and throw red dodgeballs\n\nScoring: You get 4 points for each stack where two cube blocks are on top of a flat gray block, which is on top of another cube block of the same type as the flat gray block. You get 1 point for each stack where a bridge block is on top of a blue cube block, a block is on top of the bridge block, and the bridge block is also on top of another cube block. Additionally, you get 1 point for each time you throw a red dodgeball and it comes to a stop.", + "(1, 0, 4, 0, 1, 1, 0, 1, 0, 1, 0, 0)": "Setup: put a hexagonal bin near the rug and keep it there throughout the game.\n\nGameplay: place chairs on desks, throw golfballs onto desks, throw dodgeballs into the hexagonal bin, and stack cube blocks on top of each other.\n\nScoring: you get 1 point for each chair on a desk, 1 point for each golfball that stops on a desk, 1 point for each dodgeball that stops inside and on top of the hexagonal bin, and 1 point for each stack of three cube blocks where one is on top of another, and a third cube block of the same type is also on top of that block.", + "(1, 1, 4, 0, 0, 0, 3, 0, 0, 0, 1, 0)": "Gameplay: throw balls into a hexagonal bin and place credit cards, CDs, and pencils into the top drawer or into the bin\n\nScoring: your score is the number of credit cards and CDs inside the hexagonal bin at the end of the game minus three times the sum of the number of balls inside the bin, the number of credit cards and CDs not inside the bin, and the number of credit cards, CDs, and pencils inside the top drawer", + "(1, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0)": "Setup: place a hexagonal bin near the top shelf and ensure it stays there throughout the game.\n\nGameplay: hold and release green triangle blocks, throw dodgeballs onto the hexagonal bin, and throw cube blocks.\n\nScoring: your score is three times the product of the number of times you've held, released, and then held again a green triangle block, thrown a cube block, and thrown a cube block that was in motion, plus the number of times you've thrown a dodgeball onto the hexagonal bin.", + "(1, 1, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw dodgeballs so that they land on either a doggie bed or a hexagonal bin, or simply stop moving after being thrown.\n\nScoring: you get 1 point for each dodgeball that lands on a doggie bed, 1 point for each dodgeball that lands on a hexagonal bin, and 1 point for each dodgeball that stops moving after being thrown.", + "(1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 3)": "Setup: Place a hexagonal bin near the door and ensure it remains there for the duration of the game.\n\nGameplay: Move objects around the room to specific locations. Place objects near the top shelf, near the floor, and near the north wall, ensuring they are not moving. Additionally, hold and throw dodgeballs so that they land and stop moving on top of the hexagonal bin.\n\nScoring: You earn points for each object placed near the top shelf, each object placed near the floor, each object placed near the north wall, and each dodgeball that lands on the hexagonal bin. Your final score is the sum of all these points.", + "(1, 1, 4, 0, 0, 1, 1, 1, 0, 1, 0, 0)": "Gameplay: Place chairs on desks, put pens or CDs in a hexagonal bin, throw dodgeballs onto the bed, and stack two cube blocks on a tall rectangular block that is also on top of another cube block, ensuring the tall rectangular block is the same type as one of the cube blocks.\n\nScoring: At the end of the game, your score is calculated by adding together twice the product of the number of chairs on desks and pens or CDs in the hexagonal bin, the number of dodgeballs on the bed, and the number of correctly stacked block sets.", + "(1, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 1)": "Setup: Place a hexagonal bin near the door and make sure it stays there throughout the game.\n\nGameplay: Move objects so they are not moving and are near the rug, and throw dodgeballs so they either stop moving anywhere or come to rest on the hexagonal bin.\n\nScoring: You get 1 point for each object that is not moving and is near the rug at the end of the game, and 1 point for each time you throw a dodgeball, regardless of where it stops, including if it lands on the hexagonal bin.", + "(1, 1, 4, 0, 2, 0, 0, 0, 1, 0, 0, 0)": "Gameplay: throw dodgeballs to land them inside and on top of a hexagonal bin, and move cube blocks around the room.\n\nScoring: you get 1 point for each dodgeball that lands inside and on top of a hexagonal bin, 1 point for each time you move a cube block, and 1 point for each arrangement where a yellow cube block and another cube block are both on top of a block next to a cylindrical block at the end of the game. Your final score is the sum of these points.", + "(1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Gameplay: throw golfballs, basketballs, and dodgeballs aiming for them to land and stop on specific targets\n\nScoring: you get 1 point for each golfball that lands and stops on a hexagonal bin. You also get points for balls that land and stop on the top drawer or a hexagonal bin, with the score being 40 times the product of the number of successful throws for each of the following: basketballs or white golfballs on the top drawer, basketballs on a hexagonal bin, and dodgeballs on a hexagonal bin.", + "(1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0)": "Setup: put a hexagonal bin near the rug and keep it there throughout the game.\n\nGameplay: throw golfballs, basketballs, and dodgeballs aiming for them to land and stop on specific targets.\n\nScoring: you get 1 point for every golfball that stops on a hexagonal bin, and 40 points for each time you manage to have a basketball or a white golfball on top of the top drawer, a basketball on a hexagonal bin, and a dodgeball on a hexagonal bin simultaneously." + } } \ No newline at end of file diff --git a/src/components/atoms/GameTextDisplay.vue b/src/components/atoms/GameTextDisplay.vue index d813ce0..1a0a69d 100644 --- a/src/components/atoms/GameTextDisplay.vue +++ b/src/components/atoms/GameTextDisplay.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/src/components/molecules/SingleGameExtendedJudgment.vue b/src/components/molecules/SingleGameExtendedJudgment.vue index 0c708f7..0bb4ed8 100644 --- a/src/components/molecules/SingleGameExtendedJudgment.vue +++ b/src/components/molecules/SingleGameExtendedJudgment.vue @@ -197,7 +197,7 @@ function specifyOptions(spec) { :label="question.label" v-model="answers[question.id]" :type="'type' in question ? question.type : QUESTION_TYPE" - :options="specifyOptions(question.options)" + :options="'options' in question ? specifyOptions(question.options) : null" :validation="'validation' in question ? question.validation : VALIDATION_TYPE" :help="'help' in question ? question.help : null" :placeholder="'placeholder' in question ? question.placeholder : null" diff --git a/src/components/pages/QuizPage.vue b/src/components/pages/QuizPage.vue index 958aa48..8837393 100644 --- a/src/components/pages/QuizPage.vue +++ b/src/components/pages/QuizPage.vue @@ -152,6 +152,7 @@ function checkQuiz() { // increment the attempts at the quiz smilestore.incrementQuizAttempts(); forminfo.attempt = smilestore.getQuizAttempts; // e.g., first time submitting the quiz is attempt 1 + forminfo.foo = undefined; // save the answers smilestore.saveQuizForm(forminfo); // todo: if too many attempts are incorrect, end experiment? diff --git a/src/components/pages/Task1Page.vue b/src/components/pages/Task1Page.vue index 3f8ee11..ca19d4f 100644 --- a/src/components/pages/Task1Page.vue +++ b/src/components/pages/Task1Page.vue @@ -27,9 +27,10 @@ function sampleGames() { const games = []; if ('realGames' in gamesData && smilestore.getNRealGames > 0) { const realGameKeys = Object.keys(gamesData.realGames); + console.log(`Found # real games: ${realGameKeys.length}`); const selectedKeys = realGameKeys.length <= smilestore.getNRealGames ? realGameKeys : random.shuffle(realGameKeys).slice(0, smilestore.getNRealGames); const realGames = selectedKeys.map((key) => ({ - ...gamesData.realGames[key], + text: gamesData.realGames[key], id: key, real: true, matched: true, @@ -42,7 +43,7 @@ function sampleGames() { realGames.forEach((realGameEntry) => { if (realGameEntry.id in gamesData.matchedArchiveGames) { matchedGames.push({ - ...gamesData.matchedArchiveGames[realGameEntry.id], + text: gamesData.matchedArchiveGames[realGameEntry.id], id: realGameEntry.id, real: false, matched: true, @@ -58,9 +59,10 @@ function sampleGames() { if ('novelArchiveGames' in gamesData && smilestore.getNNovelGames > 0) { const novelGameKeys = Object.keys(gamesData.novelArchiveGames); + console.log(`Found # novel games: ${novelGameKeys.length}`); const selectedNovelKeys = novelGameKeys.length <= smilestore.getNNovelGames ? novelGameKeys : random.shuffle(novelGameKeys).slice(0, smilestore.getNNovelGames); const novelGames = selectedNovelKeys.map((key) => ({ - ...gamesData.novelArchiveGames[key], + text: gamesData.novelArchiveGames[key], id: key, real: false, matched: false, diff --git a/src/stores/firestore-db.js b/src/stores/firestore-db.js index 8b6d729..fda81c3 100644 --- a/src/stores/firestore-db.js +++ b/src/stores/firestore-db.js @@ -17,6 +17,8 @@ import { split } from 'lodash' // since this is a module these will run once at the start const firebaseApp = initializeApp(appconfig.firebaseConfig) const db = getFirestore(firebaseApp) +db._setSettings({ignoreUndefinedProperties: true}) + let mode = 'real' if (appconfig.mode === 'development') { mode = 'testing' diff --git a/src/stores/smiledata.js b/src/stores/smiledata.js index 7736ed6..9c499b0 100644 --- a/src/stores/smiledata.js +++ b/src/stores/smiledata.js @@ -69,8 +69,8 @@ const useSmileStore = defineStore('smilestore', { paired_game_results: [], quiz_form: [], // array of quiz attempts quiz_attempts: 0, - n_real_games: 10, - n_novel_games: 20, + n_real_games: 6, + n_novel_games: 8, }, config: appconfig, }),