_________________________________________________________________________
Title: PAX
Version: v1.0
Author: Roy Maclean (r.f.a.maclean@hw.ac.uk)
Size: 586 bytes
Model: 9850+
Description:
Your character appears as the letter 'O'
Using the arrow keys you must move the 'O'
about the screen and clear away the '*'
characters, before the time runs out.
But there is a catch - you must figure
out how to get rid of the '*' characters
- it is not as simple as just going over them.
Also not all of them need to be cleared.
The target figure will appear which tells
you how many can be left behind.
When you've mastered it and can do it before
the time runs out, see how quick you can do it.
============================
screenshot:
===========
O I
*** I
* I
* *I 399
** ***I
* ** I
**** * I 2
============================
As you can see the playing field is
on the left and the timer on the right.
The above picture shows that there
are 399 time units to go and that
you can leave 2 '*'s at the end.
_________________________________________________________________________
Command translation:
-> Single arrow (located on the keyboard)
=> Double arrow (press: [shift] [prgm] [f1] [f1])
_ Display, -Disp- (press: [shift] [prgm] [f4])
<= Less or equal (A <= B)
>= Greater or equal (A >= B)
<> Not equal (A <> B)
^ Raised to the power of
/ Division or fraction (explain which with a comment)
2rt() Root (2rt(7) is the square root of 7)
4rt() 4th root
pi pi (~3.14159265359, low case)
e() e(1) (~2.7818281846, low case)
E Exponent (5E4 gives 5*10^4) (located on the keyboard,
[EXP])
_________________________________________________________________________
Program :
Prog "PAX"
==========
Lbl 0
0->A~Z:ClrText ;zero all variables, clearscreen
0Indentity 7->Mat A ;zero * indentity
For 1->A To 7
Locate 8,A,"I"
Next
For 1->A To 7
For 1->B To 7
A=1=>B=1=>2->B
If Ran#<=.5
Then 1->Mat A[A,B]
1+S->S
Locate B,A,"*" ; '*' is on the sybl menu
If Frac .5A=Frac .5B
Then R+1=>R
Else R-1->R
IfEnd:IfEnd
Next:Next
Locate 16,7,Abs R
400->T:1->X~Y
Lbl 1
Getkey->A
Locate X,Y,"O"
If A=27:Then If X<7
Then Mat A[Y,X+1]->C
Prog "PS"
X+1->X:IfEnd:IfEnd
If A=38:Then If X>1
Then Mat A[Y,X-1]->C
Prog "PS"
X-1->X:IfEnd:IfEnd
If A=28:Then If Y>1
Then Mat A[Y-1,X]->C
Prog "PS"
Y-1->Y:IfEnd:IfEnd
If A=37:Then If Y<7
Then Mat A[Y+1,X]->C
Prog "PS"
Y+1->Y:IfEnd:IfEnd
S<=Abs R=>Goto 2
T=99=>Locate 16,4," " ;three blank spaces
T=9=>Locate 16,4," " ;two blank spaces
Locate 16,4,T
Dsz T:Goto 1
ClrText
"OUT OF TIME"_ ; _ represents |shift|vars|f5|
Goto 0
Lbl 2
ClrText
"WELL DONE"
"TIME LEFT"
T_ ; _ represents |shift|vars|f5|
Goto 0
Prog "PS"
=========
If C=0
Then Locate X,Y,"*"
1->M
Else Locate X,Y," "
0->M
IfEnd:S+2M-1->S
M->Mat A[Y,X]
_________________________________________________________________________