Autore Topic: Trivia game  (Letto 1410 volte)

Denz

  • Neo-iscritto
  • *
  • Post: 28
  • Gioco Preferito: bubble Bobble
Trivia game
« il: 04 Luglio 2024, 12:49:41 »
dopo il fallimento dell'altro progetto ho provato con qualcosa di più semplice. ho scritto più o meno tiutto quello che mi serviva ed ora non riesco a capire come mai ho un problema sul caricamento degil array di domande e risposte nella schermata di visualizzazione delle domande. se carico il modo di gioco 1, relativo alla modalità classica funziona tutto bene, negli altri casi no. qualcuno sa aiutarmi?

il problema, sempre sia alla riga 9070 e non so come risolvere

zoomx

  • Neo-iscritto
  • *
  • Post: 6
  • Gioco Preferito: Commando, Zork
Re:Trivia game
« Risposta #1 il: 06 Luglio 2024, 14:27:33 »
Non metto mano a programmi per 64 da almeno una trentina d'anni.

9070 PRINT Q$(I, 1)

Manca da qualche parte un DIM Q$

Denz

  • Neo-iscritto
  • *
  • Post: 28
  • Gioco Preferito: bubble Bobble
Re:Trivia game
« Risposta #2 il: 11 Luglio 2024, 23:21:29 »
ho ricontrollato a tutto il codice. dove vado a chiamare i DIM sono queste righe

1010 DIM C$(30,5)
1410 DIM D$(30)

1510 DIM E$(30,5)
2010 DIM F$(30)

3010 DIM G$(30,5)
3410 DIM H$(30)

3510 DIM M$(30,5)
3910 DIM N$(30)

4010 DIM O$(30,5)
4510 DIM P$(30,5)

e mi sembrano tutti corretti. ti va di aiutarmi a chiudere sto gioco che è gia tutto scritto? manca solo di uscire da questo problema che potrei aggirare riscrivendo ogni volta tutte le schermate di gioco dedicate singolarmente ad ogni set di domande ma mi pare brutto

Roberto

  • Administrator
  • Utente
  • *****
  • Post: 2426
    • https://ready64.org
  • Gioco Preferito: Impossible Mission
Re:Trivia game
« Risposta #3 il: 12 Luglio 2024, 00:46:58 »
Non hai dimensionato Q$, come ti è stato già fatto notare.
Ma ci sono anche altre variabili che ti daranno problemi.

Aggiungi la riga: 9 dimr$(30),q$(30,5)

La buona prassi prevederebbe di dichiarare tutti gli array all'inizio del programma.

Poi mi sembra ci siano altre cose che non vanno: le domande non vengono stampate e danno sempre risposta sbagliata, qualsiasi risposta si immetta.
« Ultima modifica: 12 Luglio 2024, 18:27:24 da Roberto »
Per collaborare, segnalare un errore (o qualsiasi altra comunicazione importante) utilizzare la pagina dei contatti:
https://ready64.org/informazioni/contatti.php

Denz

  • Neo-iscritto
  • *
  • Post: 28
  • Gioco Preferito: bubble Bobble
Re:Trivia game
« Risposta #4 il: 12 Luglio 2024, 18:23:04 »
chiedo umilmente scusa mi ero perso il dimensionamento degli array Q e R effettivamente adesso non ho più il subscript error.

in compenso ora non carica alcuna domanda nonostante aggiungendo una riga di debug I è effettivamente uguale ad un numero compreso tra 1 e 30 ma non carica la domanda dall'array

per quanto riguarda il discorso delle risposte corrette è alla riga 9115 che assegna risposta corretta in base alla domanda I.

riscrivendo con solo due array uno di domande e uno di risposte tutto funziona correttamente.

deve esserci qualcosa che non va nel cambio degli array in base alla selezione del set di domande

Denz

  • Neo-iscritto
  • *
  • Post: 28
  • Gioco Preferito: bubble Bobble
Re:Trivia game
« Risposta #5 il: 12 Luglio 2024, 18:54:56 »
sono riuscito a caricare gli array giusti cambiano il codice da così

9026 IF MENU$ = "Classico" THEN Q$ = C$
9027 IF MENU$ = "Classico" THEN R$ = D$
9028 IF MENU$ = "Storia" THEN Q$ = E$
9029 IF MENU$ = "Storia" THEN R$ = F$
9030 IF MENU$ = "Calcio" THEN Q$ = G$
9031 IF MENU$ = "Calcio" THEN R$ = H$
9032 IF MENU$ = "Musica" THEN Q$ = M$
9033 IF MENU$ = "Musica" THEN R$ = N$
9034 IF MENU$ = "Videogame" THEN Q$ = O$
9035 IF MENU$ = "Videogame" THEN R$ = P$

a così

9028 IF MENU$ = "Classico" THEN FOR I = 1 TO 30: FOR J = 1 TO 5: Q$(I, J) = C$(I, J): NEXT J, I: FOR I = 1 TO 30: R$(I) = D$(I): NEXT I
9029 IF MENU$ = "Storia" THEN FOR I = 1 TO 30: FOR J = 1 TO 5: Q$(I, J) = E$(I, J): NEXT J, I: FOR I = 1 TO 30: R$(I) = F$(I): NEXT I
9030 IF MENU$ = "Calcio" THEN FOR I = 1 TO 30: FOR J = 1 TO 5: Q$(I, J) = G$(I, J): NEXT J, I: FOR I = 1 TO 30: R$(I) = H$(I): NEXT I
9031 IF MENU$ = "Musica" THEN FOR I = 1 TO 30: FOR J = 1 TO 5: Q$(I, J) = M$(I, J): NEXT J, I: FOR I = 1 TO 30: R$(I) = N$(I): NEXT I
9032 IF MENU$ = "Videogame" THEN FOR I = 1 TO 30: FOR J = 1 TO 5: Q$(I, J) = O$(I, J): NEXT J, I: FOR I = 1 TO 30: R$(I) = P$(I): NEXT I.

ora devo capire perchè I non cambia dopo la risposta

Denz

  • Neo-iscritto
  • *
  • Post: 28
  • Gioco Preferito: bubble Bobble
Re:Trivia game
« Risposta #6 il: 12 Luglio 2024, 20:01:02 »
signori ce l'ho fatta! il mio primo software in Basic per C64!

in allegato il listato