_________________________________________________________________________
Title: Tetris
Version: v1.0
Author: B.Rasmus Anthin (anthin@algonet.se)
Model: 9850 (reccomended 9950)
Description:
PLEASE, READ THE DOCUMENTATION CAREFULLY!
Description:
(Lotsa corrections made since beta-version 2.2).
(Two bugs fixed plus a speed up since ver. 3
! (the speed up can make blocks disappear (I'll maybe fix this in the future))).
! (I'd think that there will always be some bugs in this program. So keep your eyes
open for updates).
(Since ver. 4, now you can turn the blocks in the beginning without getting
Syn Errors. But this has made the game a little little bit slower. I have also fixed
the bug who makes the screen redraw twice when you get Tetris).
! Observe that this documentation has a length of approximately 15 pages!
How to make the dimensions 7 x 21:
Go to the MAT-icon so that the icon becomes highlighted.
Push [EXE].
Write 10.
Push [EXE].
Write 21.
Push [EXE].
Push [MENU].
This game is based on the tetris for Game Boy.
You shall execute the file TETRIS, the game begins with an intro.
After the intro, you have to choose between Game type A or B.
The types are almost like the Game Boy Tetris's.
Type A allows you to play how much as you wish until Game Over occurs.
Type B is limited to 25 rows, and when you have made these 25 rows, you have won.
By enabling "Show next block", you can see which block will be the next one,
(which makes the game a whole lot easier). 1=Yes, 0=No.
After this you have to choose a level between 1 and 9, where 9 is the fastest of
course.
You can pause the game through pushing the [EXE] -key when the calculator redraws
the screen. To continue again, just push [EXE] one more time.
Now, turn your calculator 90 degrees left
so that the arrow keys appears on the upper part of the calculator.
This is a screenshot of the game:
----------
| | ^
| ** | < >
| * | -
| * |
| |
| |
| O xxx |
| O x## |
|OOOO## |
----------
Controls:
Up arrow: turn block.
Left arrow: move block left.
Right arrow: move block right.
When you enable "Show next block" then a picture of next block will appear after each
block who has fallen:
----------
|6 @| ^ the number shows which level you're
| @@| < > playing.
| @ | -
| |
| |
| ** |
| O*xxx |
| O*x## |
|OOOO## |
----------
I havn't limited the game so that the blocks not can move if there already is a
block on the other side of the falling block. The falling block can therefore,
if you want to, be moved over one another block, I maybe will correct this problem
until next version. Next version will maybe contain possibilities as changing hight
in game type B.
When you want to turn the falling block, then through pushing the up-key the block
will turn 90 degrees left for each keypress. If you want the block to turn more than
just 90 degrees, then I would recommand you to hold the button pressed until the
block has turned as you wish.
Precisely like the Game Boy Tetris, a Game Over will occur when the block have
reached over the upper part of the screen.
When you rotate a block, it will rotate 90 degrees left.
xx x x xx
x --> xxx --> x --> xxx --> x a.s.o..
x x xx x
There are totally 7 blocks:
## O xx ** 888 @ H
## O x * 8 @@ HH
O x * @ H
O
There are 4 different scorings for filled rows:
1. simple : 40
2. double : 100
3. triple : 300
4. tetris : 1200
(You also get different points for each block and for each of its position).
--> Be sure that you have set matrix A to the dimensions 7 x 21.
All the spaces that not is sourounded by two (") should be ignored.
(for example: <= >= -> =>).
-> is the assign key.
<= smaller than or equal whith. Shift PRGM, f6, f3, f6
>= bigger than or equal whith. Shift PRGM, f6, f3, f5
=> the basic's "then". Shift PRGM, f3, f3
_ display (don't push exe after this). Shift PRGM, f5
* and # are under the SYBL-menu.
Notate that one column are reserved for menues, the one at the most right side.
(Rows will become columns when you turn your calculator 90 degrees).
If you want to skip the intro, just execute the other file TETMAIN.
All text behind the (') are just comments.
mail@me For any questions, comments, suggestions or bug-reports, then please mail me.
You are also welcome to mail me your highscore result/-s!
I'll maybe make a place in my site for that.
!!! If you haven't already upgraded to this version, then do it NOW!
+++ Comments for upgraders looks something like this: 'Change to this (Beta 2.1).
The most important for you upgraders is that the text is the same on your
calculators as in this file (remove the line under this (beta 2.2.); doesn't mean
that you shall remove the text that is there now).
_________________________________________________________________________
Program :
TETRIS 'Program name
------
Cls
AxesOff
GridOff
LabelOff
For 1 -> A To 20 Step 2
Text A,2," " '5 spaces
Text A+2,2,"###" 'the SYBL menu and f6
Text A+8,8,"#" 'Text: shift f4, f6, f6, f2
Text A+14,8,"#"
Next
For 1 -> A To 25 Step 2
Text A,22," " '5 spaces
Text A+2,22,"###"
Text A+8,22,"## " '2 spaces after the #'s
Text A+14,22,"###"
Next
For 1 -> A To 20 Step 2
Text A,42," " '5 spaces
Text A+2,42,"###"
Text A+8,48,"#"
Text A+14,48,"#"
Next
For 1 -> A To 25 Step 2
Text A,62," " '5 spaces
Text A+2,62,"###"
Text A+8,62,"## " '2 spaces after the #'s
Text A+14,62,"#"
Text A+14,74,"#"
Next
For 1 -> A To 20 Step 2
Text A,82," " '5 spaces
Text A+2,88,"#"
Text A+8,88,"#"
Text A+14,88,"#"
Next
For 1 -> A To 25 Step 2
Text A,102," " '5 spaces
Text A+2,102," " '2 spaces
Text A+2,108,"##"
Text A+8,102," " '2 spaces
Text A+8,108,"# " '2 spaces after the #
Text A+14,102,"## " '2 spaces after the #'s
Next
For 1 -> A To 34
Text 50,A," By:" 'note! 1 space before (By:)
Next
For 1 -> A To 125
Next
Text 50,52,"B. RASMUS ANTHIN"
For 1 -> A To 18
Text 1,1," "
Next
Text 5,30,"PUSH [EXE]"_ '_ = display
ClrText
Prog "TETMAIN" 'shift PRGM, f6, f4, f1
TETMAIN 'Program name
-------
Lbl E 'Add this (ver. 3)
ClrText
"1: TYPE A"
"2: TYPE B"? -> T
ClrText
"SHOW NEXT BLOCK"
"[1/0]"? -> Z ' / : SYBL, f5
ClrText
"LEVEL [1-9]"? -> @ ' @ : theta
ClrText 'Add this (beta 2.1)
100-@*10-10 -> @ ' * : multiplication-symbol
0 -> X
0 -> G
For 1 -> U To 7
For 1 -> V To 21
0->Mat A[U,V]
Next
Next
7 -> B 'Change to this (Beta 2.2)
Lbl A
0 -> E 'Delete the former line (beta 2.1)
0 -> O 'Change to this (Beta 2.2)
0 -> I
0 -> M
If B=0
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E 'shift PRGM, f6, f4, f2
Getkey=37 => Isz E
E=-4 => -3 -> E
E=3 => 2 -> E
For 4 -> F To 5
Locate C,F+E,"## "
Next
E >= -2 => E>H => Locate C,3+E," " '3 spaces
E <= 1 => E Locate C,6+E," " '3 spaces
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 => Goto 0 '<> means not equal.
IfEnd 'Or: OPTN, f6, f6, f4, f2
Next
IfEnd
If B=1
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E 'Change to this (Beta 2.2)
Getkey=37 => Isz E 'Change to this (Beta 2.2)
E <= -4 => -3 -> E
E >= 4 => 3 -> E
Getkey=27 => Isz I
I=2 => 0 -> I
If I=0
Then If O=0 And C<21 'Change to this (ver. 4)
Then E <= 2 => Locate C+1,5+E," " '--------||-------------
E <= 1 => Locate C+1,6+E," " '--------||-------------
E <= 0 =>Locate C+1,7+E," " '--------||-------------
1 -> O 'Add this (Beta 2.2)
IfEnd
Locate C,E+4,"OOOO " 'Remove the former line under this (Beta 2.2)
E >= -2 => E>H => Locate C,3+E," " '5 spaces
E <= 2 => E Locate C,5+E," " '5 spaces
If C>1
Then Mat A[4+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=1
Then E >= 0 => 0 -> E 'Change to this (Beta 2.2)
If O=1 'Remove the two former lines above (Beta 2.2)
Then Isz C
Dsz A
If C<20 'Add this (ver. 4)
Locate C+2,4+E," " '2 spaces
Locate C+2,5+E," "
Locate C+2,6+E," "
Locate C+2,7+E," "
IfEnd 'Add this (ver. 4)
0 -> O 'Add this line (Beta 2.2)
IfEnd
C<21 => E >= -2 => E>H => Locate C+1,3+E," " 'Remove the former line above (Beta 2.2)| Change to this (ver. 4)
Locate C,4+E,"O "
Locate C,5+E,"O "
Locate C,6+E,"O "
Locate C,7+E,"O "
C<21 => E <= -1 => E Locate C+1,8+E," " 'Change to this (ver. 4)
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 Or Mat A[6+E,C-1] <> 0 Or Mat A[7+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
Next
IfEnd
If B=2
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E 'Change to this (Beta 2.2)
Getkey=37 => Isz E 'Change to this (Beta 2.2)
E <= -4 => -3 -> E
E >= 3 => 2 -> E
Getkey=27 => Isz I
I=4 => 0 -> I
If I=0
Then If O=0 And C<21 'Change to this (Beta 2.2)
Then Locate C+1,E+6," " '2 spaces (remove the former line (Beta 2.2))
Locate C+1,E+4," "
1 -> O 'Change to this (Beta 2.2)
IfEnd
C<21 => E>H => Locate C+1,E+4," " 'Change to this (ver. 4)
C<19 => E >= -2 => E>H => Locate C+3,E+3," " '---------||------------
C<21 => E <= 1 => E Locate C+1,E+6," " '---------||------------| 3 spaces
C<20 => Locate C+2,4+E,"x " 'x = multiplication-symbol
Locate C,5+E,"xxx "
If C>1
Then C<21 => Mat A[4+E,C+1] <> 0 => Goto 0
Mat A[5+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=1
Then If O=1 And C<19 'Change to this (ver. 4)
Then Locate C+3,E+5," " 'Remove the former line (Beta 2.2)
Locate C+3,E+4," "
2 -> O 'Add this (Beta 2.2)
IfEnd
E >= 2 => 1 -> E
E >= -2 => E>H => Locate C,E+3," " '3 spaces
C<21 => E <= 0 => E Locate C+1,E+7," " 'Change to this (ver. 4)| 2 spaces
Locate C,E+4,"xx "
C<21 => Locate C+1,E+5,"x " 'Change to this (ver. 4)
C<21 => Locate C+1,E+6,"x " '---------||------------
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C] <> 0 Or Mat A[6+E,C] <> 0 => Goto 0
IfEnd
IfEnd
If I=2
Then O=2 => C<20 => E <= 1 => Locate C+2,E+6," " 'Change to this (ver. 4)
C<21 => E >= -2 => E>H => Locate C+1,E+3," " '---------||------------| 3 spaces
C<21 => E <= 1 => E Locate C+1,E+6," " 'Change to this (ver. 4)
Locate C,E+4,"xxx "
Locate C,E+5,"x "
3 -> O 'Add this (ver. 4)
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=3
Then E >= 1 => 1 -> E 'Change to this, and remove the line under this (Beta 2.2)
C<21 => E >= -2 => E>H => Locate C+1,E+3," " 'Change to this (ver. 4)
C<21 => E <= 0 => E Locate C+1,E+7," " '---------||------------| 2 spaces
O=3 => C<20 => Locate C+2,E+4," " '---------||------------| 2 spaces
0 -> O 'Add this (Beta 2.2)
Locate C,E+4,"x "
Locate C,E+5,"x "
Locate C,E+6,"xx "
If C>1
Then Mat A[E+4,C-1] <> 0 Or Mat A[E+5,C-1] <> 0 Or Mat A[E+6,C-1] <> 0 => Goto 0
IfEnd
IfEnd
Next
IfEnd
If B=3
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E 'Change to this (Beta 2.2)
Getkey=37 => Isz E 'Change to this (Beta 2.2)
E <= -4 => -3 -> E
E >= 3 => 2 -> E
Getkey=27 => Isz I
I=4 => 0 -> I
If I=0
Then If O=0 And C<21 'Change to this and remove the line under this (Beta 2.2)
Then Locate C+1,E+6," " '2 spaces
Locate C+1,E+4," "
1 -> O 'Change to this (Beta 2.2)
IfEnd 'Remove the line under this (Beta 2.2)
C<21 => E >= -2 => E>H => Locate C+1,E+3," " 'Change to this (ver. 4)| 3 spaces
C<19 => E <= 1 => E Locate C+3,E+6," " 'Change to this (ver. 4)
C<21 => E Locate C+1,E+5," " 'Change to this (ver. 4)
C < 20 => Locate C+2,5+E,"* " '* : the SYBL menu and f4
Locate C,4+E,"*** "
If C>1
Then C<21 => Mat A[5+E,C+1] <> 0 => Goto 0
Mat A[4+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=1
Then If O=1 'Change to this and remove the line under this (Beta 2.2)
Then C<20 => Locate C+2,E+4," " 'Change to this (ver. 4)| 2 spaces
C<19 => Locate C+3,E+5," " 'Change to this (ver. 4)
2 -> O 'Add this (Beta 2.2)
IfEnd
E >= 2 => 1 -> E
C<21 => E <= 0 => E Locate C+1,E+7," " 'Change to this (ver. 4)
C<21 => E Locate C+1,E+6," " '---------||------------
C<21 => E >= -2 => E>H => Locate C+1,E+3," " '---------||------------| 2 spaces
Locate C,E+4,"** "
Locate C,E+5,"* "
Locate C,E+6,"* "
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 Or Mat A[6+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=2
Then If O=2 'Change to this (Beta 2.2)
Then C<21 => E <= 1 => Locate C+1,E+6," " 'Change to this (ver. 4)
3 -> O 'Add this (Beta 2.2)
IfEnd
C<21 => E <= 1 => E Locate C+1,E+6," " 'Change to this (ver. 4)| 3 spaces
C<21 => E >= -2 => E>H => Locate C+1,E+3," " 'Change to this (ver. 4)
Locate C,E+4,"* "
Locate C,E+5,"*** "
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=3
Then E >= 1 => 1 -> E 'Change to this and remove the line under this (Beta 2.2)
C<20 => E >= -2 => E>H => Locate C+2,E+3," " 'Change to this (ver. 4)
C<21 => E <= 0 => E Locate C+1,E+7," " '----------||-----------| 2 spaces
O=3 => C<20 => Locate C+2,E+5," " '----------||-----------| 2 spaces
0 -> O 'Add this (Beta 2.2)
C<21 => Locate C+1,E+4,"* " 'Change to this (ver. 4)
C<21 => Locate C+1,E+5,"* " '---------||------------
Locate C,E+6,"** "
If C>1
Then Mat A[E+4,C] <> 0 Or Mat A[E+5,C] <> 0 Or Mat A[E+6,C-1] <> 0 => Goto 0
IfEnd
IfEnd
Next
IfEnd
If B=4
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E
Getkey=37 => Isz E
E <= -4 => -3 -> E
E >= 3 => 2 -> E
Getkey=27 => Isz I
I=4 => 0 -> I
If I=0
Then If O=3 And C<19 'Change to this (ver. 4)
Then Locate C+3,E+5," " '2 spaces
Locate C+3,E+4," "
0 -> O
IfEnd
E >= 2 => 1 -> E
C<20 => E >= -2 => E>H => Locate C+2,E+3," " 'Change to this (ver. 4)
C<20 => E <= 0 => E Locate C+2,E+7," " '---------||------------
C<21 => Locate C+1,E+4,"8 "
Locate C,E+5,"88 "
C<21 => Locate C+1,E+6,"8 "
If C>1
Then Mat A[E+4,C] <> 0 Or Mat A[E+5,C-1] <> 0 Or Mat A[E+6,C] <> 0 => Goto 0
IfEnd
IfEnd
If I=1
Then If O=0 And C<20 'Change to this (ver. 4)
Then Locate C+2,E+6," "
1 -> O
IfEnd
C<21 => E >= -2 => E>H => Locate C+1,E+3," " 'Change to this (ver. 4)| 3 spaces
C<20 => E <= 1 => E Locate C+2,E+6," " 'Change to this (ver. 4)
Locate C,E+4,"888 " 'Remove the former line above (Beta 2.2)
C<21 => Locate C+1,E+5,"8 " 'Change to this (ver. 4)| 2 spaces after the 8
If C>1
Then Mat A[E+4,C-1] <> 0 Or Mat A[5+E,C] <> 0 => Goto 0
IfEnd
IfEnd
If I=2
Then If O=1 And C<19 'Change to this (ver. 4)
Then Locate C+3,E+4," "
2 -> O
IfEnd
E >= 1 => 1 -> E
C<21 => E >= -2 => E>H => Locate C+1,E+3," " 'Change to this (ver. 4)
C<21 => E <= 0 => E Locate C+1,E+7," " 'Change to this (ver. 4)
Locate C,4+E,"8 "
Locate C,5+E,"88 "
Locate C,6+E,"8 "
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 Or Mat A[6+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=3
Then If O=2 And C<21
Then E <= 1 => Locate C+1,6+E," "
3 -> O
IfEnd
C<20 => E >= -2 => E>H => Locate C+2,3+E," " 'Change to this (ver. 4)
C<19 => E>H => Locate C+3,4+E," " '---------||------------
C<21 => E <= 1 => E Locate C+1,6+E," " '---------||------------| 3 spaces
C<21 => Locate C+1,4+E,"8 " '---------||------------| 2 spaces after the 8
Locate C,5+E,"888 "
If C>1
Then Mat A[4+E,C] <> 0 Or Mat A[5+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
Next
IfEnd
If B=5 'New section (Beta 2.2)
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E
Getkey=37 => Isz E
E <= -4 => -3 -> E
E >= 3 => 2 -> E
Getkey=27 => Isz I
I=2 => 0 -> I
If I=0
Then O=0 => C<21 => Locate C+1,E+6," "
1 -> O
E <= -2 => E C<21 => Locate C+1,E+3," " '2 spaces
E <= 1 => E C<20 => Locate C+2,E+6," " '2 spaces
Locate C,4+E,"@@ " '2 spaces after the @'s
C<21 => Locate C+1,5+E,"@@ "
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C] <> 0 => Goto 0
IfEnd
IfEnd
If I=1
Then E >= 1 => 1 -> E
O=1 => E <= 1 => C<19 => Locate C+3,E+5," "
0 -> O
C<20 => E >= -2 => E>H => Locate C+2,E+3," " 'Change to this (ver. 4)
C<21 => E <= 0 => E Locate C+1,E+7," " 'Change to this (ver. 4)
C<21 => Locate C+1,E+4,"@ " 'Change to this (ver. 4)
Locate C,E+5,"@@ "
Locate C,E+6,"@ " '2 spaces after the @
If C>1
Then Mat A[E+4,C] <> 0 Or Mat A[E+5,C-1] <> 0 Or Mat A[E+6,C-1] <> 0 => Goto 0
IfEnd
IfEnd
Next
IfEnd
If B=6
Then For 2 -> A To 22
For 0 -> D To @
Next
23-A -> C
E -> H
Getkey=28 => Dsz E
Getkey=37 => Isz E
E <= -4 => -3 -> E
E >= 3 => 2 -> E
Getkey=27 => Isz I
I=2 => 0 -> I
If I=0
Then O=0 => C<20 => E <= 1 => Locate C+2,E+6," "
1 -> O
E >= -2 => E>H => C<20 => Locate C+2,3+E," " '2 spaces
E <= 1 => E C<21 => Locate C+1,6+E," " '2 spaces
C<21 => Locate C+1,4+E,"HH "
Locate C,5+E,"HH " '2 spaces after the W's
If C>1
Then Mat A[4+E,C] <> 0 Or Mat A[5+E,C-1] <> 0 => Goto 0
IfEnd
IfEnd
If I=1
Then E >= 1 => 1 -> E
O=1 => C<19 => Locate C+3,E+4," "
0 -> O
C<21 => E >= -2 => E>H => Locate C+1,E+3," " 'Change to this (ver. 4)
C<20 => E <= 0 => E Locate C+2,E+7," " '---------||------------
Locate C,4+E,"H " '2 spaces after the W's
Locate C,5+E,"HH "
C<21 => Locate C+1,6+E,"H " 'Change to this (ver. 4)
If C>1
Then Mat A[4+E,C-1] <> 0 Or Mat A[5+E,C-1] <> 0 Or Mat A[6+E,C] <> 0 => Goto 0
IfEnd
IfEnd
Next
IfEnd 'End of the new section (Beta 2.2) But there's more...
Lbl 0
If B=0
Then 3+X -> X
For 0 -> H To 1
For 4 -> F To 5
C+H>21 => Goto @ '@ = theta
1 -> Mat A[F+E,C+H]
Next
Next
IfEnd
If B=1 And I=0
Then 5+X -> X
For 0 -> H To 3
C+H>21 => Goto @
2 -> Mat A[4+E,C+H]
Next
IfEnd
If B=1 And I=1
Then 6+X -> X
For 0 -> H To 3
C>21 => Goto @
2 -> Mat A[4+E+H,C]
Next
IfEnd
If B=2 And I=0
Then 8+X -> X
For 0 -> H To 2
C+2>21 => Goto @ 'change to this (Beta 2.1)
3 -> Mat A[E+4,C+2]
3 -> Mat A[E+5,C+H]
Next
IfEnd
If B=2 And I=1
Then 9+X -> X
For 0 -> H To 2
C+1>21 => Goto @
3 -> Mat A[E+4,C]
3 -> Mat A[E+4+H,C+1]
Next
IfEnd
If B=2 And I=2
Then 7+X -> X
For 0 -> H To 2
C+H>21 => Goto @
3 -> Mat A[E+4,C+H]
3 -> Mat A[E+5,C]
Next
IfEnd
If B=2 And I=3
Then 6+X -> X
For 0 -> H To 2
C+1>21 => Goto @
3 -> Mat A[E+4+H,C]
3 -> Mat A[E+6,C+1]
Next
IfEnd
If B=3 And I=0
Then 8+X -> X
For 0 -> H To 2
C+2>21 => Goto @ 'change to this (beta 2.1)
4 -> Mat A[E+4,C+H]
4 -> Mat A[E+5,C+2]
Next
IfEnd
If B=3 And I=1
Then 6+X -> X
For 0 -> H To 2
C+1>21 => Goto @ 'change to this (beta 2.1)
4 -> Mat A[E+4,C+1]
4 -> Mat A[E+4+H,C]
Next
IfEnd
If B=3 And I=2
Then 7+X -> X
For 0 -> H To 2
C+H>21 => Goto @
4 -> Mat A[E+4,C]
4 -> Mat A[E+5,C+H]
Next
IfEnd
If B=3 And I=3
Then 9+X -> X
For 0 -> H To 2
C+1>21 => Goto @ 'change to this (beta 2.1)
4 -> Mat A[E+6,C]
4 -> Mat A[E+4+H,C+1]
Next
IfEnd
If B=4 And I=0
Then 8+X -> X
For 0 -> H To 2
C+1>21 => Goto @
5 -> Mat A[4+E+H,C+1] change to this (beta 2.2)
5 -> Mat A[5+E,C]
Next
IfEnd
If B=4 And I=1
Then 8+X -> X
For 0 -> H To 2
C+2>21 => Goto @ 'change to this (beta 2.2)
5 -> Mat A[4+E,C+H]
5 -> Mat A[5+E,C+1]
Next
IfEnd
If B=4 And I=2
Then 8+X -> X
For 0 -> H To 2
C+1>21 => Goto @
5 -> Mat A[4+E+H,C]
5 -> Mat A[5+E,C+1]
Next
IfEnd
If B=4 And I=3
Then 8+X -> X
For 0 -> H To 2
C+2>21 => Goto @ 'change to this (beta 2.2)
5 -> Mat A[4+E,C+1]
5 -> Mat A[5+E,C+H]
Next
IfEnd
If B=5 And I=O 'New section (Beta 2.2)
Then 7+X -> X
C+2>21 => Goto @
6 -> Mat A[4+E,C]
6 -> Mat A[4+E,C+1]
6 -> Mat A[5+E,C+1]
6 -> Mat A[5+E,C+2]
IfEnd
If B=5 And I=1
Then 7+X -> X
C+1>21 => Goto @
6 -> Mat A[4+E,C+1]
6 -> Mat A[5+E,C]
6 -> Mat A[5+E,C+1]
6 -> Mat A[6+E,C]
IfEnd
If B=6 And I=0
Then 7+X -> X
C+2>21 => Goto @
7 -> Mat A[4+E,C+1]
7 -> Mat A[4+E,C+2]
7 -> Mat A[5+E,C]
7 -> Mat A[5+E,C+1]
IfEnd
If B=6 And I=1
Then 7+X -> X
C+1>21 => Goto @
7 -> Mat A[4+E,C]
7 -> Mat A[5+E,C]
7 -> Mat A[5+E,C+1]
7 -> Mat A[6+E,C+1]
IfEnd 'End of new secton (Beta 2.2) But there's more...
Int 7Ran# -> B 'Int : OPTN, f6, f4, f2. Ran# : OPTN, f6, f3, f4 (Change this line (Beta 2.2))
If Z=1
Then If B=0 'Remove the former line and add this (Beta 2.2) New section...
Then Locate 21,6,"#"
Locate 20,6,"#"
Locate 21,7,"#"
Locate 20,7,"#"
IfEnd
If B=1
Then Locate 21,7,"O"
Locate 20,7,"O"
Locate 19,7,"O"
Locate 18,7,"O"
IfEnd
If B=2
Then Locate 21,6,"x"
Locate 21,7,"x"
Locate 20,7,"x"
Locate 19,7,"x"
IfEnd
If B=3
Then Locate 21,6,"*"
Locate 21,7,"*"
Locate 20,6,"*"
Locate 19,6,"*"
IfEnd
If B=4
Then Locate 21,5,"8"
Locate 21,6,"8"
Locate 21,7,"8"
Locate 20,6,"8"
IfEnd
If B=5
Then Locate 21,7,"@"
Locate 20,6,"@"
Locate 20,7,"@"
Locate 19,6,"@"
IfEnd
If B=6
Then Locate 21,6,"H"
Locate 20,6,"H"
Locate 20,7,"H"
Locate 19,7,"H"
IfEnd
IfEnd 'End of new section (Beta 2.2)...
G -> S
Locate 21,2,(100-(@+10))/10 '/ = division-symbol (Change to this (Beta 2.2))
For 2 -> A To 21
22-A -> F
0 -> D
For 1 -> C To 7
Mat A[C,F] <> 0 => Isz D
Next
If D=7
Then Isz G
For F -> E To 20
For 1 -> C To 7
Mat A[C,E+1] -> Mat A[C,E]
Next
Next
IfEnd
Next
G-S=1 => 40+X -> X
G-S=2 => 100+X -> X
G-S=3 => 300+X -> X
G-S=4 => 1200+X -> X
If G-S <> 0
Then Locate 9,1," POINTS=" 'Change to this (ver. 4)
Locate 17,1,X
Locate 9,2," ROWS=" 'Change to this (ver. 4)
T=1 => Locate 15,2,G
T=2 => G <= 25 => Locate 15,2,25-G
IfEnd 'Add this (ver. 3)
G-S=4 => Locate 13,4," TETRIS! " 'Change to this and remove the lines under (ver. 4)
T=2 => G >= 25 => Goto r
If G-S <> 0 'Add this (ver. 3)
Then For 1 -> A To 500 'Change to this (ver. 4)
Next 'Add this (ver. 4)
ClrText 'Change to this (ver. 3)
For 1 -> V To 21
For 1 -> U To 7
Getkey=31 => Getkey -> M
Mat A[U,V]=1 => Locate V,U,"#"
Mat A[U,V]=2 => Locate V,U,"O"
Mat A[U,V]=3 => Locate V,U,"x"
Mat A[U,V]=4 => Locate V,U,"*"
Mat A[U,V]=5 => Locate V,U,"8"
Mat A[U,V]=6 => Locate V,U,"@" 'Add this (Beta 2.2)
Mat A[U,V]=7 => Locate V,U,"H" 'Add this (Beta 2.2)
Next
Next
Else Locate 18,7," " 'Add this (ver. 3) (4 spaces)
Locate 19,6," " 'Add this (ver. 3) (3 spaces)
Locare 19,5," " 'Add this (ver. 3) (3 spaces)
IfEnd 'Add this (ver. 3)
0 -> N
While M=31
Getkey -> N
Locate 7,4," PAUSED "
Locate 7,4," PAUSED "
Locate 7,4," PAUSED "
Locate 7,4," " '8 spaces
Locate 7,4," "
N=31 => Break
WhileEnd
Goto A
Lbl @
Locate 6,3," " '11 spaces
Locate 6,4," GAME OVER "
Locate 6,5," " '11 spaces
Do
LpWhile Getkey <> 31
ClrText
Locate 1,1,"TOTAL SCORE="
Locate 14,1,X
Locate 1,2,"ROWS="
Locate 7,2,G
Do 'Add this (ver. 3)
LpWhile Getkey <> 31 'Add this (ver. 3)
Goto E 'Change to this (ver. 3)
Lbl r
AxesOff
GridOff
LabelOff
ClrText
For 1 -> A To 5
Locate 5,4,"YOU WON!!!" '! : OPTN, f6, f3, f4
For 1 -> B To 50
Next
Locate 5,4," " '10 spaces
For 1 -> B To 20
Next
Next
Locate 1,1,"TOTAL SCORE="
Locate 14,1,X
Do
Locate 5,5,"PUSH [EXE]!"
LpWhile Getkey <> 31
If ((100-(@+10))/10)=9
Then Cls
Text 58,40,"(============)" '11 ='s
For 0 -> A To 30 Step 5
Text 53-A,40,"x"
Next
Text 26,44,"---"
For 0 -> C To 80
Text 1,40," " '11 spaces
C<10 => Text 10-C,64,"!"
C<16 => Text 16-C,62,"("
C<16 => Text 16-C,67,")"
C<19 => Text 19-C,63,"-"
For 0 -> A To 30 Step 4
C<22+A => Text 22+A-C,61,"[ ]" '1 space between the [ and ]
Next
C<50 => Text 50-C,57,"<= [ ] >=" 'Change to this (Beta 2.2) | 1 space between the <= [ and ] >=
C<55 => Text 55-C,64,"^" '^ = raised with
C=5 => Text 58,63,"=="
If C<58
Then Orange Text 58-C,63,"W" 'Change to this (Beta 2.2)
Orange Text 58-C,63,"V"
Orange Text 58-C,63,"O"
Orange Text 58-C,63,"M"
Orange Text 58-C,63,"Y"
Orange Text 58-C,63,"U"
Orange Text 58-C,63," " '2 spaces
IfEnd
Next
0 -> C
For 13 -> B To 127 Step 6
Isz C
C=1 => Text 20,B,"C"
C=2 => Text 20,B,"O"
C=3 => Text 20,B,"N"
C=4 => Text 20,B,"G"
C=5 => Text 20,B,"R"
C=6 => Text 20,B,"A"
C=7 => Text 20,B,"T"
C=8 => Text 20,B,"U"
C=9 => Text 20,B,"L"
C=10 => Text 20,B,"A"
C=11 => Text 20,B,"T"
C=12 => Text 20,B,"I"
C=13 => Text 20,B,"O"
C=14 => Text 20,B,"N"
C=15 => Text 20,B,"S"
C=16 => Text 20,B+6,"!"
Text 1,1," "
For 1 -> A To 25
Next
Next
For 1 -> A To 500
Next
0 -> D
Cls
Text 10,30,"GRAPHIC DESIGN:"
Goto D
Lbl B
Cls
Text 10,30,"PROGRAMMING:"
Goto D
Lbl C
Cls
Text 10,30,"IDEAS:"
Lbl D
Isz D
0 -> B
For 1 -> A To 100 Step 5
Isz B
B=1 => Text 18,20+A,"B"
B=2 => Text 18,20+A,"."
B=3 => Text 18,20+A," "
B=4 => Text 18,20+A,"R"
B=5 => Text 18,20+A,"A"
B=6 => Text 18,20+A,"S"
B=7 => Text 18,20+A,"M"
B=8 => Text 18,20+A,"U"
B=9 => Text 18,20+A,"S"
B=10 => Text 18,20+A," "
B=11 => Text 18,20+A,"A"
B=12 => Text 18,20+A,"N"
B=13 => Text 18,20+A,"T"
B=14 => Text 18,20+A,"H"
B=15 => Text 18,20+A,"I"
B=16 => Text 18,20+A,"N"
B=17 => Text 18,20+A,"."
Text 1,1," "
For 1 -> C To 25
Next
Next
For 18 -> A To 127 Step 3
Text 18,A," B. RASMUS ANTHIN."
Next
D=1=> Goto B
D=2=> Goto C
Cls
IfEnd 'Add this (ver. 3)
Do 'Add this (ver. 3)
LpWhile Getkey <> 31 'Add this (ver. 3)
AxesOn 'Add this (ver. 3)
Goto E 'Add this (ver. 3)
_________________________________________________________________________
This Program was downloaded from TRiSTAN's CASIOPAGE at
http://www.webcon.sverige.com/tristan/casio.html