,,,|game>[(display: "game")] (display: "keyboard")(save-game: "save"){ (display: "word selector")<!-- Sets the correct word to guess. --> (set: $character to 1)<!-- The current character being guessed. --> (set: $guess to "——————")<!-- The current player guess. --> (set: $currentGuess to " ")<!-- Only used when handling button presses. --> (set: $guesses to (a:))<!-- The array of previous guesses. --> (set: $guessCharacter to 1)<!-- Equivalent to $character, but for past guesses: determines green backgrounds. --> (set: $greens to (ds:))<!-- A dataset of all green letters. --> (set: $yellows to (ds:))<!-- A dataset of all yellow letters. --> (set: $greys to (ds:))<!-- A dataset of all grey letters. --> (set: $finished to false)<!-- Allows enter key presses. --> <!-- Variables just to hold the letters on the keyboard. --> (set: $row1 to "QWERTYUIOP") (set: $row2 to "ASDFGHJKL") (set: $row3 to "ZXCVBNM") } |winText>[] (char-style:(css: "padding: 0px 5px 0px 5px;border: 1px solid darkgrey;margin: 0px 3px 0px 3px;outline-style: solid;outline-color: white;"))[{ (set: $guessCharacter to 1) (if: $guesses's length >= 1)[(for: each _letter, ...1st of $guesses)[ (if: $guessCharacter of $word is _letter)[(background: green)[_letter](set: $greens to it + (ds: _letter)) ] (elseif: $word contains _letter)[(background: yellow)[_letter](set: $yellows to it + (ds: _letter)) ] (else:)[(background: grey)[_letter](set: $greys to it + (ds: _letter))] (set: $guessCharacter to it + 1)] ] (elseif: $guesses's length is 0)[(unless: $guess is $word)[(display: "current guess line")](else:)[——————]] (else:)[——————] } { (set: $guessCharacter to 1) (if: $guesses's length >= 2)[(for: each _letter, ...2nd of $guesses)[ (if: $guessCharacter of $word is _letter)[(background: green)[_letter](set: $greens to it + (ds: _letter)) ] (elseif: $word contains _letter)[(background: yellow)[_letter](set: $yellows to it + (ds: _letter)) ] (else:)[(background: grey)[_letter](set: $greys to it + (ds: _letter))] (set: $guessCharacter to it + 1)] ] (elseif: $guesses's length is 1)[(unless: $guess is $word)[(display: "current guess line")](else:)[——————]] (else:)[——————] } { (set: $guessCharacter to 1) (if: $guesses's length >= 3)[(for: each _letter, ...3rd of $guesses)[ (if: $guessCharacter of $word is _letter)[(background: green)[_letter](set: $greens to it + (ds: _letter)) ] (elseif: $word contains _letter)[(background: yellow)[_letter](set: $yellows to it + (ds: _letter)) ] (else:)[(background: grey)[_letter](set: $greys to it + (ds: _letter))] (set: $guessCharacter to it + 1)] ] (elseif: $guesses's length is 2)[(unless: $guess is $word)[(display: "current guess line")](else:)[——————]] (else:)[——————] } { (set: $guessCharacter to 1) (if: $guesses's length >= 4)[(for: each _letter, ...4th of $guesses)[ (if: $guessCharacter of $word is _letter)[(background: green)[_letter](set: $greens to it + (ds: _letter)) ] (elseif: $word contains _letter)[(background: yellow)[_letter](set: $yellows to it + (ds: _letter)) ] (else:)[(background: grey)[_letter](set: $greys to it + (ds: _letter))] (set: $guessCharacter to it + 1)] ] (elseif: $guesses's length is 3)[(unless: $guess is $word)[(display: "current guess line")](else:)[——————]] (else:)[——————] } { (set: $guessCharacter to 1) (if: $guesses's length >= 5)[(for: each _letter, ...5th of $guesses)[ (if: $guessCharacter of $word is _letter)[(background: green)[_letter](set: $greens to it + (ds: _letter)) ] (elseif: $word contains _letter)[(background: yellow)[_letter](set: $yellows to it + (ds: _letter)) ] (else:)[(background: grey)[_letter](set: $greys to it + (ds: _letter))] (set: $guessCharacter to it + 1)] ] (elseif: $guesses's length is 4)[(unless: $guess is $word)[(display: "current guess line")](else:)[——————]] (else:)[——————] } { (set: $guessCharacter to 1) (if: $guesses's length >= 6)[(for: each _letter, ...6th of $guesses)[ (if: $guessCharacter of $word is _letter)[(background: green)[_letter](set: $greens to it + (ds: _letter)) ] (elseif: $word contains _letter)[(background: yellow)[_letter](set: $yellows to it + (ds: _letter)) ] (else:)[(background: grey)[_letter](set: $greys to it + (ds: _letter))] (set: $guessCharacter to it + 1)] ] (elseif: $guesses's length is 5)[(unless: $guess is $word)[(display: "current guess line")](else:)[——————]] (else:)[——————] (replace: " ")[] }] { (if: $guess is $word)[ (set: $streak to it + 1) (if: $streak > $bestStreak)[(set: $bestStreak to $streak)] (rerun: ?header) (replace: ?winText)[(t8n: "fade-up")[''(if: $guesses's length is 1)[Genius](elseif: $guesses's length is 2)[Magnificent](elseif: $guesses's length is 3)[Impressive](elseif: $guesses's length is 4)[Splendid](elseif: $guesses's length is 5)[Great](elseif: $guesses's length is 6)[Phew]'']] (set: $finished to true) (t8n: "fade-down")[(link: "Again?")[(display: "startup")(go-to: "Twinedle")]]] (if: $guesses's length is 6 and $guess is not $word)[ (set: $streak to 0) (rerun: ?header) (replace: ?winText)[(t8n: "fade-up")[''$word'']] (t8n: "fade-down")[(link: "Again?")[(display: "startup")(go-to: "Twinedle")]]] }|currentGuess>[(for: each _letter, ...$guess)[_letter]]{ (enchant: "—", (text-colour: (rgba: 255,255,255,0.001))) |header>[Streak:—$streak———Best:—$bestStreak] } --- (text-style:"expand")[=(char-style:(css: "padding: 0px 5px 0px 5px;border: 1px solid darkgrey;border-style: none;border-radius: 2px;background-color: lightgrey;margin: 0px 2px 0px 2px;outline-style: solid;outline-color: white;"))[ |keyboard>[(text-colour: black)[{ (for: each _key, ...$row1)[ (if: $greens contains _key)[(text-colour: green)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (elseif: $yellows contains _key)[(text-colour: yellow)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (elseif: $greys contains _key)[(text-colour: grey)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (else:)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]] ] } { (for: each _key, ...$row2)[ (if: $greens contains _key)[(text-colour: green)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (elseif: $yellows contains _key)[(text-colour: yellow)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (elseif: $greys contains _key)[(text-colour: grey)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (else:)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]] ] } { (link-repeat: "↵")[(if: $character > 6 and $finished is false)[(set: $guesses to it + (a: $guess))(unless: $guess is $word)[(set: $guess to "——————")](set: $character to 1)(go-to: "Twinedle")]](for: each _key, ...$row3)[ (if: $greens contains _key)[(text-colour: green)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (elseif: $yellows contains _key)[(text-colour: yellow)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (elseif: $greys contains _key)[(text-colour: grey)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]]] (else:)[ (link-repeat: _key)[(if: $character < 7)[(set: $guess's $character to _key)(set: $character to it + 1)(rerun: ?currentGuess)]]] ](link-repeat: "⌫")[(unless: $character <= 0)[(unless: $character is 1)[(set: $character to it - 1)](set: $guess's $character to "—")](rerun: ?currentGuess)] (replace: " ")[] (rerun: ?footer) }] ]] --- { |footer>[(replace: " ")[]] }(set: $word to (either: "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA", "BANANA","PISTOL", "ORANGE", "MONKEY", "SPIDER", "GRAPES", "CHERRY", "LYCHEE", "PAPAYA")){ (set: $streak to 0) (set: $bestStreak to 0) (if: (saved-games:) contains "save")[(load-game: "save")] (else:)[(go-to: "Twinedle")] }