Skip to content

"Cycling Choices": Harlowe (v2.0)#


This example is affected by history changes in the story. Undoing or re-doing back to a passage containing this recipe has the potential to change its saved values.


"Cycling Choices" demonstrates how to create a 'cycling' effect of different choices through clicking on them.

The cycle starts with the use of the (display:) macro and the assumption that the 1st element in the $choices Array is the currently selected choice.

If the user clicks on the link (created through using the (link:) macro), the $choices array is updated using the (rotated:) macro. This causes the current 1st element to be moved to the end of the array, making the element that was previously 2nd to now be 1st.

At the end of every cycle, the currently selected value is always the 1st element in the $choices array.



Twee Code#

:: StoryTitle
Cycling Choices in Harlowe

:: Start
(set: $choices to (array: "First", "Second", "Third"))
Click options to cycle: [(display: "Cycling")]<choice|

:: Cycling
  (link: (text: $choices's 1st) )[
    (set: $choices to (rotated: -1, ...$choices))
    (replace: ?choice)[(display: "Cycling")]

:: Results
Selected choice: (print: $choices's 1st)

Twee Download

See Also#

Setting and Showing Variables, Modularity