When creating a story or game, there might be a need to have the player input a lock combination or solve a mathematical problem.
One way to approach this issue is with creating a "keypad" set of inputs for the numbers 0 through 9 and have the player click on them in turn.
[[Keypad]]Enter the three-digit combination
<div class="entry">[***]<entry|</div>
<table>
<tr>
<td>(link-repeat: "1")[(display: "NumberOne")]</td>
<td>(link-repeat: "2")[(display: "NumberTwo")]</td>
<td>(link-repeat: "3")[(display: "NumberThree")]</td>
</tr>
<tr>
<td>(link-repeat: "4")[(display: "NumberFour")]</td>
<td>(link-repeat: "5")[(display: "NumberFive")]</td>
<td>(link-repeat: "6")[(display: "NumberSix")]</td>
</tr>
<tr>
<td>(link-repeat: "7")[(display: "NumberSeven")]</td>
<td>(link-repeat: "8")[(display: "NumberEight")]</td>
<td>(link-repeat: "9")[(display: "NumberNine")]</td>
</tr>
<tr>
<td>(link-repeat: "Clear")[(display: "Clear")]</td>
<td>(link-repeat: "0")[(display: "NumberZero")]</td>
<td>(link-repeat: "Enter")[(display: "Enter")]</td>
</tr>
</table>{
(set: $entry to "")
(set: $entryLength to 3)
(set: $solution to "123")
}{
(if: $entry's length < $entryLength)[
(set: $entered to 2)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 3)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 1)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 4)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 5)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 6)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 7)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 8)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 9)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(if: $entry's length < $entryLength)[
(set: $entered to 0)
(set: $entry to it + (text: $entered) )
(replace: ?entry)[$entry]
]
}{
(set: $entry to "" )
(replace: ?entry)[***]
}{
(if: $entry is $solution)[
(goto: "End")
]
}You got it right!