Tässä on koodi, johon pitäisi saada apua:
NuotinKesto = 5
Hidastus = 5000
EriNuotteja = 4
MaxNuotteja = 1000
Nuotit$ = "1234"
DIM Nuotti(EriNuotteja)
DIM Savelma(MaxNuotteja)
Nuotti(1) = 440
Nuotti(2) = 550
Nuotti(3) = 660
Nuotti(4) = 770
Nuotteja = 0
Pisteet = 0
VaariaArvauksia = 3
RANDOMIZE TIMER
GOSUB PiirraRuutu
WHILE 1
GOSUB SoitaSavelma
GOSUB ToistaakoOikein
IF Oikein THEN
Pisteet = Pisteet + Nuotteja
LOCATE 15, 20: PRINT "Oikein meni. Olet hyvä tässä pelissä!"
LOCATE 5, 10: PRINT "Pisteesi ovat:"; Pisteet
ELSE
VaariaArvauksia = VaariaArvauksia - 1
LOCATE 15, 20: PRINT "Väärin meni! Olet surkea tässä pelissä."
IF VaariaArvauksia > 0 THEN
Nuotteja = 0
ELSE
END
END IF
END IF
FOR j = 1 TO Hidastus: NEXT j
LOCATE 15, 10: PRINT " "
WEND
END
PiirraRuutu:
CLS
FOR i = 1 TO EriNuotteja
LOCATE 8, 10 + i * 5: PRINT "+-+"
LOCATE 9, 10 + i * 5: PRINT "+ +"
LOCATE 10, 10 + i * 5: PRINT "+-+"
LOCATE 11, 10 + i * 5: PRINT MID$(Nuotit$, i, 1)
NEXT i
RETURN
SoitaSavelma:
Nuotteja = Nuotteja + 1
Savelma(Nuotteja) = INT(RND * EriNuotteja) + 1
FOR i = 1 TO Nuotteja
LOCATE 9, 11 + Savelma(i) * 5
PRINT (MID$(Nuotit$, Savelma(i), 1))
SOUND Nuotti(Savelma(i)), NuotinKesto
FOR j = 1 TO Hidastus: NEXT j
LOCATE 9, 11 + Savelma(i) * 5: PRINT " "
NEXT i
RETURN
ToistaakoOikein:
PelaajaArvaa = 1
Arvaus = 0
i = 1
WHILE PelaajaArvaa
WHILE Arvaus <= 0
merkki$ = ""
WHILE merkki$ = ""
merkki$ = INKEY$
WEND
Arvaus = INSTR(Nuotit$, merkki$)
WEND
LOCATE 9, 11 + Arvaus * 5
PRINT MID$(Nuotit$, Arvaus, 1)
SOUND Nuotti(Arvaus), NuotinKesto
FOR j = 1 TO Hidastus: NEXT j
LOCATE 9, 11 + Arvaus * 5: PRINT " "
IF Arvaus <> Savelma(i) THEN
Oikein = 0
PelaajaArvaa = 0
ELSE
i = i + 1
IF i > Nuotteja THEN
Oikein = 1
PelaajaArvaa = 0
END IF
END IF
WEND
RETURNTuo on taas niitä pelien parhaiden tietokonepelejä, ja huomasin(todella suureksi ihmeekseni XD), että se ei toimi. Noin kuukausi sitten aloitin pelien parhaiden pelien korjailemista. Muut olen saanut lähes täysin bugivapaiksi ihan omin avuin, mutta nyt en enää löytänyt keinoa korjata bugia. Löytäisiköhän joku muu?
Ja millainen bugi mahtaa olla kyseessä?
Kun ensimmäinen nuotti on toistettu ohjelmalle, sitten se toistaa seuraavan sävelmän ja painoi mitä tahansa, se jostain syystä menee väärin. Joskus se menee väärin, vaikkei painaisikaan mitään. Kaiken lisäksi, vaikka ensimmäinen nuotti olisikin mennyt oikein, kummassakin tapauksessa peli loppuu, vaikka pitäisi olla vielä kaksi väärää vastausta jäljellä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.