Le langage Basic est parfait pour la bidouille, trop souvent critiqué par les puristes qui le trouvent "amateur", pas assez chiant sans doute.
Le style de lemming qui orne sa station Windows d'un zoli fond d'écran Linux...
Pour le OldSchool MSDOS/16bit: MoonRock ou Asic.
Pour un prog Gui vite fait sous Win32: RapidQ.
Un script système pas trop méchant: VBScript.
Un problème de calcul sur les grands nombres? uBAsic...
Dans d'autres cas(Win32,Linux): L'intérpréteur Yabasic.
Pour du délire pur: Blitz Basic.
On retrouve en Blitz la majorité des commandes classiques, avec une syntaxe souvent simplifiée au max.
No (Hard) Work, Just Fun and Red Bull.
D'abord, les types de variables:
HashKey%: Designe une variable entiére.
PValue#: Un Réél.
EmailAdress$: Une Chaine de caractéres.
Tableaux
On les dimensionne par Dim:
Dim HashKeys%(50)
Dim PValues#(15,15)
Affectation d'une valeur:
PValues#(1,4)=3.141592
Ensuite des exemples de commandes:
Condition (If-Then-Else)
Answer$=Input$("Exit the Game ([Yes] or No)")
If Answer$ = "No" Then
Print "OK, the Game continues !"
Else
Print "Have a Nice DOS"
End If
Choix Multiple (Case-Select)
DifficultyLevel=1
Select DifficultyLevel
Case 1
Print "Mode EASY selected..."
Case 2
Print "Mode MEDIUM is On."
Case 3
Print "Mode HARD is On, Good luck !"
Default
Print "What are you waiting for, Christmas?"
End Select
Boucle (For-Next)
For i = 1 To 100 Step 2
Print i
Next
Gestion Clavier (KeyHit)
While Not KeyHit(1)
Wend
Saut Direct (Goto :)
Print "We jump to label 0"
Goto label0
Print "Never Executed- Salami Coding"
.label0
Print "Ok, We are at label0"
Definition de Fonctions
Function Ideale(Lgth%)
Print "Result for your Length:"
Print Lgth%-100-(Lgth%-150)/4
End Function
Appel par:
t%=190
Ideale(t%)
Manipulation de Chaines
Answer$="John Lennon"
;Print John
FirstName$=Mid$(Answer$,1,4)
print FirstName$
;Prints Lennon
Name$=Mid$(Answer$,6,6)
Print Name$
NewAnswer1$=Replace$(Answer$,FirstName$,"Paul")
NewAnswer2$=Replace$(NewAnswer1$,Name$,"Mc Cartney")
;Prints the new patronym
Print NewAnswer2$
Fichiers
(Ordinosaures War?)
;Write to the File
FileHandle1 = WriteFile("OldComputers.dat")
WriteString( FileHandle1,"Commodore 64")
WriteString( FileHandle1,"Apple II")
WriteString( FileHandle1,"Sinclair Spectrum")
WriteString( FileHandle1,"Oric Atmos")
CloseFile( FileHandle1 )
;Read from the File
FileHandle2 = ReadFile("OldComputers.dat")
For i=1 To 4
Dummy$ = ReadString$(FileHandle2)
yop = Instr( Dummy$,"Sinclair",1)
;A Test on the manufacturer
If yop=0 Then
Print Dummy$ + " is OK"
Else
;Sorry for Z80 fans...
Print "Sinclair System: Not 6502 Based..."
End If
Next
CloseFile(FileHandle2)
WaitKey()
Bien sur, il aurait été plus élégant de lire les noms de machines dans des champs de DATA:
...
Restore computernames
For t = 1 To 4
Read Ordi$
WriteString( FileHandle1,Ordi$)
Next
.computernames
Data "Commodore 64","Apple II","Siclair Spectrum","Oric Atmos"
...
Une particularité (puissante) du Blitz par rapport
aux autres Basic: Les Classes/Structures.
On va pouvoir définir des type complexes, des collection de varaibles
de types différents ou non, un contact par exemple:
;Type Definition
Type Contact
Field Name$
Field Email$
Field Phone$
Field Age%
End Type
;New Instance (Weird Syntax...)
MSNctc.Contact = New Contact
;Affectation
MSNctc\Name$ = "username"
MSNctc\Email$ = "username@hotmail.fr"
MSNctc\Phone$ = "0102030405"
MSNctc\Age% = 19
;Prints the Mail Adress
If (MSNctc\Age%>18) Then
Print "email: " + MSNctc\Email$
Else
Print "No 18+ ctc found..."
End If
WaitKey()
Voila, c'est tout pour les bases.
Il y a bien sur d'autres commandes, mais pour démarrer c'est suffisant.
Pour le reste des commandes "classiques", voir l'aide en ligne.
Hey, Nax, si tu en vois d'autres, direction MSN.
Dans la suite on va bricoler avec les images 2D et les Sons.
Le vrai Fun va commencer et toute la richesse de ce Basic va apparaite...
Le réseau et la 3D viendront ensuite.
Commentaires