Tillkännagivande

Tillkännagivande Module
Minimera
Inga tillkännagivanden ännu.

Krank bygger: Ledtrådsfilter och datorstöd

Sidnamn Module
Flytta Ta bort Minimera

Senaste inlägg

Senaste inlägg Module
Minimera

Diskussioner Statistik Senaste inlägg
Skapad av ceruleanfive, Igår, 20.24
6 responses
122 visningar
3 gillar
ceruleanfive  
Skapad av Henke, 22 September 2018, 15.51
47 responses
1.202 visningar
3 gillar
obak
av obak
 
Skapad av Svarte Faraonen, Idag, 00.41
4 responses
118 visningar
2 gillar
Svarte Faraonen  
Skapad av krank, Idag, 11.30
0 responses
6 visningar
1 gillar
krank
av krank
 
Skapad av McKatla, Idag, 07.28
2 responses
97 visningar
0 gillar
Krille
av Krille
 
Skapad av Lambendil, 30 July 2018, 08.32
11 responses
248 visningar
2 gillar
Lambendil  
Skapad av ceruleanfive, 17 September 2018, 09.52
7 responses
126 visningar
3 gillar
ceruleanfive  
Skapad av God45, 17 September 2018, 19.02
13 responses
510 visningar
6 gillar
Skarpskytten  
Skapad av .113, Igår, 20.06
6 responses
132 visningar
0 gillar
0.113
av 0.113
 
Skapad av krank, 17 September 2018, 18.25
19 responses
328 visningar
0 gillar
krank
av krank
 
X
Konversationsdetalj Module
Minimera
  • Filtrera
  • Tidsrymd
  • Visa
