¡¡¡¡ ×Ö´®2 ×Ö´®6 ×Ö´®4 ×Ö´®6 ×Ö´®9 ×Ö´®7 ×Ö´®7 ×Ö´®3 ×Ö´®9'
'¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Q B a s i c¡¡ N i b b l e s
'
'¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Copyright (C) Microsoft Corporation 1990
'
' Nibbles is a game for one or two players.¡¡Navigate your snakes
' around the game board trying to eat up numbers while avoiding
' running into walls or other snakes.¡¡The more numbers you eat up,
' the more points you gain and the longer your snake becomes.
'
' To run this game, press Shift F5.
'
' To exit QBasic, press Alt, F, X.
'
' To get help on a BASIC keyword, move the cursor to the keyword and press
' F1 or click the right mouse button.
'
'Set default data type to integer for faster game play
DEFINT A-Z
'User-defined TYPEs
TYPE snakeBody
¡¡¡¡row AS INTEGER
¡¡¡¡col AS INTEGER
END TYPE
'This type defines the player's snake
TYPE snaketype
¡¡¡¡head¡¡¡¡¡¡AS INTEGER
¡¡¡¡length¡¡¡¡AS INTEGER
¡¡¡¡row¡¡¡¡¡¡ AS INTEGER ×Ö´®3
¡¡¡¡col¡¡¡¡¡¡ AS INTEGER
¡¡¡¡direction AS INTEGER
¡¡¡¡lives¡¡¡¡ AS INTEGER
¡¡¡¡score¡¡¡¡ AS INTEGER
¡¡¡¡scolor¡¡¡¡AS INTEGER
¡¡¡¡alive¡¡¡¡ AS INTEGER
END TYPE
'This type is used to represent the playing screen in memory
'It is used to simulate graphics in text mode, and has some interesting,
'and slightly advanced methods to increasing the speed of operation.
'Instead of the normal 80x25 text graphics using chr$(219) "?, we will be
'using chr$(220)"? and chr$(223) "? and chr$(219) "? to mimic an 80x50
'pixel screen.
'Check out sub-programs SET and POINTISTHERE to see how this is implemented
'feel free to copy these (as well as arenaType and the DIM ARENA stmt and the
'initialization code in the DrawScreen subprogram) and use them in your own
'programs
TYPE arenaType
¡¡¡¡realRow¡¡¡¡ AS INTEGER¡¡¡¡¡¡¡¡'Maps the 80x50 point into the real 80x25
¡¡¡¡acolor¡¡¡¡¡¡AS INTEGER¡¡¡¡¡¡¡¡'Stores the current color of the point ×Ö´®8
¡¡¡¡sister¡¡¡¡¡¡AS INTEGER¡¡¡¡¡¡¡¡'Each char has 2 points in it.¡¡.SISTER is
END TYPE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'-1 if sister point is above, 1 if below
'Sub Declarations
DECLARE SUB SpacePause (text$)
DECLARE SUB PrintScore (NumPlayers%, score1%, score2%, lives1%, lives2%)
DECLARE SUB Intro ()
DECLARE SUB GetInputs (NumPlayers, speed, diff$, monitor$)
DECLARE SUB DrawScreen ()
DECLARE SUB PlayNibbles (NumPlayers, speed, diff$)
DECLARE SUB Set (row, col, acolor)
DECLARE SUB Center (row, text$)
DECLARE SUB DoIntro ()
DECLARE SUB Initialize ()
DECLARE SUB SparklePause ()
DECLARE SUB Level (WhatToDO, sammy() AS snaketype)
DECLARE SUB InitColors ()
DECLARE SUB EraseSnake (snake() AS ANY, snakeBod() AS ANY, snakeNum%)
DECLARE FUNCTION StillWantsToPlay ()
DECLARE FUNCTION PointIsThere (row, col, backColor)
'Constants
CONST TRUE = -1
CONST FALSE = NOT TRUE
CONST MAXSNAKELENGTH = 1000
CONST STARTOVER = 1¡¡¡¡¡¡¡¡¡¡¡¡ ' Parameters to 'Level' SUB ×Ö´®9
CONST SAMELEVEL = 2
CONST NEXTLEVEL = 3
'Global Variables
DIM SHARED arena(1 TO 50, 1 TO 80) AS arenaType
DIM SHARED curLevel, colorTable(10)
RANDOMIZE TIMER
¡¡¡¡GOSUB ClearKeyLocks
¡¡¡¡Intro
¡¡¡¡GetInputs NumPlayers, speed, diff$, monitor$
¡¡¡¡GOSUB SetColors
¡¡¡¡DrawScreen
DO
¡¡¡¡¡¡PlayNibbles NumPlayers, speed, diff$
¡¡¡¡LOOP WHILE StillWantsToPlay
GOSUB RestoreKeyLocks
¡¡¡¡COLOR 15, 0
¡¡¡¡CLS
END
ClearKeyLocks:
¡¡¡¡DEF SEG = 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ' Turn off CapLock, NumLock and ScrollLock
¡¡¡¡KeyFlags = PEEK(1047)
¡¡¡¡POKE 1047, &H0
¡¡¡¡DEF SEG
¡¡¡¡RETURN
RestoreKeyLocks:
¡¡¡¡DEF SEG = 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ' Restore CapLock, NumLock and ScrollLock states
¡¡¡¡POKE 1047, KeyFlags
¡¡¡¡DEF SEG
¡¡¡¡RETURN
SetColors:
¡¡¡¡IF monitor$ = "M" THEN
¡¡¡¡¡¡¡¡RESTORE mono
¡¡¡¡ELSE
¡¡¡¡¡¡¡¡RESTORE normal
¡¡¡¡END IF
FOR a = 1 TO 6
¡¡¡¡¡¡¡¡READ colorTable(a)
¡¡¡¡NEXT a
¡¡¡¡RETURN
'snake1¡¡¡¡ snake2¡¡ Walls¡¡Background¡¡Dialogs-Fore¡¡Back
mono:¡¡ DATA 15,¡¡¡¡¡¡¡¡ 7,¡¡¡¡¡¡ 7,¡¡¡¡ 0,¡¡¡¡¡¡¡¡¡¡15,¡¡¡¡¡¡¡¡¡¡¡¡0
normal: DATA 14,¡¡¡¡¡¡¡¡ 13,¡¡¡¡¡¡12,¡¡¡¡1,¡¡¡¡¡¡¡¡¡¡15,¡¡¡¡¡¡¡¡¡¡¡¡4
END
'Center:
'¡¡Centers text on given row
SUB Center (row, text$)
¡¡¡¡LOCATE row, 41 - LEN(text$) / 2
¡¡¡¡PRINT text$;
END SUB
'DrawScreen:
'¡¡Draws playing field
SUB DrawScreen
'initialize screen
¡¡¡¡VIEW PRINT
¡¡¡¡COLOR colorTable(1), colorTable(4)
¡¡¡¡CLS
'Print title & message
¡¡¡¡Center 1, "Nibbles!"
¡¡¡¡Center 11, "Initializing Playing Field..."
¡¡¡¡
¡¡¡¡'Initialize arena array
¡¡¡¡FOR row = 1 TO 50
¡¡¡¡¡¡¡¡FOR col = 1 TO 80
¡¡¡¡¡¡¡¡¡¡¡¡arena(row, col).realRow = INT((row 1) / 2)
¡¡¡¡¡¡¡¡¡¡¡¡arena(row, col).sister = (row MOD 2) * 2 - 1
¡¡¡¡¡¡¡¡NEXT col
¡¡¡¡NEXT row
END SUB
'EraseSnake:
'¡¡Erases snake to facilitate moving through playing field
SUB EraseSnake (snake() AS snaketype, snakeBod() AS snakeBody, snakeNum)
FOR c = 0 TO 9
¡¡¡¡¡¡¡¡FOR b = snake(snakeNum).length - c TO 0 STEP -10 ×Ö´®7
¡¡¡¡¡¡¡¡¡¡¡¡tail = (snake(snakeNum).head MAXSNAKELENGTH - b) MOD MAXSNAKELENGTH
¡¡¡¡¡¡¡¡¡¡¡¡Set snakeBod(tail, snakeNum).row, snakeBod(tail, snakeNum).col, colorTable(4)
¡¡¡¡¡¡¡¡NEXT b
¡¡¡¡NEXT c
¡¡¡¡
END SUB
'GetInputs:
'¡¡Gets player inputs
SUB GetInputs (NumPlayers, speed, diff$, monitor$)
COLOR 7, 0
¡¡¡¡CLS
DO
¡¡¡¡¡¡¡¡LOCATE 5, 47: PRINT SPACE$(34);
¡¡¡¡¡¡¡¡LOCATE 5, 20
¡¡¡¡¡¡¡¡INPUT "How many players (1 or 2)"; num$
¡¡¡¡LOOP UNTIL VAL(num$) = 1 OR VAL(num$) = 2
¡¡¡¡NumPlayers = VAL(num$)
LOCATE 8, 21: PRINT "Skill level (1 to 100)"
¡¡¡¡LOCATE 9, 22: PRINT "1¡¡ = Novice"
¡¡¡¡LOCATE 10, 22: PRINT "90¡¡= Expert"
¡¡¡¡LOCATE 11, 22: PRINT "100 = Twiddle Fingers"
¡¡¡¡LOCATE 12, 15: PRINT "(Computer speed may affect your skill level)"
¡¡¡¡DO
¡¡¡¡¡¡¡¡LOCATE 8, 44: PRINT SPACE$(35);
¡¡¡¡¡¡¡¡LOCATE 8, 43
¡¡¡¡¡¡¡¡INPUT gamespeed$
¡¡¡¡LOOP UNTIL VAL(gamespeed$) >= 1 AND VAL(gamespeed$) <= 100
¡¡¡¡speed = VAL(gamespeed$)
¡¡
¡¡¡¡speed = (100 - speed) * 2 1
DO
¡¡¡¡¡¡¡¡LOCATE 15, 56: PRINT SPACE$(25);
¡¡¡¡¡¡¡¡LOCATE 15, 15
¡¡¡¡¡¡¡¡INPUT "Increase game speed during play (Y or N)"; diff$
¡¡¡¡¡¡¡¡diff$ = UCASE$(diff$)
¡¡¡¡LOOP UNTIL diff$ = "Y" OR diff$ = "N"
DO
¡¡¡¡¡¡¡¡LOCATE 17, 46: PRINT SPACE$(34);
¡¡¡¡¡¡¡¡LOCATE 17, 17
¡¡¡¡¡¡¡¡INPUT "Monochrome or color monitor (M or C)"; monitor$
¡¡¡¡¡¡¡¡monitor$ = UCASE$(monitor$)
¡¡¡¡LOOP UNTIL monitor$ = "M" OR monitor$ = "C"
startTime# = TIMER¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡' Calculate speed of system
¡¡¡¡FOR i# = 1 TO 1000: NEXT i#¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ' and do some compensation
¡¡¡¡stopTime# = TIMER
¡¡¡¡speed = speed * .5 / (stopTime# - startTime#)
END SUB
'InitColors:
'Initializes playing field colors
SUB InitColors
¡¡¡¡
¡¡¡¡FOR row = 1 TO 50
¡¡¡¡¡¡¡¡FOR col = 1 TO 80
¡¡¡¡¡¡¡¡¡¡¡¡arena(row, col).acolor = colorTable(4)
¡¡¡¡¡¡¡¡NEXT col
¡¡¡¡NEXT row
CLS
¡¡
¡¡¡¡'Set (turn on) pixels for screen border
¡¡¡¡FOR col = 1 TO 80
¡¡¡¡¡¡¡¡Set 3, col, colorTable(3)
¡¡¡¡¡¡¡¡Set 50, col, colorTable(3)
¡¡¡¡NEXT col
FOR row = 4 TO 49
¡¡¡¡¡¡¡¡Set row, 1, colorTable(3)
¡¡¡¡¡¡¡¡Set row, 80, colorTable(3)
¡¡¡¡NEXT row
END SUB
'Intro:
'¡¡Displays game introduction
SUB Intro
¡¡¡¡SCREEN 0
¡¡¡¡WIDTH 80, 25
¡¡¡¡COLOR 15, 0
¡¡¡¡CLS
Center 4, "Q B a s i c¡¡ N i b b l e s"
¡¡¡¡COLOR 7
¡¡¡¡Center 6, "Copyright (C) Microsoft Corporation 1990"
¡¡¡¡Center 8, "Nibbles is a game for one or two players.¡¡Navigate your snakes"
¡¡¡¡Center 9, "around the game board trying to eat up numbers while avoiding"
¡¡¡¡Center 10, "running into walls or other snakes.¡¡The more numbers you eat up,"
¡¡¡¡Center 11, "the more points you gain and the longer your snake becomes."
¡¡¡¡Center 13, " Game Controls "
¡¡¡¡Center 15, "¡¡General¡¡¡¡¡¡¡¡¡¡¡¡ Player 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Player 2¡¡¡¡"
¡¡¡¡Center 16, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡(Up)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ (Up)¡¡¡¡¡¡"
¡¡¡¡Center 17, "P - Pause¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡" CHR$(24) "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡W¡¡¡¡¡¡ "
¡¡¡¡Center 18, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ (Left) " CHR$(27) "¡¡ " CHR$(26) " (Right)¡¡ (Left) A¡¡ D (Right)¡¡"
¡¡¡¡Center 19, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ " CHR$(25) "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡S¡¡¡¡¡¡ "
¡¡¡¡Center 20, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ (Down)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ (Down)¡¡¡¡ "
¡¡¡¡Center 24, "Press any key to continue"
PLAY "MBT160O1L8CDEDCDL4ECC"
¡¡¡¡SparklePause
END SUB
'Level:
'Sets game level
SUB Level (WhatToDO, sammy() AS snaketype) STATIC
¡¡¡¡
¡¡¡¡SELECT CASE (WhatToDO)
CASE STARTOVER
¡¡¡¡¡¡¡¡curLevel = 1
¡¡¡¡CASE NEXTLEVEL
¡¡¡¡¡¡¡¡curLevel = curLevel 1
¡¡¡¡END SELECT
sammy(1).head = 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 'Initialize Snakes
¡¡¡¡sammy(1).length = 2
¡¡¡¡sammy(1).alive = TRUE
¡¡¡¡sammy(2).head = 1
¡¡¡¡sammy(2).length = 2
¡¡¡¡sammy(2).alive = TRUE
InitColors
¡¡¡¡
¡¡¡¡SELECT CASE curLevel
¡¡¡¡CASE 1
¡¡¡¡¡¡¡¡sammy(1).row = 25: sammy(2).row = 25
¡¡¡¡¡¡¡¡sammy(1).col = 50: sammy(2).col = 30
¡¡¡¡¡¡¡¡sammy(1).direction = 4: sammy(2).direction = 3
¡¡¡¡CASE 2
¡¡¡¡¡¡¡¡FOR i = 20 TO 60
¡¡¡¡¡¡¡¡¡¡¡¡Set 25, i, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 7: sammy(2).row = 43
¡¡¡¡¡¡¡¡sammy(1).col = 60: sammy(2).col = 20
¡¡¡¡¡¡¡¡sammy(1).direction = 3: sammy(2).direction = 4
CASE 3
¡¡¡¡¡¡¡¡FOR i = 10 TO 40
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 20, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 60, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 25: sammy(2).row = 25
¡¡¡¡¡¡¡¡sammy(1).col = 50: sammy(2).col = 30
¡¡¡¡¡¡¡¡sammy(1).direction = 1: sammy(2).direction = 2
CASE 4
¡¡¡¡¡¡¡¡FOR i = 4 TO 30
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 20, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set 53 - i, 60, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡FOR i = 2 TO 40
¡¡¡¡¡¡¡¡¡¡¡¡Set 38, i, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set 15, 81 - i, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 7: sammy(2).row = 43
¡¡¡¡¡¡¡¡sammy(1).col = 60: sammy(2).col = 20
¡¡¡¡¡¡¡¡sammy(1).direction = 3: sammy(2).direction = 4
¡¡
¡¡¡¡CASE 5
¡¡¡¡¡¡¡¡FOR i = 13 TO 39
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 21, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 59, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡FOR i = 23 TO 57
¡¡¡¡¡¡¡¡¡¡¡¡Set 11, i, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set 41, i, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 25: sammy(2).row = 25
¡¡¡¡¡¡¡¡sammy(1).col = 50: sammy(2).col = 30
¡¡¡¡¡¡¡¡sammy(1).direction = 1: sammy(2).direction = 2
CASE 6
¡¡¡¡¡¡¡¡FOR i = 4 TO 49
¡¡¡¡¡¡¡¡¡¡¡¡IF i > 30 OR i < 23 THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 10, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 20, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 30, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 40, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 50, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 60, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set i, 70, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 7: sammy(2).row = 43
¡¡¡¡¡¡¡¡sammy(1).col = 65: sammy(2).col = 15
¡¡¡¡¡¡¡¡sammy(1).direction = 2: sammy(2).direction = 1
CASE 7
¡¡¡¡¡¡¡¡FOR i = 4 TO 49 STEP 2
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 40, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 7: sammy(2).row = 43 ×Ö´®9
¡¡¡¡¡¡¡¡sammy(1).col = 65: sammy(2).col = 15
¡¡¡¡¡¡¡¡sammy(1).direction = 2: sammy(2).direction = 1
CASE 8
¡¡¡¡¡¡¡¡FOR i = 4 TO 40
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 10, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set 53 - i, 20, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 30, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set 53 - i, 40, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 50, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set 53 - i, 60, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 70, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 7: sammy(2).row = 43
¡¡¡¡¡¡¡¡sammy(1).col = 65: sammy(2).col = 15
¡¡¡¡¡¡¡¡sammy(1).direction = 2: sammy(2).direction = 1
CASE 9
¡¡¡¡¡¡¡¡FOR i = 6 TO 47
¡¡¡¡¡¡¡¡¡¡¡¡Set i, i, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, i 28, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 40: sammy(2).row = 15
¡¡¡¡¡¡¡¡sammy(1).col = 75: sammy(2).col = 5
¡¡¡¡¡¡¡¡sammy(1).direction = 1: sammy(2).direction = 2
¡¡
¡¡¡¡CASE ELSE
¡¡¡¡¡¡¡¡FOR i = 4 TO 49 STEP 2
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 10, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i 1, 20, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 30, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i 1, 40, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 50, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i 1, 60, colorTable(3)
¡¡¡¡¡¡¡¡¡¡¡¡Set i, 70, colorTable(3)
¡¡¡¡¡¡¡¡NEXT i
¡¡¡¡¡¡¡¡sammy(1).row = 7: sammy(2).row = 43
¡¡¡¡¡¡¡¡sammy(1).col = 65: sammy(2).col = 15
¡¡¡¡¡¡¡¡sammy(1).direction = 2: sammy(2).direction = 1
END SELECT
END SUB
'PlayNibbles:
'¡¡Main routine that controls game play
SUB PlayNibbles (NumPlayers, speed, diff$)
'Initialize Snakes
¡¡¡¡DIM sammyBody(MAXSNAKELENGTH - 1, 1 TO 2) AS snakeBody
¡¡¡¡DIM sammy(1 TO 2) AS snaketype
¡¡¡¡sammy(1).lives = 5
¡¡¡¡sammy(1).score = 0
¡¡¡¡sammy(1).scolor = colorTable(1)
¡¡¡¡sammy(2).lives = 5
¡¡¡¡sammy(2).score = 0
¡¡¡¡sammy(2).scolor = colorTable(2)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡Level STARTOVER, sammy()
¡¡¡¡startRow1 = sammy(1).row: startCol1 = sammy(1).col
¡¡¡¡startRow2 = sammy(2).row: startCol2 = sammy(2).col
curSpeed = speed
'play Nibbles until finished ×Ö´®4
SpacePause "¡¡¡¡ Level" STR$(curLevel) ",¡¡Push Space"
¡¡¡¡gameOver = FALSE
¡¡¡¡DO
¡¡¡¡¡¡¡¡IF NumPlayers = 1 THEN
¡¡¡¡¡¡¡¡¡¡¡¡sammy(2).row = 0
¡¡¡¡¡¡¡¡END IF
number = 1¡¡¡¡¡¡¡¡¡¡'Current number that snakes are trying to run into
¡¡¡¡¡¡¡¡nonum = TRUE¡¡¡¡¡¡¡¡'nonum = TRUE if a number is not on the screen
playerDied = FALSE
¡¡¡¡¡¡¡¡PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives
¡¡¡¡¡¡¡¡PLAY "T160O1>L20CDEDCDL10ECC"
DO
¡¡¡¡¡¡¡¡¡¡¡¡'Print number if no number exists
¡¡¡¡¡¡¡¡¡¡¡¡IF nonum = TRUE THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DO
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡numberRow = INT(RND(1) * 47 3)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NumberCol = INT(RND(1) * 78 2)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sisterRow = numberRow arena(numberRow, NumberCol).sister
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOOP UNTIL NOT PointIsThere(numberRow, NumberCol, colorTable(4)) AND NOT PointIsThere(sisterRow, NumberCol, colorTable(4))
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡numberRow = arena(numberRow, NumberCol).realRow
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nonum = FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COLOR colorTable(1), colorTable(4)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE numberRow, NumberCol
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT RIGHT$(STR$(number), 1);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡count = 0
¡¡¡¡¡¡¡¡¡¡¡¡END IF
'Delay game
¡¡¡¡¡¡¡¡¡¡¡¡FOR a# = 1 TO curSpeed:¡¡NEXT a#
'Get keyboard input & Change direction accordingly
¡¡¡¡¡¡¡¡¡¡¡¡kbd$ = INKEY$
¡¡¡¡¡¡¡¡¡¡¡¡SELECT CASE kbd$
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE "w", "W": IF sammy(2).direction <> 2 THEN sammy(2).direction = 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE "s", "S": IF sammy(2).direction <> 1 THEN sammy(2).direction = 2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE "a", "A": IF sammy(2).direction <> 4 THEN sammy(2).direction = 3
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE "d", "D": IF sammy(2).direction <> 3 THEN sammy(2).direction = 4
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE CHR$(0) "H": IF sammy(1).direction <> 2 THEN sammy(1).direction = 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE CHR$(0) "P": IF sammy(1).direction <> 1 THEN sammy(1).direction = 2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE CHR$(0) "K": IF sammy(1).direction <> 4 THEN sammy(1).direction = 3 ×Ö´®1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE CHR$(0) "M": IF sammy(1).direction <> 3 THEN sammy(1).direction = 4
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE "p", "P": SpacePause " Game Paused ... Push Space¡¡"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE ELSE
¡¡¡¡¡¡¡¡¡¡¡¡END SELECT
FOR a = 1 TO NumPlayers
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'Move Snake
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SELECT CASE sammy(a).direction
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE 1: sammy(a).row = sammy(a).row - 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE 2: sammy(a).row = sammy(a).row 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE 3: sammy(a).col = sammy(a).col - 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CASE 4: sammy(a).col = sammy(a).col 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END SELECT
'If snake hits number, respond accordingly
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF numberRow = INT((sammy(a).row 1) / 2) AND NumberCol = sammy(a).col THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PLAY "MBO0L16>CCCE"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF sammy(a).length < (MAXSNAKELENGTH - 30) THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammy(a).length = sammy(a).length number * 4
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammy(a).score = sammy(a).score number ×Ö´®9
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡number = number 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF number = 10 THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡EraseSnake sammy(), sammyBody(), 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡EraseSnake sammy(), sammyBody(), 2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE numberRow, NumberCol: PRINT " "
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Level NEXTLEVEL, sammy()
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SpacePause "¡¡¡¡ Level" STR$(curLevel) ",¡¡Push Space"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF NumPlayers = 1 THEN sammy(2).row = 0
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡number = 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF diff$ = "P" THEN speed = speed - 10: curSpeed = speed
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nonum = TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF curSpeed < 1 THEN curSpeed = 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡NEXT a
FOR a = 1 TO NumPlayers
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'If player runs into any point, or the head of the other snake, it dies.
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF PointIsThere(sammy(a).row, sammy(a).col, colorTable(4)) OR (sammy(1).row = sammy(2).row AND sammy(1).col = sammy(2).col) THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PLAY "MBO0L32EFGEFDC"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COLOR , colorTable(4)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE numberRow, NumberCol
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT " "
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡playerDied = TRUE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammy(a).alive = FALSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammy(a).lives = sammy(a).lives - 1
'Otherwise, move the snake, and erase the tail
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammy(a).head = (sammy(a).head 1) MOD MAXSNAKELENGTH
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammyBody(sammy(a).head, a).row = sammy(a).row
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammyBody(sammy(a).head, a).col = sammy(a).col
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡tail = (sammy(a).head MAXSNAKELENGTH - sammy(a).length) MOD MAXSNAKELENGTH
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set sammyBody(tail, a).row, sammyBody(tail, a).col, colorTable(4)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammyBody(tail, a).row = 0 ×Ö´®9
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Set sammy(a).row, sammy(a).col, sammy(a).scolor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡NEXT a
LOOP UNTIL playerDied
curSpeed = speed¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡' reset speed to initial value
¡¡¡¡¡¡
¡¡¡¡¡¡¡¡FOR a = 1 TO NumPlayers
¡¡¡¡¡¡¡¡¡¡¡¡EraseSnake sammy(), sammyBody(), a
'If dead, then erase snake in really cool way
¡¡¡¡¡¡¡¡¡¡¡¡IF sammy(a).alive = FALSE THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'Update score
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sammy(a).score = sammy(a).score - 10
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF a = 1 THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SpacePause " Sammy Dies! Push Space! -"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SpacePause " <---- Jake Dies! Push Space "
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡NEXT a
Level SAMELEVEL, sammy()
¡¡¡¡¡¡¡¡PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives
¡¡¡¡
¡¡¡¡'Play next round, until either of snake's lives have run out. ×Ö´®5
¡¡¡¡LOOP UNTIL sammy(1).lives = 0 OR sammy(2).lives = 0
END SUB
'PointIsThere:
'¡¡Checks the global¡¡arena array to see if the boolean flag is set
FUNCTION PointIsThere (row, col, acolor)
¡¡¡¡IF row <> 0 THEN
¡¡¡¡¡¡¡¡IF arena(row, col).acolor <> acolor THEN
¡¡¡¡¡¡¡¡¡¡¡¡PointIsThere = TRUE
¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡PointIsThere = FALSE
¡¡¡¡¡¡¡¡END IF
¡¡¡¡END IF
END FUNCTION
'PrintScore:
'¡¡Prints players scores and number of lives remaining
SUB PrintScore (NumPlayers, score1, score2, lives1, lives2)
¡¡¡¡COLOR 15, colorTable(4)
IF NumPlayers = 2 THEN
¡¡¡¡¡¡¡¡LOCATE 1, 1
¡¡¡¡¡¡¡¡PRINT USING "#,###,#00¡¡Lives: #¡¡<--JAKE"; score2; lives2
¡¡¡¡END IF
LOCATE 1, 49
¡¡¡¡PRINT USING "SAMMY¡¡Lives: #¡¡¡¡ #,###,#00"; lives1; score1
END SUB
'Set:
'¡¡Sets row and column on playing field to given color to facilitate moving
'¡¡of snakes around the field.
SUB Set (row, col, acolor)
¡¡¡¡IF row <> 0 THEN
¡¡¡¡¡¡¡¡arena(row, col).acolor = acolor¡¡¡¡¡¡¡¡¡¡¡¡ 'assign color to arena
¡¡¡¡¡¡¡¡realRow = arena(row, col).realRow¡¡¡¡¡¡¡¡¡¡ 'Get real row of pixel
¡¡¡¡¡¡¡¡topFlag = arena(row, col).sister 1 / 2¡¡¡¡'Deduce whether pixel
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'is on top? or bottom?
¡¡¡¡¡¡¡¡sisterRow = row arena(row, col).sister¡¡¡¡'Get arena row of sister
¡¡¡¡¡¡¡¡sisterColor = arena(sisterRow, col).acolor¡¡'Determine sister's color
LOCATE realRow, col
IF acolor = sisterColor THEN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'If both points are same
¡¡¡¡¡¡¡¡¡¡¡¡COLOR acolor, acolor¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 'Print chr$(219) "?
¡¡¡¡¡¡¡¡¡¡¡¡PRINT CHR$(219);
¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡IF topFlag THEN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 'Since you cannot have
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF acolor > 7 THEN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'bright backgrounds
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COLOR acolor, sisterColor¡¡¡¡¡¡ 'determine best combo
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT CHR$(223);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡'to use.
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COLOR sisterColor, acolor ×Ö´®7
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT CHR$(220);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF acolor > 7 THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COLOR acolor, sisterColor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT CHR$(220);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡COLOR sisterColor, acolor
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT CHR$(223);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡END IF
¡¡¡¡END IF
END SUB
'SpacePause:
'¡¡Pauses game play and waits for space bar to be pressed before continuing
SUB SpacePause (text$)
COLOR colorTable(5), colorTable(6)
¡¡¡¡Center 11, "Ûßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß?
¡¡¡¡Center 12, "?" LEFT$(text$ SPACE$(29), 29) " ?
¡¡¡¡Center 13, "ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ?
¡¡¡¡WHILE INKEY$ <> "": WEND
¡¡¡¡WHILE INKEY$ <> " ": WEND
¡¡¡¡COLOR 15, colorTable(4)
FOR i = 21 TO 26¡¡¡¡¡¡¡¡¡¡¡¡' Restore the screen background
¡¡¡¡¡¡¡¡FOR j = 24 TO 56
¡¡¡¡¡¡¡¡¡¡¡¡Set i, j, arena(i, j).acolor
¡¡¡¡¡¡¡¡NEXT j
¡¡¡¡NEXT i
END SUB
'SparklePause:
'¡¡Creates flashing border for intro screen
SUB SparklePause
COLOR 4, 0
¡¡¡¡a$ = "*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡*¡¡¡¡"
¡¡¡¡WHILE INKEY$ <> "": WEND 'Clear keyboard buffer
WHILE INKEY$ = ""
¡¡¡¡¡¡¡¡FOR a = 1 TO 5
¡¡¡¡¡¡¡¡¡¡¡¡LOCATE 1, 1¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 'print horizontal sparkles
¡¡¡¡¡¡¡¡¡¡¡¡PRINT MID$(a$, a, 80);
¡¡¡¡¡¡¡¡¡¡¡¡LOCATE 22, 1
¡¡¡¡¡¡¡¡¡¡¡¡PRINT MID$(a$, 6 - a, 80);
FOR b = 2 TO 21¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 'Print Vertical sparkles
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡c = (a b) MOD 5
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡IF c = 1 THEN
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE b, 80
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT "*";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE 23 - b, 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT "*";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ELSE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE b, 80
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT " ";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LOCATE 23 - b, 1
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PRINT " ";
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END IF
¡¡¡¡¡¡¡¡¡¡¡¡NEXT b
¡¡¡¡¡¡¡¡NEXT a
¡¡¡¡WEND
END SUB
'StillWantsToPlay:
'¡¡Determines if users want to play game again.
FUNCTION StillWantsToPlay
COLOR colorTable(5), colorTable(6)
¡¡¡¡Center 10, "Ûßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß?
¡¡¡¡Center 11, "?¡¡¡¡¡¡G A M E¡¡ O V E R¡¡¡¡¡¡ ?
¡¡¡¡Center 12, "?¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡?
¡¡¡¡Center 13, "?¡¡¡¡ Play Again?¡¡ (Y/N)¡¡¡¡¡¡?
¡¡¡¡Center 14, "ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ?
WHILE INKEY$ <> "": WEND
¡¡¡¡DO
¡¡¡¡¡¡¡¡kbd$ = UCASE$(INKEY$)
¡¡¡¡LOOP UNTIL kbd$ = "Y" OR kbd$ = "N"
COLOR 15, colorTable(4)
¡¡¡¡Center 10, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ "
¡¡¡¡Center 11, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ "
¡¡¡¡Center 12, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ "
¡¡¡¡Center 13, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ "
¡¡¡¡Center 14, "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ "
IF kbd$ = "Y" THEN
¡¡¡¡¡¡¡¡StillWantsToPlay = TRUE
¡¡¡¡ELSE
¡¡¡¡¡¡¡¡StillWantsToPlay = FALSE
¡¡¡¡¡¡¡¡COLOR 7, 0
¡¡¡¡¡¡¡¡CLS
¡¡¡¡END IF
END FUNCTION
ÓÃvb±àд̰ʳÉß
À´Ô´£ºÎÒÒªÑз¢Íø
×÷Õߣº
ʱ¼ä£º1970-01-01
µã»÷£º
×Ö´®7
×Ö´®1
×Ö´®4
×Ö´®5
0
×îÐÂÆÀÂÛ¹²ÓÐ 0 Î»ÍøÓÑ·¢±íÁËÆÀÂÛ
²é¿´ËùÓÐÆÀÂÛ
·¢±íÆÀÂÛ
ÈÈµã¹Ø×¢
Ïà¹ØÎÄÕÂ
Ïà¹ØÎÄÕÂ
![ÎÒÒªÑз¢Íø[www.51dev.com]](/templets/images/toplogo.gif)
