tämä on enmsimmäinen pelini....
start:
SCREEN 12
CLS
RANDOMIZE TIMER
x = INT(RND(20) * 600) 'pallon muuttujat
y = INT(RND(20) * 400)
xl = -1 'liike ja määritys
yl = -1
x1 = 280
x2 = 360 'mailan muutujat
y1 = 470
y2 = 470
pisteet = 0
LOCATE 15, 29 'alkutiedot
COLOR 9: INPUT "anna nimesi >", nimi$
SLEEP 1
CLS
LOCATE 15, 29
COLOR 4: PRINT "peli alkaa!!!!!!!!"
SLEEP 2
CLS
DO
IF INKEY$ = "q" THEN GOTO kuolema
'pallon piirto ja liike
CIRCLE (x, y), 10, 10
PAINT (x, y), 10
FOR i = 1 TO 10000
NEXT
PAINT (x, y), 0
CIRCLE (x, y), 10, 0
'onko pallo melan kohalla
IF x > x1 AND x < x2 THEN
IF y + 10 > y2 THEN 'jos on niin...
yl = -1 'vaihtaa suuntaa
pisteet = pisteet + 1
END IF
END IF
x = x + xl
y = y + yl
'kuvaruudun määritys ja kimpoaminen
IF x = 630 THEN xl = -1
IF x = 10 THEN xl = 1
IF y = 470 THEN GOTO kuolema
IF y = 10 THEN yl = 1
'maila ja toiminnot
LINE (x1, y1)-((x2 - 10), (y2 + 10)), 3, BF
l$ = INKEY$
'vasempaan
IF l$ = "j" THEN
IF x1 - 10 > 0 THEN 'outoa?
LINE (x1, y1)-((x2 - 10), (y2 + 10)), 0, BF
x1 = x1 - 70
x2 = x2 - 70
END IF
END IF
'oikeaan
IF l$ = "l" THEN
IF x2 + 10 < 640 THEN '
LINE (x1, y1)-((x2 - 10), (y2 + 10)), 0, BF
x1 = x1 + 70
x2 = x2 + 70
END IF
END IF
IF l$ = "q" THEN GOTO lopetus
LOOP
kuolema:
LOCATE 15, 29
COLOR 6: PRINT "nyt kyllä kuolit "; nimi$;
SLEEP 1
LOCATE 20, 29
COLOR 2: PRINT "pisteesi on: "; pisteet
SLEEP 2
CLS
IF pisteet <= 10 THEN
LOCATE 15, 29
COLOR 15: PRINT "YRITŽ PARANTAA "; nimi$
ELSEIF pisteet > 10 AND pisteet < 20 THEN
LOCATE 15, 29
COLOR 8: PRINT "HYVŽ "; nimi$
ELSE
LOCATE 15, 29
COLOR 13: PRINT "TE OLETTE LOISTAVA "; nimi$
END IF
SLEEP 2
CLS
LOCATE 15, 28
INPUT "pelataanko uudestaan ? k/e > ", s$
CLS
IF s$ = "k" THEN GOTO start
IF s$ = "e" THEN GOTO lopetus
lopetus:
ENDantaisiko joku vinkkejä koodin optimoimiseen.
No en optimointiin nyt ihmeempiä keksi... ihan hieno koodi ensimmäiseksi peliksi. Kannattaa muuten käyttää mieluummin subeja ja funktioita kun tuota goto -rakennetta...
joo, gotot pois ja ton sais varmaan pienempään tilaan..
en jaksanu ettiä kontrolleja, mutta näyttää jopa toimivan
l$ = INKEY$ > l$ = LCASE$(INKEY$)
sori kun näitä tulee kokoajan
näppiksenluku kannattais varmaan toteuttaa suoraan portista &h60, eli näppäin=inp(&h60) ja sitten sitä näppispuskurin tyhjennystä en nyt jaksa muistaa...
Hyvä, varsinkin ensimmäiseksi peliksi.
Juu, kyllä tuo on oikein hyvä peli!
IF s$ = "k" THEN GOTO start
IF s$ = "e" THEN GOTO lopetus
??????????????????????????
IF s$ = "k" THEN CALL SUB start
IF s$ = "e" THEN CALL SUB lopetus
unohtakaa edellinen
nolo stume...
Lähellä puolivalmista ensimmäistä peliäni.
Aihe on jo aika vanha, joten et voi enää vastata siihen.