Bingo (The Hacker)

Developer(s): Ralph Hammer
Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Game

Runs a bingo game for “the Hammer Hutch Casino”. The caller draws the numbers 1 to 75 in random order without repeats and shows each with its letter, such as G-50, with a beep; ENTER gives the next call, N starts a new game and Q quits. A second option prints as many bingo cards as you ask for, each with five random numbers per column from the proper range (B 1–15 up to O 61–75), a FREE centre square and an asterisk frame. A third prints a master call sheet listing all 75 numbers under their letters, for marking off calls.

The REM in line 1 reads “BINGO ‘The HACKER’ by RALPH HAMMER for Full Size Printer”. The Hacker was the newsletter of the Timex/Sinclair User Group of Las Vegas, and it ran Bingo as its Program of the Month in September 1991.

Program Analysis

Structure

  • Lines 1–10: colours and the option menu, dispatched with a computed GO TO.
  • Lines 20–85: the caller. y$(75) marks numbers already drawn with an asterisk.
  • Lines 90–225: card printing, one row at a time, with subroutines 300 and 400 for the ruled lines.
  • Lines 500–525: the menu shown after printing. Lines 600–620: the welcome screen. Lines 700–820: the master call sheet.

Notable Techniques

  • Line 10 picks the routine with GO TO 20*(z=1)+90*(z=2)+700*(z=3)+85*(z=4), using the true/false values of the comparisons as 1 and 0.
  • The letter for a number comes from l$(INT (r/15+.95)) with l$="BINGO".
  • Each card column draws from INT (RND*15+(z-1)*15+1) and rejects repeats through the same y$ marker array.

Potential Issues

  • Line 800 reads LPRINT 7 where PAPER 7 was evidently meant, so a stray 7 is printed after the master call sheet.
  • An option number outside 1–4 at the first menu computes GO TO 0 and restarts from the top.
  • The card and call-sheet options need a printer; only the caller works without one.

This program came from an Oliger (JLO SAFE) disk and was converted to load from tape. Line 3’s Oliger printer setup (LET /p=o and POKE 23324,10) was removed and the SAVE / in line 900 became a plain SAVE. It was tested in ZEsarUX.

Appears On

Music with pictures, printer utilities, drawing tools, games and home programs: over fifty programs from the SINCUS library tape that followed tape 103, rescued from disk.

Related Content

Image Gallery

