akcs.falco@hpcvbbs.UUCP (Andrey Dolgachev) (03/15/91)
O.K., the last posting of Tetris2 had a problem with one or both of the
PIC files. Therefore, I have posted an update and bug fix. From now on,
I will simply ASC the GROB's, that should make it easier, and so I ASC'd
the two GROB"s and they're in this post. The other thing I did is to
make it possible for the user to choose which kinds of dissolves are
wanted. The variable DLST contains a list of 3 numbers. The first
number refers to the beginning, the second to the high-score display, and
the last to the return to the stack. At each of these stages, 3 things
are possible. If a 0 is in that position in the list, then no dissolve
will happen, it will instantly goes to the next screen. If a 1 is in
that position, then a bit-wise dissolve takes place. If a 2 is in that
position, then a tiling effect dissolve will take place. The default is
{1 1 1} and the variable DLST is the first in the second row of the
TETRIS2 VAR menu (after you press SETUP). O.K., follow these steps:
1) Download the following to your computer.
2) Now do either the a or the b steps, with a being easeir (for me)
3a) Paste the files from the following into your previous TETRIS2
posting. Only copy the actual programs from the following directory, and
put them between any of the other files.
4a) Erase the programs which have the same names as the ones that you
just pasted into TETRIS2, the old ones that is.
5a) Download into your 48, press SETUP and voila.
3b) Erase the two files PIC1 and PIC2 from your previous posting of
Tetris2.
4b) Download both postings of Tetris2, this one and the one you just
edited.
5b) Replace the corresponding programs from the old postings with the
ones from the new one and also put the completely new programs into the
Tetris2 directory. Press SETUP and voila.
O.K. That's it, I checked everything and I'll check the actual posting
after I finished. Hpefully, this will all come together. Now, an
additional thought. SETUP strips, or takes away the << and >> from each
program which has its name in TLIST. The stripping saves 5 bytes per
program, which is nice, but it also means that you cannot edit the
program on the 48. You can send it to your computer in text mode, but
you can not reveive a stripped program in text mode, unless you put the
<< and >>'s in front and in back of each program. If you do not want the
progrmas to be stripped, simply take whatever programs you don't want
stripped out of the TLIST listk, making sure that you at least leave the
{ } in the variable. SETUP just strips the TLIST programs , ASC->'s the
ML and grobs, and orders everything. O.K., that's it, please give me
feedback on the progra, experiment with the diff. dissolving screens, and
tell me what you would like to see on a future version of Tetris. BTW,
call the file TETRIS2, and refer to this version as Tetris2.1.
--------------------cut here-----------------
%%HP: T(3)A(D)F(.);
DIR
SETUP
\<<
IF XFIG ASC\->
DEPTH 2 ==
THEN
"PLEASE PUT ASC\-> IN
OR ABOVE THIS DIR."
1 DISP INFLP DROP2
ELSE TLIST 1
1 TLIST SIZE
START GETI
DUP RCL STRIP SWAP
STO
NEXT DROP2
'XFIG' STO TFIG
ASC\-> 'TFIG' STO
DISS ASC\-> 'DISS'
STO PIC1 ASC\->
'PIC1' STO PIC2
ASC\-> 'PIC2' STO {
start RESU ABOUT
HELP HIGH Erase
DLST XFIG TFIG DISS
PIC1 PIC2 } ORDER {
TLIST STRIP SETUP }
PURGE
END
\>>
TLIST { start
RESU ABOUT HELP
HIGH DRHI DISER
Erase TETRIS INFLP
delay HI DRSC FIN
CHHS SHNP ADDL ADDP
FULL MKSCR MSIDE
RK2 P2 PACK ROTF
TLIN }
start
\<< LCD\-> RCLF
SWAP DEPTH 'L' STO
IFERR TETRIS
THEN
END "" 3 DISP
DEPTH L - DROPN 3
DISER STOF "" 'SAV'
STO
\>>
DLST { 1 1 1 }
DISER
\<< DLST SWAP GET
IF DUP 0 ==
THEN DROP
ERASE PICT SWAP {
# 0h # 0h } SWAP
REPL
ELSE 1 - SWAP
DISS
END
\>>
PIC1
"E1B20FF0008100022000FFFFFF3000FFFFFF3000308300300010830020000083
0000000083000000008300000000830000000083000000008300000000830000
0000830000000083000000008300000000830000000083EFCF3000836CC63000
8368462000836006000083E706000083600600008368060000836C060000C7EF
0F00D0FE"
PIC2
"E1B20FF000810002200000008FFF3000008FFF30000083003000008100200000
8100000000810000000081000000008100000000810000000081000000008100
00000087000000008FFF300000000C300000000030E7E700003036C300003016
810000303681000030E7810000308681800030C68181083066C38FFF3037E78F
FF3002D5"
HIGH
\<< LCD\-> DUP PICT
SWAP { # 0h # 0h }
SWAP REPL { # 0h
# 0h } PVIEW DRHI 3
DISER
\>>
DRHI
\<< -.8 1.9 -6
-2.5 4.5 \-> N Y X1
X2 X3
\<< # 83h # 40h
BLANK "HIGH SCORES"
3 \->GROB (-3.2,3.1)
SWAP REPL "SCORE"
-6.3 Y DRSC "NAME"
-1.1 Y DRSC "LINES"
3.5 Y DRSC 1 5 -.2
'Y' STO+
FOR I N 'Y'
STO+ SCORES I GET
LIST\-> DROP 4 ROLL
SWAP X3 Y DRSC SWAP
X2 Y DRSC SWAP X1 Y
DRSC
NEXT 2
DISER INFLP
\>>
\>>
MKSCR
\<< DUP ERASE
PICT { # 5Bh # 26h
} PIC2 REPL
(-6.5,3.2)
(6.5,-3.1) BOX
(-2.2,3.2)
(1.9,-2.8) BOX
(-6.5,1.8)
(6.5,1.6) BOX 1.5
1.1
FOR I -6.5 I
R\->C 6.5 I .1 - R\->C
BOX -.2
STEP PICT {
# 3h # 26h } PIC1
REPL PICT { # 2Ch
# 0h } # 28h # 3Ch
BLANK REPL PICT {
# 5Fh # 2h }
"LINES :" 1 \->GROB
REPL PICT { # 2h
# 2h } "SCORE :" 1
\->GROB REPL PICT {
# 7h # 1Ch }
"NEXT :" 1 \->GROB
REPL PICT RCL SWAP
PICT SWAP { # 0h
# 0h } SWAP REPL {
# 0h # 0h } PVIEW 1
DISER
\>>
END
akcs.falco@hpcvbbs.UUCP (Andrey Dolgachev) (03/15/91)
O.K., I checked the above, and d/l it into my comp and HP, and it works fine. Have fun all, ---Falco
ervin@pinbot.enet.dec.com (Joseph James Ervin) (03/15/91)
Andrey, Thank you for the work you have done on TETRIS. This game is one of the truely fun games for the HP48SX. Also, I think your idea regarding using the DLIST for selecting the type of screen dissolves was a good one. However, I must respond to your recent TETRIS2.1 UPDATE post in C.S.H. Basically, I think the code in your post is good, and the right thing to do, but I think the format you chose to distribute this code (using an update procedure in which the user has to follow several steps) is prone to user-error, and will probably lead to more user "download" confusion and problems in general. To be honest, the first time I read through your post, I had no idea what I was supposed to do. It wasn't until the third reading that it started to make sense. For example: > 1) Download the following to your computer. > 2) Now do either the a or the b steps, with a being easeir (for me) Requiring the user to choose between multiple sets of instructions is dangerous, especially when they will be deleting sections of code. > 3a) Paste the files from the following into your previous TETRIS2 > posting. Only copy the actual programs from the following directory, > and put them between any of the other files. > 4a) Erase the programs which have the same names as the ones that > you just pasted into TETRIS2, the old ones that is. This requires entirely too much work on the part of the casual user in my opinion. The opportunities for errors here are intense. Also, once you require the user to edit the source listing, you have lost control over the code. Anything is possible at this point. > 3b) Erase the two files PIC1 and PIC2 from your previous posting of >Tetris2. > 4b) Download both postings of Tetris2, this one and the one you just >edited. > 5b) Replace the corresponding programs from the old postings with the >ones from the new one and also put the completely new programs into >the >Tetris2 directory. Press SETUP and voila. This also requires the user to edit the sources, and in my mind is also a poor solution. >BTW, call the file TETRIS2, and refer to this version as Tetris2.1. When you say "call the file TETRIS2", do you mean the filename on my PC, or on the HP48? If you mean the filename on the HP48, then I'm confused since you are only supplying a few of the routines in this posting. What am I supposed to name "TETRIS2" ?? When you say "refer to this version as Tetris2.1", I'm not sure what you mean. The whole reason for appending a version number to a program's filename, like TETRIS2, is so you can identify the version. If you distribute the update, and tell people to still store it as TETRIS2, but then tell them that the version is actually TETRIS2.1, they are going to be very confused. I'm confused already. Please do not misunderstand. I appreciate you're effort, but it pains me to think of how many users will never get version 2.1 of tetris running because of the difficulty of doing this update procedure. In my opinion, when you change the code, the "best" thing to do is to simply post the new version. I still do not understand why you do not simply post the ASC version of the whole program. Is there some reason why this is not possible? There has been a tremendous amount of confusion in this conference regarding which version of TETRIS is the most recent, and how to get this version. I believe that your update post is only going to add to that confusion. I pity latecomers to this conference who will be trying to get the latest version of TETRIS in the coming weeks. Please put an end to this confusion by reposting version 2.1 in ASC format, and please clearly label the post as being the official post of version 2.1 of TETRIS. Humbly yours, >>>Joe Ervin
akcs.falco@hpcvbbs.UUCP (Andrey Dolgachev) (03/16/91)
Thanks for your opinion Joe, you are correct, the update is not the best thing to do, but I didn't have the time to post the whole thing. I will post the whole Tetris2.1 again as soon as possible. I'll try for tonite, but I doubt it, otherwise, I can't post it till late Saturday eve. That's why I decided that I should put the update up as soon as possible. As for the complex procedure, your're right it sucks, but again, I don't have the time to do anything else yet. The connection I had was really bad and as it is I had to split the Update into 4 r 5 sections to post it up, becasue the board kept on suddenly stopping receiving the file, forcing me to start again. As for the version and naming Tetris, Tetris2, I call it Tetris2 on my 48, becasue I don't want to have a large filename, and I don't want it to be confused with Etetris2.0 or tetris2.1 or Tetris2.2 which is what the computer or calc's do if you already have that filename. If you want to live with having your Tetris game being called Tetris2.1.0 or whatever, that's obviously your choice. However, the about command contains the real version number. The user can always change the name of the program, and that's not a good way to keep track of the version number on a 48. The reason I called it Tetris2 is because there has to be a difference between the names of the smalltetris and the large Tetris. The version number of 2.1 is the one that should always be used when you refer to anything about the program. When I post the Tetris2.1 again, I will be sure to clarify what version it is. The reason I did not ASC the entire file is because it would then be over 13k in length which is getting pretty large. Also, ASC'ing and UnAsc'ing a 13k file takes a lot of time and memory. It also takes longer to d/l and u/l and to transfer to your HP. However, I might do it anyways, since it would help in the corruption problems. Anyways, thanks for your input JOe, I prefer it over people complaining about my post to themselves and not d/ling it. I will post the final Tetris2.1 version as soon as I can. ---Falco
ruhtra@turing.toronto.edu (Arthur Tateishi) (03/17/91)
In article <959@sousa.enet.dec.com> ervin@pinbot.enet.dec.com (Joseph James Ervin) writes: >Andrey, > >Thank you for the work you have done on TETRIS. This game is one of the >truely fun games for the HP48SX. Very true. >Basically, I think the code in your post is good, and the right thing to >do, but I think the format you chose to distribute this code (using an >update procedure in which the user has to follow several steps) is prone >to user-error, and will probably lead to more user "download" confusion >and problems in general. This is true. Patch procedures are always risky. >In my opinion, when you change the code, the "best" thing to do is to >simply post the new version. I still do not understand why you do not >simply post the ASC version of the whole program. Is there some reason >why this is not possible? I'll give you a very good reason why it is inadvisable to post as one big ASC version. Size. If I didn't have my CMT card, I would not be able to download it. Personally, I'd rather see a uuencoded binary version. Before I got my RAM card, I had about 6-7k free usually. Tetris is now about 8700 bytes. I guess people in those situations should stick with smtetris anyway, but would you be able to resist all the accolades about DISS within TETRIS? The thing I could never understand was that removing linefeeds from big GROBs was rarely mentioned. Making these ASC format will help things a lot. -- Red Alert. -- Q, "Deja Q", stardate 43539.1 Arthur Tateishi g9ruhtra@zero.cdf.utoronto.edu
frechett@spot.Colorado.EDU (-=Runaway Daemon=-) (03/17/91)
Everyone has no mentioned that puting tetris in ASC format makes it big like 14K but nobody has mentioned the real reason why that is a pain in the ass for people without extra memory. Here is a question for you.. If I have 20K available, could I download a 14K asc encoded file? Nope. When it tries to download it apears to make a full copy of ascii files so that you literally need twice the memory. To download tetris you would need 28K available, which it is very doubtful that many people have. Of course with some extra memory the problem doesn't happen.. I haven't even touched my second 128K card yet.. :) ian -=Runaway Daemon=-
akcs.falco@hpcvbbs.UUCP (Andrey Dolgachev) (03/18/91)
Exactly, you do need 28K available to d/l Tetris. I did ASC it anyways and you can d/l it if (the big if) you have a calc with that much memory. That means, if you don't have a RAM-card, time to press those three keys and d/l ASC and TETRIS. However, once you've done that, and after you restored your memory, you can u/l and d.l in binary w/o a problem. Somebody also posted the uuencoded version of my Tetris, so that is also a alternative. If people post post problems with not being able to d/l TETRIS because of memory problems, I might be convinced to do a non ASC version again, though it is a big pain, especially with this board. And I'll see if I can't try putting it up on a ftp. ---Falco