Commodore Basic
Innehåll- 1. Introduktion - 2. Karaktär - 3. Kodexempel - 4. Se även1. Introduktion
Commodore Basic (senare även Amiga Basic) är en Basic-dialekt framtagen av Microsoft på uppdrag av Commodore (från början: Commodore Business Machines). Commodore Basic har förekommit i ROM på bl.a. Vic 20, Vic 64/Commodore 64 (version 2.0) och Commodore 128 (version 7.0). Till Amiga finns Commodore Basic v12, men då levererades den på diskett. Commodore Basic hamnade i skymundan för den mycket populärare AMOS. En skillnad mellan de olika dialekterna är att Commodore Basic erbjöd enkel access i fönsterhanteraren i AmigaOS, medan AMOS erbjöd enkel access till Amigans multimediakapacitet.2. Karaktär
Konceptet med att använda kommandon i stället för metodanrop hittar man i både Commodore Basic och äldre versioner av Visual Basic (6.0 och tidigare). Commodore Basic är (i likhet med många andra BASIC-dialekter) ett språk med många nyckelord. Notera t.ex. Ask Mouse och Box i exemplet nedan.3. Kodexempel
Detta exempel kommer från Amiga Othello av David Addison. Hela programmet finns att ladda hem .
5 **** AMIGA OTHELLO ****6 by David Addison c19867 this program is put into the public domainENJOY!80goto 86090m=29100 **** MAIN LOOP ****105 on error goto 11000:i=1110 if i=1 then rgb 13,15,11,0 else rgb 13,6,9,15115 ask mouse x%,y%,b%:if b%=4 and p(1)=0 and p(2)=0 then 1460120 if pass=2 then 1850130 x1=7*abs(i=2):y1=7*abs(i=1)140 x=34+225*abs(i=2):y=101:drawmode 2:box(x,y;x+14,y+7):drawmode 0150 for v=64 to 0 step -6:qq=sound(1,1,2,v,3000):qq=sound(2,1,2,v,3000+3000*abs(i=2)):next v160 f=0:on p(i)+1 goto 200,440,440170 i=i+1:if i<3 then 110180 m=m-1:if m<0 then 1850190 goto 105200 **** COMPUTERS TURN ****210 max=0:tempx=0:tempy=0:x1=0212 y1=0220 if grid(x1,y1) then 270230 va=0:d1=-1232 d2=-1240 on error goto 10260250 if grid(x1+d1,y1+d2)=3-i then 280260 on error goto 10270:d2=d2+1:if d2<2 then 240265 d1=d1+1:if d1<2 then 232270 y1=y1+1:if y1<8 then 220275 x1=x1+1:if x1<8 then 212277 x1=tempx:y1=tempy:f=0:goto 370280 a=2285 on error goto 10300:temp=grid(x1+d1*a,y1+d2*a):if temp=0 then 260290 if temp=i then 310300 a=a+1:if a<8 then 285305 goto 260310 va=va+a320 if x1=0 or x1=7 then va=va*4330 if y1=0 or y1=7 then va=va*4340 if x1=1 or x1=6 or y1=1 or y1=6 then va=va/6345 randomize -1350 if va>max or (va=max and rnd>0.5) then max=va:tempx=x1:tempy=y1360 goto 260370 if max=0 then 520375 on error goto 11000380 destx=wherex((tempy*8)+tempx)+1:desty=wherey((tempy*8)+tempx)+2390 drawmode 2:box(x,y;x+14,y+7)400 x=x+(abs(destx>x)-abs(destx<x)):y=y+abs(desty>y)-abs(desty<y)410 box(x,y;x+14,y+7)420 if x=destx and y=desty then drawmode 0:goto 560430 goto 390440 rem **** HUMANS TURN ****445 drawmode 2450 ask mouse x%,y%,b%:if b%<>4 then 450452 if x%>0 and x%<21 and y%>143 and y%<164 then if x1>0 then x1=x1-1:goto 470454 if x%>19 and x%<41 and y%>162 and y%<187 then if x1<7 then x1=x1+1:goto 470
(Avbrutet)
4. Se även
- BASIC
Artikeln skriven 2009-01-17 av Learning4sharing
Inga kategorier för denna artikel än...Intresserad av fler artiklar?
Software Engineering with BDarkBASIC
Adam Goldberg
Adam Herz
Adam Theodor Strömberg
GOTO
E W Dijkstra
Ravioliprogrammering
Spagetti