02-06-2010, 01:48 PM
(Questo messaggio è stato modificato l'ultima volta il: 02-06-2010, 02:44 PM da friskon.)
Guida ai comandi Dark Basic realizzata da me circa due anni fa. Purtroppo questa guida non l'ho mai completata visto che non é mai servito a nessuno ma da ottime basi ai comandi principali che allora ritenevo i più utili Sono per il vecchio Dark Basic ma applicabili anche al Professional Tuttavia ricorcate che per imparare un linguaggio ci vuole creatività e sopratutto volontà, ci sono poi anche degli esempi nella guida.
Citazione:GUIDA AL DARK BASIC
Interamente scritto da Jonathan Archer
La copia è severamente punita
Copyright 2008 "Jonathan Archer Produzioni" Tutti i diritti riservati
|----------COME INCOMINCIARE----------|
Prima di iniziare a spiegare tutti i comandi bisogna fare una premessa: tutti i seguenti comandi dovranno essere scritti nell' editor di Dark Basic.Sulla sinistra verranno posizionati i comandi mentre sulla destra una sintesi del suo funzionamento.Il primo comando é PRINT che verrà usato spesso in questo manuale per fare esempi vari.
PRINT "(testo)" Scrive una stringa nello schermo
Es:
PRINT "Ciao a tutti!"
|----------VARIABILI E STRINGHE----------|
Le variabili sono dei numeri che possono essere espresse tramite un nome.
Es:
A=100
Teniamo conto che una ci sia una scatola etichettata A, questa contiene il numero 100. Print può essere utilizzato con le variabili.
Es:
A=88
B=12
NUMERO=33
PRINT A
PRINT B
PRINT NUMERO
E nello schermo ti apparirà, se eseguito: 88 e a capo 12.
Le variabili possono anche essere addizionate/sottratte/divise/moltiplicate. (*=moltiplicazione /=divisione)
Es:
A=10
B=5
C=15
PRINT A+B+C
PRINT A-B-C
PRINT A*B*C
Si premette che Dark Basic non visualizza nello schermo, tramite print, numero con la virgola.
Es:
Print 10/3
Non apparirà 3.333333333333333... ma solo 3
Le stringhe invece sono delle frasi che comprendono lettere,numeri,spaziatura etc. Esso si usa in modo uguale alle variabili sono che accanto al nome bisogna mettere il simbolo $.
Es:
NOME1$="Mario"
PRINT NOME1$
E nello schermo apparirà,se eseguito: Mario.
Le stringhe come le variabili possono essere addizionate (solo). Per fare un esempio invece che scrivere: PRINT "MARIO E LUIGI CONTRO DONKEY KONG" posso fare anche fare:
Es:
PROTAGONISTA$="MARIO"
AMICO$="LUIGI"
NEMICO$="DONKEY KONG"
PRINT PROTAGONISTA$+" E "+AMICO$+" CONTRO "+NEMICO$
Può capitare, però,che bisogna combinare variabili e stringhe.
Es:
STRINGA$="CIAO NUMERO "
NUM=1
PRINT STRINGA$+NUM
Questo però non si può fare. La variabile può essere immessa solo con un comando speciale: +STR$(VARIABILE)+
Es:
STRINGA$="CIAO NUMERO "
NUM=1
PRINT STRINGA$+STR$(NUM)
E nello schermo ti apparirà: CIAO NUMERO 1.
|----------DISTINGUERE COMANDI DA CONDIZIONI----------|
Un comando é un input diretto dato dal programmatore. Invece le condizioni sono degli eventi che se si dimostrano vere o false possono portare ad una conseguenza (altri comandi e condizioni). E per questo tutte le condizioni imposte da Dark Basic devono essere preceduti da comando IF.
REM Tutto quello che ci sarà accanto al comando REM verrà ignorato (serve a commentare)
IF Determina una condizione.
Il comando IF restituisce sempre 0 (falso) o 1 (vero) nelle sue condizioni.
Es:
NUM=100
IF NUM=100=1 THEN PRINT "OK"
oppure con la condizione negativa:
NUM=100
IF NUM=50=0 THEN PRINT "OK"
Il comando THEN permette di far seguire alla condizione dei comandi. Se devono essere seguiti più comandi dopo THEN bisogna dividerli con dei duepunti.
Es:
NUM=100
IF NUM=100=1 THEN PRINT "OK" : PRINT "ANCORA OK"
Ma in questo caso conviene l'uso di ENDIF. Bisogna inserire la condizione, inserire i comandi o eventuali altre condizioni (si può andare a capo), e terminare con ENDIF (THEN non deve essere usato).
Es:
NUM=100
IF NUM=100=1
PRINT "OK"
PRINT "ANCORA OK"
ENDIF
Tuttavià se non si vuole scrivere due condizioni (una stessa condizione che dovrebbere restituire 1 e un'altro 0) si può usare il comando ELSE. Quindi invece che scrivere:
Es:
NUM=10
IF NUM=10=1
PRINT "OK"
ENDIF
IF NUM=10=0
PRINT "NON OK"
ENDIF
Si può mettere tra IF ed ENDIF: ELSE:
Es:
NUM=10
IF NUM=10=1
PRINT "OK"
ELSE
PRINT "NON OK"
ENDIF
In modo da non sprecare spazio e guadagnare comodità.
Ma le condizioni non possono essere solo numeri e stringhe. Ci sono altre condizioni per specifiche occasioni. La condizione che segue restituisce 1 (vero) se il tasto sinistro del mouse viene premuto:
IF MOUSECLICK()=1 THEN PRINT "OK"
MOUSECLICK é una delle condizioni speciali, come ho accennato prima che può restituire: 1,2,4 e 8 per i rispettivi tasto sinistro, secondo tasto,terzo e quarto(comunque dipende tutto dal muose).
|----------BASIC----------|
Nonostante il suo nome i comandi BASIC sono i più difficili da comprendere per cui elencherò i più utilizzati.
REMSTART
...
REMEND Tutto ci che c'é tra questi due comandi sarà ignorato.
IF ENDIF THEN Determina una condizione
END Termina il programma
DO
...
LOOP Tutto ciò che é tra DO e LOOP verrà ripetuto all'infinito senza mai uscire. (Non fate caso al comando SYNC verrà spiegato in seguito.)
Es:
NUM=1
DO
IF NUM=1 THEN PRINT "OK"
SYNC
ENDIF
REPEAT
...
UNTIL (condizione) Funziona come DO e LOOP, solo che, tramite UNTIL più una condizione,ne può uscire.
Es:
CICLI=0
PRINT "ESEGUO 10 CICLI CON REPEAT E UNTIL POI ESCO..."
REPEAT
CICLI=CICLI+1
UNTIL CICLI=10
PRINT "CICLI é uguale a "+STR$(CICLI)
PRINT "Fine"
WHILE (condizione)
...
ENDWHILE Funziona come DO e LOOP,solo che,tramite WHILE più una condizione,ne può uscire.
Es:
CICLI=0
PRINT "ESEGUO 10 CICLI CON WHILE ED ENDWHILE POI ESCO..."
WHILE CICLI=10
CICLI=CICLI+1
ENDWHILE
PRINT "CICLI é uguale a "+STR$(CICLI)
PRINT "Fine"
GOTO Salta ad una etichetta. (Es: "Etichetta:" Non dimenticate i due punti)
Es:
NUM=0
GOTO SALTO1
DO
PRINT "BLOCCATO!"
LOOP
SALTO1:
PRINT "SONO SALTATO!"
SUSPEND FOR KEY Sospende l'esecuzione del programma fino a che non verrà premuto un tasto della tastiera.
Es:
PRINT "PREMI UN TASTO DELLA TASTIERA"
SUSPEND FOR KEY
END
SUSPEND FOR MOUSE Sospende l'esecuzione del programma fino a che non verrà premuto un tasto del mouse.
Es:
PRINT "PREMI UN TASTO DEL MOUSE"
SUSPEND FOR MOUSE
END
WAIT (Millisecondi) Attende per dei millisecondi. (1000 Millisecondi=1 secondo)
Es:
PRINT "ASPETTO 2 SECONDI"
WAIT 2000
END
SLEEP (Millisecondi) Identico al comando WAIT.
SYNC ON Imposta l'aggiornamento dello schermo automatico. (E' posto di solito all'inizio di ogni progetto)
SYNC RATE (numero) Imposta l'aggiornamento manuale. Accanto al comando bisoga fornire un numero che si comprende tra 1 e 1000 (Più il numero é alto più và veloce il gioco. 0 dà l'aggiornamento più veloce di tutti)
SYNC Aggiorna lo schermo. SYNC deve essere sempre messo tra DO e LOOP, WHILE ed ENDWHILE e REPEAT e UNTIL. (Di solido é messo alla fine prima di LOOP...)
|----------CONDIZIONI DEI COMANDI BASIC----------|
Le condizioni sono sempre precedute dal comando IF.
GET DATE$() Restituisce la data corrente in Mesi/Giorni/Anni.
Es:
PRINT GET DATE$()
GET TIME$ Restituisce l'ora corrente.
Es:
PRINT GET TIME$
|----------INPUT----------|
I comandi INPUT sono molti e di vario uso e gestiscono i file, la tastiera etc.
INPUT Scrive una stringa nello schermo (come il comando PRINT) e attende un INPUT tramite tastiera dall'utente. L'INPUT sarà salvata.
Es:
INPUT "INSERISCI IL TUO NOME> ",NOME$
PRINT "CIAO "+NOME$
HIDE MOUSE Nasconde il mouse.
SHOW MOUSE Mostra il mouse.
POSITION MOUSE Posiziona il mouse in specifiche coordinate X e Y.
Es:
REM POSIZIONA AL CENTRO DELLO SCHERMO IL PUNTATORE DEL MOUSE
POSITION MOUSE 320,240
DIR Elenca nello schermo i file e le cartelle nella directory corrente. (Standard: Directory in cui é il progetto)
DRIVELIST Elenca nello schermo i drive presenti nel conputer (A: , B: , C: , D: etc.)
PERFORM CHECKLIST FOR FILE Elenca nello schermo i file nella directory corrente.
SET DIR "(Directory)" Imposta una directory come corrente.
Es:
SET DIR "C:\"
MAKE FILE "(Directory/Nome File)" Crea un file vuoto. Se viene sono scritto il nome del file verrà creato nella directory corrente altrimenti bisogna specificarne un'altra.
Es:
REM CREA UN FILE VUOTO NELLA DIRECTORY CORRENTE
MAKE FILE "SUPERMARIO 94.DAT"
REM CREA UN FILE VUOTO IN UN' ALTRA DIRECTORY
MAKE FILE "C:\SUPERMARIO 94.DAT"
DELETE FILE "(Directory/Nome File)" Cancella un file. Se viene sono scritto il nome del file verrà cancellato nella directory corrente, se non nella directory corrente, bisogna specificarne un'altra.
Es:
REM CANCELLA UN FILE NELLA DIRECTORY CORRENTE
DELETE FILE "SUPERMARIO 94.DAT"
REM CANCELLA UN FILE IN UN'ALTRA DIRECTORY
DELETE FILE "SUPERMARIO 94.DAT"
COPY FILE "(Directory sorgente/Nome File sorgente)","Directory di destinazione/Nome di destinazione)" Copia un file.
Es:
COPY FILE "SUPERMARIO 94.DAT","C:\SUPERMARIO 94.DAT"
MOVE FILE "(Directory sorgente/Nome File sorgente)","Directory di destinazione/Nome di destinazione)" Sposta un file.
Es:
MOVE FILE "SUPERMARIO 94.DAT","C:\SUPERMARIO 94.DAT"
MAKE DIRECTORY "(Nome Directory)" Crea una directory.
Es:
MAKE DIRECTORY "LA MIA CARTELLA"
DELETE DIRECTORY "(Nome Directory)" Cancella una directory.
OPEN TO WRITE (Numero file),"(Nome file)" Crea un file (come il comando MAKE FILE) e lo tiene pronto per essere scritto. Bisogna specificare un numero file (come identificazione) e il suo nome.
Es:
OPEN TO WRITE 1,"SUPERMARIO 94.DAT"
OPEN TO READ (Numero file),"(Nome file)" Apre un file e lo tiene pronto per essere letto. Bisogna specificare un numero (come identificazione) e il suo nome.
Es:
OPEN TO READ 1,"SUPERMARIO 94.DAT"
CLOSE FILE (Numero file) Chiude un file che era stato aperto in precedenza con OPEN TO READ o OPEN TO WRITE. Bisogna specificare il numero (di identificazione) del file.
Es:
CLOSE FILE 1
WRITE FILE (Numero file),(Un numero qualsiasi) Scrive un numero in un file aperto in precedenza con OPEN TO WRITE.
Es:
OPEN TO WRITE 1,"SUPERMARIO 94.DAT"
WRITE FILE 1,100
CLOSE FILE 1
WRITE STRING (Numero fle),(Stringa$) Scrive una parola in un file aperto in precedenza con OPEN TO WRITE. (Nell'esempio: Come scrivere una stringa in un file con estenzione blocco note)
Es:
OPEN TO WRITE 1,"SUPERMARIO 94.TXT"
WRITE STRING 1,"STRINGA APRIBILE CON BLOCCO NOTE"
CLOSE FILE 1
READ FILE (Numero file),(variabile) Memorizza in una variabile il numero precedentemente scritto con il comando WRITE FILE. Il file deve essere prima aperto con OPEN TO READ.
Es:
OPEN TO READ 1,"SUPERMARIO 94.DAT"
READ FILE 1,A
CLOSE FILE 1
PRINT "IL NUMERO NEL FILE: "+STR$(A)
READ STRING (Numero file),(Stringa$) Memorizza in una stringa$ una riga del file scritto con il WRITE STRING. Il file deve essere prima aperto con OPEN TO READ. (Nell' esempio: Come leggere una riga da un file di blocco note o altro)
Es:
OPEN TO READ 1,"SUPERMARIO 94.TXT"
READ STRING 1,A$
CLOSE FILE 1
PRINT "LA STRINGA NEL FILE: "+A$
|----------CONDIZIONI DEI COMANDI INPUT----------|
MOUSEX() Restituisce la posizione X del mouse.
Es:
PRINT MOUSEX()
END
MOUSEY() Restituisce la posizione Y del mouse.
Es:
PRINT MOUSE Y
END
IF UPKEY()=1 Restituisce 1 (vero) se il tasto direzionale su é premuto.
Es:
SYNC ON
DO
IF UPKEY()=1 THEN PRINT "OK"
SYNC
LOOP
IF DOWNKEY()=1 Restituisce 1 se il tasto direzionale giù é premuto.
IF RIGHTKEY()=1 Restituisce 1 se il tasto direzionale destra é premuto.
IF LEFTKEY()=1 Restituisce 1 se il tasto direzionale sinistra é premuto.
IF CONTROLKEY()=1 Restituisce 1 se il tasto di Controllo (Ctrl) é premuto.
IF SHIFTKEY()=1 Restituisce 1 se il tasto Shift é premuto.
IF SPACEKEY()=1 Restituisce 1 se il tasto Spazio é premuto.
IF ESCAPEKEY()=1 Restituisce 1 se il tasto Esc é premuto. Di solito il tasto Esc permette di uscire immediatamente dall' eseguimento dell' applicazione. Per cui se non si vuole che venga premuto Esc il programma si termini automaticamente dovete usare il comando che segue in basso.
DISABLE ESCAPEKEY Permette di non uscire dall' applicazione se premuto Esc, in alternativa se volete uscire potete premere, su Dark Basic, F12. (Attenzione il seguente comando non é della sottosezione CONDIZIONI DEI COMANDI INPUT)
GET DIR$() Restituisce la directory corrente.
Es:
PRINT GET DIR$()
IF FILE EXIST("(Directory/Nome File)")=1 Restituisce 1 se il file esiste
Es:
IF FILE EXIST("SUPERMARIO 94.DAT")=1
PRINT "IL FILE ESISTE"
END
ELSE
PRINT "IL FILE NON ESISTE"
END
ENDIF
IF PATH EXIST("(Directory)")=1 Restituisce 1 se la cartella esiste.
Es:
IF PATH EXIST("LA MIA CARTELLA")=1
PRINT "LA CARTELLA ESISTE"
END
ELSE
PRINT "LA CARTELLA NON ESISTE"
END
ENDIF
|----------COMANDI MATEMATICI----------|
I comandi MATHS servono semplicemente a gestire una serie di operazioni matematiche.
INC Incrementa una variabile di 1
Es:
A=0
INC A
PRINT A
DEC Decrementa una variabile di 1
Es:
A=0
DEC A
PRINT A
RND(Numero) Serve per generare un numero casuale da 0 al numero che date voi.
Es:
PRINT RND()
|----------TESTI----------|
Per chi non volesse sempre usare PRINT può usare i comandi di TESTO che permettono di gestire font,carattere etc.
SET CURSOR X,Y Imposta il mouse in una posizione X e Y specifica dello schermo
Es:
REM IL PUNTATORE AL CENTRO DELLO SCHERMO
SET CURSOR 320,240
TEXT X,Y,"(Stringa)" Permette di scrivere una stringa in una posizione dello schermo
Es:
TEXT 100,100,"CIAO"
CENTER TEXT X,Y,"(Stringa)" Ha la stessa funzione di TEXT ma centra la frase alle coordinate specifiche
Es:
CENTER TEXT 320,240,"CIAO"
PERFORM CHECKLIST FOR FONTS Cerca la lista di tutti i Fonts installati nel vostro sistema.
SET TEXT FONT "(Nome font)" Imposta un font come standard.
Es:
PRINT "CIAO"
SET TEXT FONT "Comic Sans MS"
PRINT "CIAO"
SET TEXT SIZE (Dimensione) Imposta la dimensione standard del testo.
Es:
SET TEXT SIZE 72
CENTER TEXT 320,240,"CIAO"
|----------CONDIZIONI DEI COMANDI DI TESTO----------|
TEXT FONT$() Restituisce il font corrente
Es:
PRINT TEXT FONT$()
TEXT SIZE() Restituisce la dimensione standard del testo
Es:
PRINT TEXT SIZE()
TEXT WIDTH("(Stringa)") Restituisce la larghezza della stringa specificata
Es:
PRINT TEXT WIDTH("CIAO A TUTTI")
TEXT HEIGHT("(Stringa)") Restituisce l'altezza della stringa specificata
Es:
PRINT TEXT HEIGHT("CIAO A TUTTI")