RE:A VERY VERY QUICK QUIESTION! (questions =))

If you have questions about any aspect of QBasic programming, or would like to help fellow programmers solve their problems, check out this board!

Moderators: Pete, Mods

Post Reply
Sinuvoid
Veteran
Posts: 155
Joined: Wed Jul 25, 2007 8:20 am

RE:A VERY VERY QUICK QUIESTION! (questions =))

Post by Sinuvoid »

How do you mkae a count up timer but doesnt stop your program. and also where can i find the forumla for the DATA thing to display it?

my code for easy understanding

Code: Select all

CLS 
DIM field$(15) 
field$(0) = "                                                   " 
field$(1) = " $$$" 
field$(2) = "|                                                  | " 
field$(3) = "|                                                  | " 
field$(4) = "|                                                  | " 
field$(5) = "|                                                  | " 
field$(6) = "|                                                  | " 
field$(7) = "|                                                  | " 
field$(8) = "|                                                  | " 
field$(9) = "|                                                  | " 
field$(10) = "|                                                  | " 
field$(11) = "|                                                  | " 
field$(12) = "|                                                  | " 
field$(13) = "|                                                  | " 
field$(14) = "|                                                  | " 
field$(15) = "|$$$| " 

DIM intropage$(100) 
DATA 15,00,00,00,15,00,15,15,15,00,15,00,00,00,00,15,15,00,00,15,15,00,00,00,15,00,15,00,00,15,15,15,00,00,00 
DATA 15,00,00,00,15,00,15,00,00,00,15,00,00,00,15,00,00,00,15,00,00,15,00,15,00,15,00,15,00,15,00,00,00,00,00 
DATA 15,00,15,00,15,00,15,15,00,00,15,00,00,00,15,00,00,00,15,00,00,15,00,15,00,15,00,15,00,15,15,00,00,00,00 
DATA 15,00,15,00,15,00,15,00,00,00,15,00,00,00,15,00,00,00,15,00,00,15,00,15,00,15,00,15,00,15,00,00,00,00,00 
DATA 00,15,00,15,00,00,15,15,15,00,15,15,15,00,00,15,15,00,00,15,15,00,00,15,00,00,00,15,00,15,15,15,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,15,15,15,00,15,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,15,00,00,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,15,00,00,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,15,00,00,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,00,15,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
DATA 00,00,00,15,15,00,00,15,00,00,15,00,15,00,00,15,00,00,15,00,00,15,00,00,00,15,00,00,15,00,00,15,00,15,00 
DATA 00,00,00,15,00,15,00,15,00,00,15,00,15,15,00,15,00,15,00,15,00,15,00,00,00,15,00,15,00,15,00,15,00,15,00 
DATA 00,00,00,15,00,15,00,15,00,00,15,00,15,15,15,15,00,15,15,15,00,15,00,15,00,15,00,15,15,15,00,00,15,00,00 
DATA 00,00,00,15,15,00,00,15,00,00,15,00,15,00,15,15,00,15,00,15,00,15,00,15,00,15,00,15,00,15,00,00,15,00,00 
DATA 00,00,00,15,00,15,00,15,00,00,15,00,15,00,00,15,00,15,00,15,00,15,00,15,00,15,00,15,00,15,00,00,15,00,00 
DATA 00,00,00,15,00,15,00,00,15,15,00,00,15,00,00,15,00,15,00,15,00,00,15,00,15,00,00,15,00,15,00,00,15,00,00 

data1 = 18 
data2 = 35 
hx = 25 
hy = 16 
kp$ = INKEY$ 

intro: 
SCREEN 13 
CLS 
DO 

FOR y = 0 TO 18 
FOR x = 0 TO 35 
READ intropage$ 
PSET (X,y), intropage$ 
NEXT X 
NEXT y 

hl% = 20 

kp$ = INKEY$ 
COLOR INT(RND * 15) + 2 
LOCATE 8, 10 
PRINT "Welcome to RUN AWAY!" 
LOCATE 14, 10 
COLOR 15 
PRINT "1 Play" 
LOCATE 16, 10 
COLOR 6 
PRINT "2 Instructions" 
LOCATE 18, 10 
COLOR 3 
PRINT "3 Quit" 
IF kp$ = "1" THEN GOTO game 
IF kp$ = "2" THEN GOTO instruc 
IF kp$ = "3" THEN END 
LOOP 

instruc: 
CLS 
COLOR 15 
FOR d = 1 TO 5 
PRINT 
NEXT d 
PRINT "Oneday the guards of a town caught a man trying to a steal an apple, so then he    had to RUN AWAY! (This is where YOU come in =>)" 
PRINT 
PRINT 
COLOR 17 
PRINT "CONTROLS" 
COLOR 15 
PRINT "w = up" 
PRINT "s = down" 
PRINT "a = left" 
PRINT "d = right" 
PRINT 
PRINT "q = quit" 
FOR f = 1 TO 10 
PRINT 
NEXT f 
PRINT "Press Q to go back  <--" 
DO 
kp$ = INKEY$ 
COLOR 2 
LOCATE 10, 25 
PRINT ".8. = YOU" 
LOCATE 12, 25 
COLOR 4 
PRINT "|8. = ENEMY!" 
IF kp$ = "q" THEN GOTO intro 
LOOP 