Rensa All
nya inlägg

  • Krank bygger: Ledtrådsfilter och datorstöd

    Jag gillar ledtrådar, jag gillar mysterier, jag gillar att hitta sätt att systematisera och använda datorstöd för att avhjälpa mina förberedelser när jag ska spelleda.

    När jag funderat kring ledtrådar så har försökt fundera kring hur de egentligen funkar i äventyr; hur spelarna interagerar med dem, vad i ledtrådspusslande det är som gör det klurigt och roligt, som gör att man får känna sig clever.

    En av de saker jag funderade på är vad jag kallat filtrering. Det är egentligen en klassisk grej som synts i de flesta CSI-kloner och deckarberättelser: Om en ledtråd säger att den skyldige antingen befinner sig på plats A, B eller C och en annan ledtråd säger att den skyldige befinner sig på plats C, D eller E så kan man, med båda ledtrådarna i hand, sluta sig till att det nog vore bra att undersöka plats C. Det här yttrar sig på tusen olika sätt med tusen olika sorters ledtrådar, men grundstrukturen är densamma.

    Så... hur kan man hjälpa skapandet av sådana strukturer? Det är klart att man helt enkelt kan hitta på ett gäng ledtrådar och försöka få dem att passa ihop på ett bra sätt, men... jag vill åtminstone ha lite stöd i det arbetet. Och jag upptäckte också att det åtminstone för mig ganska snabbt blir klurigt att hålla reda på allt så snart det börjar bli fler ledtrådar och platser inblandade.

    Jag började med att skapa ett nytt Google Sheets-dokument. Jag visste att jag skulle vilja ha minst omkring 8 olika platser och att äventyret jag pillade med nog skulle kunna formas om till att ha fyra olika trådar som ledde till fyra olika filterledtrådar. Jag numrerade platserna 1-8 och filtren fick bli A-D. Jag visste på ett ungefär vilka de åtta platserna skulle vara, och att fem av dem skulle vara av samma typ, men jag visste inte mer om ledtrådarna än att en av dem antagligen skulle informera om att rollpersonernas mål ligger i en av de fem som är av samma typ. Men till en början fick det bli ganska abstrakt - jag tycker om att jobba så. Vad exakt ledtrådarna handlar om kan jag hitta på när jag vet vilka platser de ska peka mot.

    Så, jag började med en enkel uppställning.

    Bilaga

    Filtren (ledtrådarna) vertikalt, platserna horisontellt. x betyder "ledtråden pekar mot platsen" och siffrorna i kolumn B är helt enkelt antalet platser som ingår i respektive filter. Siffrorna genereras helt enkelt med den här formeln:

    Kod:
    =COUNTIF(C2:J2,"=x")
    Den gröna färgen är den plats som är "rätt", fetstilen är de fem som "hör ihop".


    Steg 2 blev att fundera kring kombinationer. Jag orkade inte räkna ut något sätt att generera en lista med unika filterkombinationer, så jag skrev helt enkelt in alla jag kunde komma på med 2 eller 3 filter:

    Bilaga

    Sedan funderade jag på min målbild. I äventyret tänker jag mig att det kan finnas negativa effekter av att undersöka platser, t.ex. att man varnar fienden eller så. Jag tänkte därför att det vore bra om tre filter alltid ledde till att man visste exakt vart man skulle (bara en plats) och att två filter skulle kunna leda till mellan 1 och 3 filter - idealiskt sett ska det finnas ett par kombinationer av två filter som leder exakt rätt, någon kombination som leder till 3 platser (och därmed i princip är värdelös) och att resten ska leda till att man kommer ner till 2 platser.

    Det här gör att jag måste räkna lite. Jag orkar inte räkna själv, så jag byggde istället en formel. Den ser ut såhär:

    Kod:
    =IF(
      COUNTIF(
        FILTER(C$2:C$5,
          REGEXMATCH($A$2:$A$5,
            SUBSTITUTE($A8,"+","|")
          )
        ),
        "x")
        =LEN(SUBSTITUTE($A8,"+","")
      ),
      "x",
      ""
    )
    Den placeras sedan i cell C8, och utökas sedan till hela området C8:J13:

    Bilaga

    Formeln gör alltså såhär:
    • Hämta innehållet i A8, och byt ut + mot |. (SUBSTITUTE - Egentligen hade jag kunnat skriva med | direkt, men jag gillar tydligheten i +)
    • Använd ett filter för att få fram alla rader som matchar resultatet - alltså t.ex. A|B, som innebär "A eller B". (FILTER och REGEXMATCH)
    • Räkna hur många av de raderna som har ett "x" i sig i den nuvarande kolumnen (COUNTIF)
    • Se hur många bokstäver det står i A8 (LEN och SUBSTITUTE).
    • Se om antalet filtrerade rader med x i sig är lika med antalet bokstäver i A8 (IF - kollar alltså ifall alla framfiltrerade rader har ett x, eftersom antal framfiltrerade rader ska vara lika med antalet bokstäver)
    • Om det är så - skriv "x". Annars, skriv "".
    Formeln tog en stund att bygga - som vanligt byggde jag varje del för sig och testade, så att jag testade SUBSTITUTE och LEN(SUBSTITUTE)-kombinationerna, och REGEXMATCH+FILTER, och så vidare, i "kladdrutor" medan jag arbetade. Sedan satte jag ihop dem varsamt, en i taget, och dubbelkollade förväntat resultat kontra faktiskt resultat.

    Resultatet blir som syns på bilden - eftersom A8 är skrivet som $A8 så betyder det att när jag utökar formeln så fortsätter alla rutor att använda A-kolumnen, men raden beror på vilken rad formeln står i. Så alla i formeln i alla celler på rad 12 står det istället $A12. Jag gillar verkligen det här med att kunna utöka/fylla ut formler...

    Sedan är det ganska lätt - I B8:B13 står det samma COUNTIF-formel som i B2:B5, så där räknas helt enkelt antalet x på respektive rad.

    Eftersom jag också ville bry mig om tre-filter-kombinationer så byggde jag helt enkelt vidare - formeln ovan funkar även när det står A+B+C till exempel, eftersom den hela tiden använder antalet bokstäver i den första kolumnen snarare än ett fast värde.

    Bilaga

    Det ni ser ovan är det färdiga resultatet - jag råkade såklart inte få allting perfekt direkt, utan jag fick fortfarande sitta och pilla en del. Men jag hade god hjälp av det visuella stödet - jag såg direkt vilken effekt varje kryss hade på antalet kombinationer och så. Ovanstående resultat funkar för mig - två filterkombinationer (A+D och B+C) leder direkt rätt, en (A+C) är rätt värdelös och övriga leder till visst riskmoment men bör åtminstone kunna leda rollpersonerna rätt inom rimlig tid.

    Min förhoppning är såklart att det här ska kunna användas fler gånger - att jag kan plocka upp det här kalkylbladet nästa gång, bestämma ett annat antal filterledtrådar och platser, och bara fylla på.

    Jag tror absolut att mina formler kan förbättras av folk som vet vad de håller på med på riktigt, men... I dunno, jag ville mest skryta lite om vad jag lyckades få ihop och kanske inspirera/visa lite hur jag tänker och jobbar när jag bygger äventyr...

  • #2
    Här är förresten filen jag jobbade i. Jag tror att det borde gå att skapa kopior av den vid behov?

    Kommentera


    • #3
      Intressant.... Jag har jobbat massor med en komplett äventyrsgenerator i excel. Har väl kommit 20%.....

      Kommentera


      • #4
        Spännande! Jag misstänker att graf-teori har en användbar tillämpning på detta problem.

        Kommentera

        Arbetar …
        X