(Comp.sys.handhelds) Item: 3238 by vapsppr at prism.gatech.EDU Author: [Paul Raines] Subj: H. Piper! ver 1.2 (all decimal score!) [NOTE! It's Piper ver 2.0 on the disk; see additional note below. -jkh-] Date: Thu May 23 1991 [Note: Reqires SCHIP, on this disk. -jkh-] Version 1.2 of H. Piper! for SUPER-CHIP follows below. The following changes were made. -- The [ENTER] key will now work to restart the game as if it was just run for the first time. -- I have worked out a way to show the total score in its full decimal glory. It is tricky and gobbles up two registers, but seems to work. -- The bonus for using the whole grid is now 100 points on top of what was earned normally. -- The movement keys can now be held down to move the crosshair long distances. -- Corner pieces are guaranteed for the first four pipes to get out of sticky situations with the starting pipe placement. Checksum for the unASCed program is # 493Eh 1677.5 DISCLAIMER: Since CHIP makes use of undocumented features of the HP48SX, anything happen: loss of data, meltdown, etc. Therefore, I take no responsibility for any damage whatsoever that occurs. **************** H. Piper! ********************** OBJECT: ------- You are presented with a 6 row, 10 column grid and a preview panel of 5 pipes. A starting pipe will be placed on the grid and will in a few seconds start leaking. The object is to lay pipes on the grid to contain the leak as long as you can. If the water flows onto an empty grid site, onto the side of another pipe or border, that plumbing job is finished. If you did well enough, you may get another job. Otherwise the game is over. HOW TO PLAY: ------------ On the bottom and right borders of the grid are grid pointers. The bottom pointer can be moved left with the (1) key and right with the (2) key. The side pointer can be moved up with the (9) key and down with the (6) key. (Note: this is identical to the movement keys for Syzygy by Roy Trevino [on EduCALC Goodies Disk #2 -jkh-]). A crosshair is present on the grid sites the two paddles point to. Using the pointers, chose a grid site to place a pipe. The pipe to be placed is the one at the bottom of the preview column. Once a site is chosen, press the (7) key to place the pipe there. You can replace a pipe already at the grid site with a penalty of one point. You cannot replace a pipe that the water has already flown through. Trying to do this will make you lose the pipe you were trying to place and also penalize you one point. When you have placed all the pipe you wish to for a particular job, you can press the (+) key to make the water flow *FAST*. You can still lay pipe if you realize you made a mistake, but hurry! KEY SUMMARY: Left (1) Right (2) Up (9) Down (6) Place (7) Fast (+) Once a job is over, press (SPACE) to continue. There are ten levels with increasing water flow speed. Level 10's speed is the same as that for *FAST*. If you manage to get through level 10, it repeats at that level till you fail. The starting speed with which the flow comes out of the initial pipe is slower than the usual flow, however this speed increases in level also. SCORING: -------- You receive 3 points for every pipe the water flows through. For the crossed pipes, flowing through them in both directions gives you 6 points. (Note: some adventuresome combinatorist might want to figure out what the maximum possible score is. If it is over 255, there could be a problem, but I doubt it.) You are penalized 1 point for replacing or trying to replace a pipe already on the grid. The current job score is shown in upper right corner. The score can not go negative, so if the score is zero, you can replace pipes without penalty. Once a job is over, the program checks to see if every grid site was flowed through. If so you earn a 100 point bonus. The score earned is added to the grand total and displayed on the screen shown after (SPACE) is pressed. If the game is over, the word OVER will be displayed above the score and the (SPACE) key can be pressed to exit. The total score will be written to user flags so that the user lang program SCORE can put the score on the stack. [Note: See SCORE and SCORE.DOC on this disk. -jkh-] If OVER does not appear, press (SPACE) to go on to the next job. The points needed to go to the next job are obtained by the following formula: Points needed = 100 - (41 - 4 * level) therefore, you need 63 points to go to job 2 67 points to go to job 3 ... 99 points to go to job 11,12,.... The points needed for a level are shown below the bottom right corner of a grid. Note that this does not mean that play ends once that score is achieved. That score is only a minimum needed to have the opportunity to continue on another job. DEVELOPMENT NOTES: ----------------- Pipe Graphics -- As you will probably notice, a lack of color is a big problem in trying to sort out what you have laid out. Having 8x8 pipe bitmaps was a cornerstone of my design so enlarging them for better resolution would be difficult and probably restrict the grid size unduly. Randomness -- Just how random is S-CHIP's random generator? You will probably notice that the cross pipe comes up more often than the others. True. It is twice as likely to be chosen than any of the others. Another design fluke. However, being the one true symmetrical piece, it will be the most useful to get often. [Note: changed in version 2.0, see below. -jkh-] H. Piper! was written using the excellent compiler Chipper. I will make the source available if there is any interest. Be forewarned. I am a pretty sloppy coder. There is much room for improvement in efficiency. ACKNOWLEDGEMENTS: ---------------- CHIP-48 is (C) Copyright 1990 Andreas Gustafsson. - Many, many thanks to the one who started it all. Chipper is (C) Copyright 1990 Christian Egeberg. - It is amazing that with such a great compiler as this, there are so few CHIP games out there. SUPER-CHIP is (C) Copyright 1991 Erik Bryntse - Never be satisfied with limitation. ASC-> is written by William C Wickes. Happy plumbing! -------------------- (Comp.sys.handhelds) Item: 3268 by vapsppr at prism.gatech.EDU Author: [Paul Raines] Subj: H. Piper! ver 2.0 (CURVED CORNERS & RESUME GAME) Date: Fri May 24 1991 Below are both the ASC and UUE versions of H.Piper! 2.0 Changes: - CURVED CORNERS!!! - resume game ability! - most randomness removed RESUME: Between jobs (i.e. while at the dripping faucet wait screen) you can press the decimal (.) key to leave the game and go to the regular calculator mode. The total score and level you achieved will be stored in the user flags so that next time you start the game, you will resume the game as you left it. Do not run the SCORE program or you will lose the resumable state. [See SCORE.DOC on this disk. -jkh-] RANDOM: The starting pipe for the first level is still placed randomly. For subsequent levels, however, the starting pipe is located on the grid site you "leaked" on with the starting direction opposite of that you entered. If you leaked onto the border, then the starting pipe is placed on the site you leaked from. The first five pipes in the queue are selected randomly. Placing a pipe on the grid with the (7) key will still randomly select a new pipe to put at the top of the queue. If you press (4) to place a pipe, the pipe at the top of the queue will be the one currently displayed between the score and level indicators. General Notes: Some people have reported assorted problems with getting the program to work. For those who can't get SCHIP to work with H. Piper, try turning off all alarms and date/clock displays. If any of you have Chipper, you might try compiling the v1.2 source code I posted and see if you can get it to run from there. I am really sorry for all these problems, but I am at a loss to help right now. Development Notes: It is really funny how work involved on each aspect of this last update was inversely proportional to what I expected. The rounded corners were much, much easier to implement than I thought. It does increase the code size by a hefty chunk, but it took little work. The derandomization of the starting pipe was an absolute b:tch. I had to extensively recode several procedures and add some complex testing just to make sure you didn't end up having a starting pipe going into a border. Program Size: I have put a semi-rigid limit of 2K on the size of the program. Any improvement that will put it over that barrier just won't be worth it. (I will of course probably eat these words later.) Everyone please keep me informed on your success in getting this version to run. Also, any comments and suggestions are welcome. Thats it. Enjoy! Paul -- Paul Raines Georgia Institute of Technology, Atlanta Georgia, 30332 uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!vapsppr Internet: vapsppr@prism.gatech.edu