Attributes is a series of minigames for the TI83 family written in TIBasic. To quote Kyros, the author, about how in general they work:
they require the attribute of their name to complete, or score high on.
So far, there are 5 "episodes": Persistence, Luck, Endurance, Perception, and Detection
Table of Contents

general info
author Kyros
language TIBASIC (source only)
made for TI83 family
notes on source notation
notes on notation
!= not equal
=> greater than/equal
<= less than/equal
> store variable
_ is a notoverlyobvious blank space
{L1} represents a list variable
Persistence
a passwordguessing persistence game. You have a password. guess the number right, get to guess the next one. get it wrong,and you have to start over. it's really aggravating past five numbers. but…persist!
get it!
(source code only. program it ;)
Program: persist
:input "length?", Z
:for(P,1,Z)
:randint(7,9)>X
:randint(2,4)>Y
:10X+Y>{L1}(P
:end
:Lbl 1
:clrhome
:disp "go!"
:for(P,1,Z
:0>Y
:While Y=0
:getkey>Y
:End
:if y != {L1}(P
:goto 1
:if p<=16
:output(8, P,"*
:end
:disp "you win"
Luck
It's really sheer dumb luck, although probability might help you get higher scores. You press one of two to five buttons. If it's a randomly selected bad button, you die. if it's good, you score and start over. fewer buttons= higher score constant, although a higher chance of dying.
get it!
(source code only. program it ;)
program:luck
:Clrhome
:disp "how many?
:input "buttons?(25)_ _ _", A
:0>X
:int(A
:If A>5:5>A
:If A<2:2>A
:If A=2:"2>str1
:If A=3:"3>str1
:If A=4:"4>str1
:If A=5:"5>str1
:"1 to_"+str1>str1
:while 1
:disp "press a button", str1
:0
:while Y!=0:getkey>Y:end
:if Y=92: 1>Y
:if Y=93: 2>Y
:if Y=94: 3>Y
:if Y=82: 4>Y
:if Y=83: 5>Y
:if Y=>1 and Y<=5:goto T
:0>Y
:Lbl T
:if Y=randint(1,A) or Y>A or Y=0: goto S
:X+(A+7)>X
:clrhome
:disp "you didn't die."
:end
:Lbl S
:disp "you luck has","Run out!","","your score:",X
Endurance
It's button pushing. really fast. you press a button, over and over. stop and it ends. keep doing it and you score higher until you can endure no more.
get it!
(source code only. program it ;)
Program:endure
:0>X
:disp "Endurance","","Press 2nd","To begin"
:repeat Ans=21:getkey:end
:clrhome
:disp "go!"
:Lbl 1
:0>Y
:Repeat ans=21 or Y=15
:Y+1>Y
:getkey
:end
:if Y=15
:goto S
:X+1>X
:goto 1
:Lbl S
:clrhome
:disp "done! score:",x
Perception
it generates a random number on the screen somewhere for a short time. then, you push the key corresponding to that number and move on. or lose, because you're not perceptive enough.
get it!
UAS1 (KNC, found below) required
(source code only. program it ;)
PROGRAM:PERCEPT
:Disp "BEGIN PUSH 2nd"
:400> P
:0>X
:Lbl 1
:clrhome
:randint(0,9)>Y
:output(randint(1,8),randint(1,16),Y
:for (θ,1,P
:end
:clrhome
:disp "PRESS NUMBER
:0>θ
:Repeat θ!=0
:getkey>θ
:end
:prgmKNC
:if Y!=θ
:goto S
:X+5>X
:P5>P
:if P<=0
:5>P
:goto 1
:Lbl S
:disp "done! score:",X
Detection
the computer follows 5 rules:
1. the number is between 1 and 9
2. you get 4 clues of your choice
3. the clues are either answered with "<", "<=", "=>", or ">"
4. a (pseudo)random three of these are true (if it's less than, one of the first two, equal to, one of the second or third, greater than, last two.)
5. one of them is randomly answered (a "lie"), and has a 50% chance of being not true.
so, really, you press a button 19 to get a clue. it will tell you what it is, or "lie" about it. then you guess the number and either win or lose.
get it!
UAS1 (KNC, found below) required
(source code only. program it ;)
PROGRAM:DETECT
:">≥≤<">str1
:randint(1,9)>Y
:4>P
:0>X
:Lbl 1
:Disp "push guess
:0>θ
:repeat θ!=0
:getkey>θ
:end
:prgmKNC
:if θ<Y:randint(1,2)>Z
:if θ=Y:randint(2,3)>Z
:if θ>Y:randint(3,4)>Z
:disp θ
:if randint(1,P)=1 and X=0
:then
:disp sub(str1,randint(1,4),1)
:1>X
:else
:disp sub(str1,Z,1
:end
P1>P
:if P!=0
:goto1
:input "guess:", θ
:disp Y
:if θ=Y
:then
:disp "yes! you win!"
:else
:disp"no! fail!"
:end
misc.
UAS 1
Universal Attributes Subroutine 1: KeyNumber conversion
PROGRAM:KNC
:if θ=72:7>θ
:if θ=73:8>θ
:if θ=74:9>θ
:if θ=82:4>θ
:if θ=83:5>θ
:if θ=84:6>θ
:if θ=92:1>θ
:if θ=93:2>θ
:if θ=94:3>θ
:if θ=102:0>θ
Boredom
a really bad, unofficial addition to the series. press 2nd and do nothing else.
PROGRAM:BOREDOM
:disp "BEGINPRESS 2nd"
:0>X
:repeat ans=21
:getkey
:end
:0
:Repeat ans !=0
:X+1>X
:output(8,1,X
:getkey
:end
:disp "DONE!",X
upcoming episodes
Kyros states that he makes the "attributes" games because
I get really bored sometimes. "Luck" and the beginning of "Endurance" began in band after I was done taking a test. "Persistence" was made on the bus when nobody was talking to me.
So, basically, it's never far out of my reach. And because i can!
So, there is no real plan for making a new one soon, although he would like to make "patience" (the original intent of both "endurance" and "boredom") eventually.
return to projects