The Inform 7 Game, or The Quasi-Reasonal Operationalization of Apophenia, or Yet Another English Student Playing with Concepts He Doesn't Fully Appreciate in their Native Context Ramifications: ? Starting Point: Generating a key/setting a path - "Where do you want to go today?" -There can be any method of selection, really, but lets choose a word that we like and make it fit. POETRY Now, there are a few features of this word which might be useful to us, considering its nature as digital text. First, it can be expressed as a string in which different letters are placed from [0] to [n]. So we could think about the word in the following terms: [0] [1] [2] [3] [4] [5] P 0 E T R Y Moreover, each of the letters can be represented in terms of their correlations with regard to ASCII or Unicode encoding. For the sake of argument, lets consider the Unicode labels for these characters, and add them to our table. We'll ignore the 'u+' aspect, as it does little to specify particularities in the character values for the purposes we need: [0] P 0050 [1] O 004F [2] E 0045 [3] T 0054 [4] R 0052 [5] Y 0059 But how can we use this information (or other correlates we may choose to draw attention to) to navigate a body of text? One way could be to fit the various codes into navigational instructions which make sense for the format and content of the database. Try the following: -A list of files, under certain circumstances, may also be expressed as strings. With this in mind, use the letter as a means of defining range and the string position to select a story (typically .ni), source (typically .txt), or a garbage file. If your list is too short for this to work within titles starting with your letter, continue onto the next group of letters. If you do not have an entry beginning with your letter, pretend that you have one at [0] and count from there. If you reach the end of your database, continue counting from the top. (Folder Output in your particular database: PetitGnomes, OhNoMrCrabStoleYourHat, Fate, TheGameFormerlyKnownAsHiddenNaziMode, SagebrushCactus, Alabaster). So now that there are open, what can we do? There are many potential ways to go forward - for instance, we could say that some of the sections of matrix above, when we run the letter and UNICODE together, resemble phonetic elements if we read the 0s as Os (not at all an uncommon occurence when we think about language use in a digital world). Here, [0] (P00) [3] (T00) [4] (R00) and [5] (Y00) are all candidates. Here are some things to try: -Do a search for the suggested term, and find an entry which makes based on an interpretation of used elements in the row (for instance, all of the last two digits can be read as HEX codes, which have other numerical correspondences). This makes sense particularly if the two entries are a number and a letter. If you can't find the term suggested or another term related to the concept, simply find a word in which the character is present while still following the search's numerical parameters. -Find a pattern which suggests a method of choosing words. For instance, we can read the unicode again as a directional tool within the document, correlating to north south east west, left right up down, what have you. In fact, let's take this a step further: if the relevant string number in the original matrix is odd, we will read the unicode as north south east west, even, left right up down. Copy your words down. -You can go further and say that ns/ud orders select one word, while ew/lr orders select a range of numbers where the source word is [0] and considered null. That's what we did here. [0] P 0050 PetitGnomes LRUD [1] O 004F OhNoMrCrabStoleYourHat NSEW [2] E 0045 Fate LRUD [3] T 0054 TheGameFormerlyKnownAsHiddenNaziMode NSEW [4] R 0052 SagebrushCactus LRUD [5] Y 0059 Alabaster NSEW [0] Vous [1] X [2] X [3] Just are there say :books many of them, and [4] otherwise person [5] between" or "agreement" or "arrangement" | or between us as the deal. After printing the name "This is weird and cool!" you're probably saying now, and you would be right. But what about the pieces which don't fit the method we have described so far? What about garbage text? How the hell can we find lines to fill in the remaining gaps? Some more things to try: - [1+2] If you don't have a phonetic connection, choose the word in the folder name which, if all instances of the letter in question were inserted into a string, the string number assigned to that matrix would refer to. As suggested before, trying finding the decimal value of any two digit forms with a number and letter and use that as your corpus instance search number. If you have a very small number of relevant entries, it may help to list the relevant number and do 'eenie meenie miny moe' the requisite amount of times, rather than moving from a 'up' and 'down' documentary search as when facing the same problem with larger entries which are less than the instance number given. [1] 4F = 79 1 2 3 4 5 | 79 times = 3rd instance [2] Because there is only one instance of the letter in question, and only one word we'll use that letter by itself [if you want, you could use the whole word - your choice]. - [1] For garbage texts, it may be desired to limit the word-once-selected movements to characters. We'll do that here [though we could also do characters in groups delineated by the master string value, which in this case would amount to the same thing.] [0] Vous [1] -N|- [2] can by [3] Just are there say :books many of them, and [4] otherwise person [5] between" or "agreement" or "arrangement" | or between us as the deal. After printing the name Going through this process, the user will have to acknowledge that a number of micro-decisions are necessary to be made - Do I go up and down from words based on alignment with my chosen character in the word, or from the first letter, or the middle letter, for instance. Such microdecisions can, of course, be worked into the formal schema, but do not necessarily have to - the attempt and perhaps failure to adhere to this atomic kind of structure allows for brief moments of discontinuity and the potential for different outputs based on the formula's deployment by other users? "What formula," you might ask? Well, the one you made, silly! You did it heuristically and in response to particular problems, but now there's a kind of formula which you can apply using other variables or key codes, assuming they can be acted on in the early stages! Check out our stages: 1. Select a key term. 2. Label that key term in terms of the position of each letter in a string. 3. Assign the letter's Unicode value to that letter and position. 4. Choose a 'text' for each row by choosing one folder from a list of folders starting with the row letter which, in the list, possesses the same string position. - If there list is too short to do this, move to the entries under the last 'appropriate' one while keeping the appropriate count going. - If there is no folder beginning with your letter, start counting from [1] at the first entry of the next letter list. 5. Examine your rows and see if any there is a seemingly phonetic element relating to a searchable term. If the suggested word does not show up on a search, search the document for instances of that letter instead. 6. Find the nth instance of your suggested word or letter in each corpus in rows possessing a phonetic quality, as posited by the last two digits of the appropriate Unicode. -Convert values with a number and letter from hexidecial to decimal in all numbered instance searches of this kind. 7. Based on whether or not the row's string position is an even or odd number, convert the Unicode into directions (nesw for odd numbers, lrud for even numbers - in that order). Navigate the text from your found instance in the directions prescribed. Vertical movements will each print one word [the end point], while horizontal movements print the range explored. Print the appropriate text in the appropriate position based on the master string assignation in the row. -In readable text, movements progress from word to word. In garbage text, movements progress from character to character. -The user can choose to select a single world produced from both up/down vertical movements for the [0] document {It draws subtle attention to a technical aspect of the work you're doing by referencing a function of the string - the 1st entry is always [0]} 8. Turn to the remaining rows without a suggestive phonetic quality. Use the word in the folder name possessessing the master letter in the string position suggested by the row (for instance [1]'s word would be 'No') -If there is only one instance of the master letter in the folder name, use the letter instead. 9. Repeat 6 and 7.