Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

How to administer a Five Factor Personality Test in Twine?

Hello! I'm brand new to Twine, so bear with me.

I'm looking to create a story that has a personality test based on the Five Factor / OCEAN / IPIP exam included. Basically, it measures exactly how much Openness, Conscientiousness, Extroversion, Agreeableness, and Neuroticism an individual possesses based on items such as 'You enjoy being in large groups' and responses such as 'strongly agree', 'agree', 'neither agree or disagree', 'disagree', and 'strongly disagree.'

At the conclusion of the quiz, I would like to be able to assign the player of my story a character point of view based on whichever trait they scored highest in.

I'm assuming that I would need to assign number values to each potential response (for example, someone who responded 'strongly agree' to the aforementioned sample question would have +2 Extroversion, someone who responded 'neither agree or disagree' would have +0 Extroversion, and someone who responded 'strongly disagree' would have -2 Extroversion), and that the conclusion of the quiz would need to recognize which trait score was the highest somehow

How could I do this? If it's not feasible, are there any other ways I could have a similar element in my story? I'm using Harlowe, but I would be willing to switch to another story format if it's absolutely necessary.

Thanks a bundle!

Comments

  • Update!

    I have attempted to make a system that works here, but it hasn't been working. Could anyone let me know how to fix it?

    The first instance value is set up like this:

    After that, I changed it to:

    However, instead of adding that amount to $e, it's been giving me this??

    e4801c91a723db103e3410bb9d65889d.png

    Also, my final result page hasn't been showing anything at all after multiple different playthroughs. It's currently set up like this:
    (if: $o > $c and it > $e and it > $a and it > $n)[you are openness!]

    (if: $c is > $o and it >$e and it > $a and it > $n)[you are conscientiousness!]

    (if: $e is > $o and it > $c and it > $a and it > $n)[you are extroversion!]

    (if: $a is > $o and it > $c and it > $e and it > $n)[you are agreeableness!]

    (if: $n is > $o and it > $c and it > $e and it > $a)[you are neuroticism!]
  • Try something like the following:
    you are an assertive person
    
    (link: "strongly agree")[(set: $e to 2)(goto: "quiz (pg 2)")]
    
    (link: "agree")[(set: $e to 1)(goto: "quiz (pg 2)")]
    
    (link: "neither agree or disagree")[(set: $e to 0)(goto: "quiz (pg 2)")]
    
    (link: "disagree")[(set: $e to -1)(goto: "quiz (pg 2)")]
    
    (link: "strongly disagree")[(set: $e to -2)(goto: "quiz (pg 2)")]
    
  • That doesn't seem to be working, unfortunately! Thank you for the suggestion though.
  • edited March 2016
    I'm unsure what else you may be doing or how you're checking, but I guarantee you that my previous example does indeed function at a basic level. You may need different expressions in your actual (set:) invocations (they should probably all be either incrementing/decrementing the $variable), but that's a separate issue.

    For example, in all likelihood, each of your quizzes will probably need to look something like the following:
    you are an assertive person
    
    (link: "strongly agree")[(set: $e to it + 2)(goto: "quiz (pg 2)")]
    (link: "agree")[(set: $e to it + 1)(goto: "quiz (pg 2)")]
    (link: "neither agree or disagree")[<!-- no change to $e -->(goto: "quiz (pg 2)")]
    (link: "disagree")[(set: $e to it - 1)(goto: "quiz (pg 2)")]
    (link: "strongly disagree")[(set: $e to it - 2)(goto: "quiz (pg 2)")]
    

    Beyond that, all but the first of your result page (if:) macros are incorrect. You have is > where you should have simply >. For example:
    (if: $c is > $o and it >$e and it > $a and it > $n)[you are conscientiousness!]
    
    (if: $e is > $o and it > $c and it > $a and it > $n)[you are extroversion!]
    
    (if: $a is > $o and it > $c and it > $e and it > $n)[you are agreeableness!]
    
    (if: $n is > $o and it > $c and it > $e and it > $a)[you are neuroticism!]
    
    Should be:
    (if: $c > $o and it > $e and it > $a and it > $n)[you are conscientiousness!]
    
    (if: $e > $o and it > $c and it > $a and it > $n)[you are extroversion!]
    
    (if: $a > $o and it > $c and it > $e and it > $n)[you are agreeableness!]
    
    (if: $n > $o and it > $c and it > $e and it > $a)[you are neuroticism!]
    
  • I've attached a working Twine 2 archive as an example here.
  • fluvii wrote: »
    The type of link you are trying to create is commonly known as a Setter Link, and as explained by TheMadExile this type of link is implemented in Harlowe like so:
    (link: "strongly agree")[(set: $e to 2)(goto: "quiz (pg 2)")]
    
Sign In or Register to comment.