game: 
timex = 54 
timey = 2 
TIME = 0 
lvlx = 54 
lvly = 5 
lvl = 1 
x = 48 
y = 7 
enemyx = 5 
enemyy = 7 
enemyx2 = 10 
enemyy2 = 5 
health = 20 

CLS 

DO 

LOCATE 1, 1 
FOR mz = 1 TO 15 
COLOR 7 
PRINT field$(mz) 
NEXT mz 

LOCATE lvly, lvlx 
COLOR 15 
PRINT "lvl :"; lvl 

LOCATE hy, hx 
COLOR 10 
PRINT health; "/"; hl% 

LOCATE y, x 
COLOR 15 
PRINT ".8." 

LOCATE enemyy, enemyx 
COLOR 12 
PRINT "|8." 
IF ((x = enemyx) AND (y = enemyy)) THEN 
health = health - 1 
END IF 


IF TIME = 120 THEN 
LOCATE enemyy2, enemyx2 
COLOR 12 
PRINT "|8." 
ELSE 
GOTO pause 
END IF 
IF ((x = enemyx2) AND (y = enemyy2)) THEN 
health = health - 1 
END IF 

IF TIME = 120 THEN 
lvl = lvl + 1 
PRINT lvl 
ELSE 
GOTO pause 
END IF 

oldx = x 
oldy = y 

pause: 
'pause 
DO 
kp$ = INKEY$ 
LOOP UNTIL kp$ <LOCATE> 1 THEN y = y - 1 
IF kp$ = "s" THEN y = y + 1 
IF kp$ = "a" THEN x = x - 1 
IF kp$ = "d" AND x + 3 < 52 THEN x = x + 1 
IF MID$(field$(y), x, 1) = "|" THEN 
LOCATE y, x 
PRINT "|" 
x = oldx 
y = oldy 
END IF 
IF MID$(field$(y), x, 1) = "$$$" THEN 
LOCATE y, x 
PRINT "$$$" 
x = oldx 
y = oldy 
END IF 

IF health = 0 THEN 
GOTO deathmessage 
ELSE 
GOTO gai 
END IF 

deathmessage: 
DO 
kp$ = INKEY$ 
LOCATE 8, 10 
COLOR 12 
PRINT ",`YOU'RE DEAD!'." 
LOCATE 9, 10 
COLOR 4 
PRINT "`,            '," 
LOCATE 12, 10 
COLOR 15 
PRINT "Press space to try again" 
LOCATE 13, 10 
PRINT "Or press Q to quit" 
IF kp$ = " " THEN GOTO game 
IF kp$ = CHR$(113) THEN GOTO intro 
LOOP 

gai: 
' ghost AI 
oldy = enemyy 
oldx = enemyx 
IF RND < .3 THEN 
SELECT CASE enemyx 
CASE IS <x> x 
enemyx = enemyx - 1 
END SELECT 
SELECT CASE enemyy 
CASE IS <y> y 
enemyy = enemyy - 1 
END SELECT 

IF MID$(field$(enemyy), enemyx, 1) = "$$$" THEN 
enemyx = oldx 
enemyy = oldy 
LOCATE enemyy, enemyx 
PRINT "$$$" 
END IF 
END IF 

gai2: 
'ghost2 AI 
oldy = enemyy2 
oldx = enemyx2 
SELECT CASE enemyx2 
CASE IS <x> x 
enemyx2 = enemyx2 - 1 
END SELECT 
SELECT CASE enemyy2 
CASE IS <y> y 
enemyy2 = enemyy2 - 1 
END SELECT 

IF MID$(field$(enemyy2), enemyx2, 1) = "$$$" THEN 
enemyx2 = oldx 
enemyy2 = oldy 
LOCATE enemyy2, enemyx2 
PRINT "$$$" 
END IF 

LOOP 

Anonymous

Post by Anonymous »

This may help, though it is not perfect it shows you how you can count up without up setting your game. As for your DATA question I don't know what you mean. Also you may want to try indenting your code, it makes your it more readable.

Code: Select all

OldTime% = TIMER    'Sets OldTime to the current time
PlayerX% = 5    'Sets player x
PlayerY% = 5    'Sets player y

'Game loop
do
    Key$ = inkey$   'Gets any keypresses
    locate 1,1
    color 15
    print "TIME:"; int(TIMER - OldTime%)    'Displays the difference between OldTime and now
    if Key$ <> "" then  'Checks to see if a key is pressed
        locate PlayerY%, PlayerX%
        color 0
        print chr$(219) 'Clears old player from screen
        If Key$ = "8" then PlayerY% = PlayerY% - 1  'Moves player
        If Key$ = "5" then PlayerY% = PlayerY% + 1  'Moves player
        If Key$ = "6" then PlayerX% = PlayerX% + 1  'Moves player
        If Key$ = "4" then PlayerX% = PlayerX% - 1  'Moves player
    end if
    locate PlayerY%, PlayerX%
    color 15
    print chr$(02)  'Shows player
loop until Key$ = chr$(27)  'If esc is hit the loop will terminate
Post Reply