Source Code

    1 REM BINGO 'The HACKER'             by RALPH HAMMER              for Full Size Printer       
    2 BORDER 1: PAPER 6: INK 0
    3 CLS : CLS 
    4 GO TO 600
    6 PRINT AT 2,3;"Welcome to the Bingo Parlor";AT 3,6;"Here are your options";AT 6,4;" 1 - PLAY BINGO";AT 8,4;" 2 - PRINT OUT BINGO CARDS";AT 10,4;" 3 - MASTER CALL SHEET";AT 12,4;" 4 - STOP";AT 20,1;"Enter Option Number (1-4):"
    8 INPUT z: CLS 
   10 GO TO 20*(z=1)+90*(z=2)+700*(z=3)+85*(z=4)
   20 RANDOMIZE 
   25 DIM y$(75)
   30 LET l$="BINGO"
   35 BORDER 3: PAPER 7: CLS : CLS : PRINT AT 2,10;"Bingo Caller";AT 8,6;" CALLING: ";AT 12,6;"Press ENTER for next call";AT 16,3;" N for New Game";AT 18,3;" Q  to Quit"
   40 FOR z=1 TO 75
   50 LET r=INT (RND*75)+1
   55 IF y$(r)="*" THEN GO TO 50
   60 PAUSE 80: PRINT AT 8,17;" ";l$(INT (r/15+.95));"-";r;: BEEP .2,4
   65 LET y$(r)="*"
   70 IF INKEY$="" THEN GO TO 70
   72 IF INKEY$="N" OR INKEY$="n" THEN CLS : GO TO 6
   74 IF INKEY$="Q" OR INKEY$="q" THEN PAUSE 200: CLS : STOP 
   76 PRINT AT 8,18;"         "
   80 NEXT z
   85 CLS : STOP 
   90 PRINT AT 11,1;"HOW MANY CARDS DO YOU WANT?";
   95 INPUT cards: PRINT AT 11,30;cards: PAUSE 80
  100 FOR x=1 TO cards
  102 LPRINT "--------------------------------"
  103 LPRINT ,,,,
  105 LPRINT : LPRINT "    THE HAMMER HUTCH CASINO": LPRINT : LPRINT "   * B  * I  * N  * G  * O  *" 
  110 DIM y$(75)
  115 DIM a(5)
  120 GO SUB 300
  125 FOR y=1 TO 5
  130 GO SUB 400
  135 FOR z=1 TO 5
  140 LET a(z)=INT (RND*15+(z-1)*15+1)
  145 IF y$(a(z))="*" THEN GO TO 140
  150 LET y$(a(z))="*"
  155 NEXT z
  160 IF y=3 THEN LET a(3)=0
  165 LPRINT TAB 3;"*";TAB 5;a(1);TAB 8;"*";TAB 10;a(2);TAB 13;"*";
  170 IF y=3 THEN LPRINT TAB 14;"FREE";
  175 IF y<>3 THEN LPRINT TAB 15;a(3);
  180 LPRINT TAB 18;"*";TAB 20;a(4);TAB 23;"*";TAB 25;a(5);TAB 28;"*"
  185 GO SUB 400
  190 GO SUB 300
  195 NEXT y
  200 FOR z=1 TO 5
  205 LPRINT ,,
  210 NEXT z
  215 NEXT x
  220 CLS 
  225 GO TO 500
  300 LPRINT "   **************************"
  305 RETURN 
  400 LPRINT "   *    *    *    *    *    *   "   
  405 RETURN 
  500 PRINT AT 4,4;"Choose your next Option:";AT 7,6;" 1 - More Cards";AT 9,6;" 2 - Play BINGO";AT 11,6;" 3 - Master Calling Sheet";AT 13,6;" 4 - STOP";AT 20,1;"Enter Option Number (1-4):"
  505 INPUT q$: PRINT AT 20,28;q$
  510 IF q$="1" THEN CLS : GO TO 90
  515 IF q$="2" THEN PAUSE 80: CLS : GO TO 20
  520 IF q$="3" THEN CLS : GO TO 700
  525 IF q$="4" THEN CLS : STOP 
  600 PRINT AT 4,8;"WELCOME TO THE"
  605 FLASH 1: PRINT AT 6,8;" HAMMER HUTCH ";AT 7,8;"    CASINO    ": FLASH 0
  610 PRINT AT 12,0;"COME IN AND SIT IN ONE OF OUR   COMFORTABLE CHAIRS IN OUR BINGO PARLOR.                         PRINT OUT A COUPLE OF CARDS,    GRAB A PEN OR PENCIL, AND HAVE  SOME FUN."
  615 PRINT AT 20,2; INVERSE 1;" Press Any Key to Continue. "     
  620 PAUSE 0: CLS : GO TO 6
  700 BORDER 0: PAPER 7: INK 0
  705 CLS : CLS 
  706 PRINT AT 10,1;"Master Call Sheet now printing"
  708 PRINT ,,,,,,
  710 LPRINT "MASTER CALL SHEET"
  715 LPRINT "--------------------------------"
  720 LPRINT "B"
  722 LPRINT "1  2  3  4  5  6  7  8"
  724 LPRINT "9 10 11 12 13 14 15"
  726 LPRINT "I"
  728 LPRINT "16 17 18 19 20 21 22 23"
  730 LPRINT "24 25 26 27 28 29 30"
  732 LPRINT "N"
  734 LPRINT "31 32 33 34 35 36 37 38"
  736 LPRINT "39 40 41 42 43 44 45"
  738 LPRINT "G"
  740 LPRINT "46 47 48 49 50 51 52 53"
  742 LPRINT "54 55 56 57 58 59 60"
  744 LPRINT "O"
  746 LPRINT "61 62 63 64 65 66 67 68"
  748 LPRINT "69 70 71 72 73 74 75"
  750 LPRINT "--------------------------------"
  755 LPRINT ,,,,,,,,
  800 BORDER 0: LPRINT 7: INK 0
  810 CLS : CLS 
  820 GO TO 6
  900 SAVE "BINGOfsp" LINE 1: BEEP .75,12: BEEP .47,8
  999 STOP

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.