{"id":18439093,"url":"https://github.com/demonstrandum/aqa_cs_2019_preliminary","last_synced_at":"2025-10-24T23:34:20.528Z","repository":{"id":96636138,"uuid":"188469337","full_name":"Demonstrandum/AQA_CS_2019_Preliminary","owner":"Demonstrandum","description":"AQA Comp. Sci. 2019 Preliminary Material for Paper 1","archived":false,"fork":false,"pushed_at":"2019-05-25T18:29:26.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T10:44:56.413Z","etag":null,"topics":["aqa","python","python3","skeleton-code"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Demonstrandum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-24T18:25:26.000Z","updated_at":"2019-06-03T15:53:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"85450ed7-03b7-4b58-b70d-0d0f32f781c4","html_url":"https://github.com/Demonstrandum/AQA_CS_2019_Preliminary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Demonstrandum%2FAQA_CS_2019_Preliminary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Demonstrandum%2FAQA_CS_2019_Preliminary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Demonstrandum%2FAQA_CS_2019_Preliminary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Demonstrandum%2FAQA_CS_2019_Preliminary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Demonstrandum","download_url":"https://codeload.github.com/Demonstrandum/AQA_CS_2019_Preliminary/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248887299,"owners_count":21177849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aqa","python","python3","skeleton-code"],"created_at":"2024-11-06T06:23:21.484Z","updated_at":"2025-10-24T23:34:15.507Z","avatar_url":"https://github.com/Demonstrandum.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AQA Comp. Sci. 2019 Preliminary\nSimple old-style adventure game. Game is a graph of connected rooms in 3D. Connections are North, East, South, West, Up and Down when these are integers storing the number of the connected room PLUS ONE, so a zero indicate no room in that direction\n\nVery simple objects with just string or integer fields\n\nVery sparse matrix of room interconnections – at most 6 per room\n\nConnections indicated by integer number\n\nThere are many unused statuses – why are they there???\nTiny, Small, Medium, Large, Edible, Fragile, Water, Liquid, Horrible, Occupied, Off, Powered, Lightable, Weapon\n\n## PDF Prelim. Transcription\n\n\n# Preliminary Material\n\nTo be opened and issued to candidates on or after 1 September 2018, subject to the\ninstructions given in the Teachers’ Notes (7517/1/TN).\n\nNote\n\n- The Preliminary Material and Skeleton Program are to be seen by candidates and their teachers\n    only, for use during preparation for the examination on Monday 3 June 2019. It cannot be used\n    by anyone else for any other purpose, other than that stated in the instructions issued, until after\n    the examination date has passed. It must not be provided to third parties.\n\nInformation\n\n- A Skeleton Program is provided separately by your teacher and must be read in conjunction with\n    this Preliminary Material.\n- You are advised to familiarise yourselves with the Preliminary Material and Skeleton Program\n    before the examination.\n- A copy of this Preliminary Material and the Skeleton Program will be made available to you in hard\n    copy and electronically at the start of the examination.\n- You must not take any copy of the Preliminary Material, Skeleton Program or any other material\n    into the examination room.\n\n\n\n\n### INSTRUCTIONS FOR CANDIDATES\n\nElectronic Answer Document (EAD)\n\nAnswers for all questions, for all sections, must be entered into the word processed document made\navailable to you at the start of the examination and referred to in the question paper rubrics as the\nElectronic Answer Document.\n\nPreparation for the Examination\n\nYou should ensure that you are familiar with the Preliminary Material and the Skeleton Program for\nyour programming language.\n\n\n### AQA TEXT ADVENTURES\n\nAQA TEXT ADVENTURES is a framework for playing text adventure games where the user gives\ncommands by entering text, and the current state of the game is given to the user via text displayed\non the screen. Text adventure games are one of the oldest types of computer games.\n\nAQA TEXT ADVENTURES works in conjunction with a data file that provides the data to be used in\nthe game. The data file contains details about the characters, locations and items for a scenario.\nThis separation of the scenario from the program code means that the program can be used to play\nmany different text adventure games as different data files containing different game data can be\nused.\n\n In text adventure games the user inputs a simple sentence, e.g. `go north`. The sentence is then\nparsed. If it is a valid sentence that the program can understand, the action indicated by the\ncommand given in the sentence is completed by the character the user is controlling (called the\nplayer) and the current state of the game is changed. The user is informed of changes to the game\nstate via text displayed on the screen. If the sentence is not valid then an error message is\ndisplayed.\n\nThe commands that are available to use are described in Table 1.\n\n\n\n#### Table 1\n\n| Command    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Example                                                                                                                                                                                                                                |\n|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `go`       | Moves the player from one location to another. The go command needs to be followed by one of the six valid directions: `north, south, east, west, up, down`.                                                                                                                                                                                                                                                                                                                          | ``` go north ``` \u003cbr/\u003e\u003cbr/\u003e Will take the player to the location north of the current location, if there is such a location and it is possible to go in that direction.                                                                |\n| `get`      | Allows the player to pick up an object that is in the same location as they are. The get command needs to be followed by the name of the object that the player wants to get. If the object can be got then it is added to the player’s inventory and is no longer in its original location.                                                                                                                                                                                          |  ``` get torch  ``` \u003cbr/\u003e\u003cbr/\u003e Will add the torch object to the player’s inventory if it is in the same location as the player and there is no other reason the torch cannot be got e.g. it is currently carried by another character. |\n| `use`      | Allows the player to use an object that is in their location or their inventory. The use command needs to be followed by the name of the object that the player wants to use. The effect of using an object depends on which object is being used, e.g. using a key in a room with a locked door will unlock the door (if it is the right key for that door).                                                                                                                         | ``` use silver key ``` \u003cbr/\u003e\u003cbr/\u003e Will try to use the silver key object.                                                                                                                                                               |\n| `examine`  | Provides the player with a more detailed description of an object or character in the same location as they are or an object in their inventory. The examine command needs to be followed by the name of the object or character that the player wants to examine. `examine inventory` will display a list of the items the player is currently carrying.                                                                                                                             | ``` examine red die ``` \u003cbr/\u003e\u003cbr/\u003e If the red die is in the player’s inventory or in the same location as the player a description of the red die will be displayed.                                                                   |\n| `say`      | The player will speak, saying the text that follows the say command.                                                                                                                                                                                                                                                                                                                                                                                                                  | ``` say hello ```                                                                                                                                                                                                                      |\n| `quit`     | Ends the game, quitting the program.                                                                                                                                                                                                                                                                                                                                                                                                                                                  | ``` quit ```                                                                                                                                                                                                                           |\n| `read`     | Will display the text of objects that can be read e.g. books, notes, signs.                                                                                                                                                                                                                                                                                                                                                                                                           | ``` read book ``` \u003cbr/\u003e\u003cbr/\u003e Will display the text written in the book object, if the book is in the same location as the player or in the player’s inventory.                                                                         |\n| `move`     | Allows the player to move an object that is in the same location as they are. The move command needs to be followed by the name of the object that the player wants to move. If the object can be moved then the result of moving the object will be displayed on the screen.                                                                                                                                                                                                         | ``` move bed ``` \u003cbr/\u003e\u003cbr/\u003e Will move the bed object if the bed is in the same location as the player.                                                                                                                                 |\n| `open`     | Allows the player to open an openable item that is in the same location as they are. The open command needs to be followed by the name of the item to open. This command is often used to open a door that is in-between two locations.                                                                                                                                                                                                                                               | ``` open silver door ``` \u003cbr/\u003e\u003cbr/\u003e Opens the silver door if the player is in the same location as the silver door and the silver door can be opened.                                                                                  |\n| `close`    | Allows the player to close a closable item that is in the same location as they are. The close command needs to be followed by the name of the item to close.                                                                                                                                                                                                                                                                                                                         | ``` close silver door ``` \u003cbr/\u003e\u003cbr/\u003e Closes the silver door if the player is in the same location as the silver door and the silver door can be closed.                                                                                |\n| `playdice` | The player will play a dice game with another character. If the player wins then a list of the items that the losing character is carrying is displayed and the user chooses an item to take; if the player loses, the other character takes a random item from the player’s inventory.  The `playdice` command needs to be followed by the name of a character to play the dice game with. The character and the player need to be in the same location and both need to have a die. | ``` playdice guard ``` \u003cbr/\u003e\u003cbr/\u003e Plays a dice game with the guard character if the player is in the same location as the guard and both the player and the guard have a die.                                                          |\n\nThe details that are stored about the characters, locations and items are detailed below.\n\n\nEvery character has a:\n\n- unique ID\n- name\n- description\n- current location.\n\nThe player’s ID is 1001. All character IDs are less than 2000.\n\nEvery item has a:\n\n- unique ID\n- name\n- description\n- ID of its current location (if the location is greater than 2000 then the location is an item that is a\n    container, in other words the item is inside another item)\n- current status (e.g. a door could have a status of open; other status values are: locked, close,\n    tiny, small, medium, large, edible, fragile, usable, gettable, water, liquid, container, horrible,\n    occupied, off, powered, lightable, weapon)\n- list of commands that can be used with the item (which will be one or more of: get, use, move,\n    open, close, read)\n- list of the results of using the listed commands (the results will be in the same order as the\n    commands were listed in, though if nothing other than moving an item into the player’s\n    inventory happens when using the get command then no result will be specified as this is the\n    default result).\n\nAll item IDs are greater than 2000.\n\nSome items (doors) are actually two items – one in each of the locations separated by the item.\nWhen this is the case the difference between the IDs of the two items is 10000.\n\nAny item that has a current location between 1001 and 1999 is being carried by a character (it is in a\ncharacter’s inventory).\n\nA usable status means that the item can be used by the player even if it is not in their inventory as\nlong as it is in the same location as the player. A gettable status means that the item is one that can\nbe in the player’s inventory (or that of another character in the game). An item can have more than\none status; each status value for the item is stored in the same variable with commas separating the\nvalues. Some of these status values are not currently used in the Skeleton Program.\n\nEvery location has a:\n\n- unique ID\n- description\n- ID of the location that can be found:\n   - north\n   - east\n   - south\n   - west\n   - up\n   - down\n\n\n- from that location. If there is no location in a particular direction then this is indicated with the\n    value 0. All location IDs are less than 2000.\n\n#### Data Files\n\nTwo Data Files named flag1.gme and flag2.gme are supplied with the Skeleton Program. The\nflag1.gme data file provides the characters, locations and items for a text adventure game where the\nuser needs to find a flag to win the game. The flag2.gme data file is the same text adventure game\nas in the flag1.gme file but with the player in a different starting location and some of the items are in\ndifferent locations and have a different status.\n\n#### END OF PRELIMINARY MATERIAL\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdemonstrandum%2Faqa_cs_2019_preliminary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdemonstrandum%2Faqa_cs_2019_preliminary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdemonstrandum%2Faqa_cs_2019_preliminary/lists"}