Staircase class
How to add a Staircase to your online study.
1. Add the Staircase JavaScript file to your code
Either
Add
import "staircase.js"
to your JavaScript code
Or
Add
<script src="staircase.js"></script>
to your HTML code
2. Create the Staircase
Create a new variable for the Staircase. In this example, it is called
myStaircase
.
let myStaircase
Then, initialise the Staircase.
myStaircase = new Staircase()
The default parameters are:
myStaircase = new Staircase(
min = 1, max = 10, start = min,
up = {increment: +1, repeatsToMove: 1},
down = {increment: -1, repeatsToMove: 1}
)
Parameter | Type | Default | |
---|---|---|---|
min | number | 1 | Lowest level on the staircase |
max | number | 10 | Highest level on the staircase |
start | number | min | Starting position on the staircase |
up.increment | int | +1 | Number of steps and direction when moving "up" |
up.repeatsToMove | int | 1 | Number of consecutive
moveUp() before moving "up"
|
down.increment | int | -1 | Number of steps and direction when moving "down" |
down.repeatsToMove | int | 1 | Number of consecutive
moveDown() before moving "down"
|
3. Using the Staircase
Call
myStaircase.moveUp()
to attempt to move up the staircase. If the number of consecutive repeats of
moveUp()
equals
up.repeatsToMove
, the move will succeed. Likewise, use
myStaircase.moveDown()
to attempt a move downwards.
Example
if (response == correctAnswer) {
myStaircase.moveUp()
} else {
myStaircase.moveDown()
}
myStaircase
contains various properties that can be accessed and modified.
Example
if (myStaircase.reversals >= 5) {
// do something
}
Property | Type | Default starting value | |
---|---|---|---|
.minimum | number | 1 | Lowest level on the staircase |
.maximum | number | 10 | Highest level on the staircase |
.up | object | {increment: +1, repeatsToMove: 1} | Parameters for moving "up" the staircase |
.down | object | {increment: -1, repeatsToMove: 1} | Parameters for moving "down" the staircase |
.currentStep | number | start | Current step on the staircase |
.repeats | object | {up: 0, down: 0} | Current number of consecutive repeats |
.reversals | number | 0 | Number of reversals |
.lastStepDirection | string | null | Direction of the last successful step change:
up ,
down
|
.history | number[] | empty array | History of all steps on the staircase. The position is recorded even if the move did not occur, i.e. repeatsToMove not fulfilled |