VOBSAH           DalÓÉ           PŇedeÓlej           info           mod                     prefsy

logo

×   AMIGA E - Prakticky   ×


Vítám vás u nového seriálku o programování v AMIGA E! A hned z kraje prdim na úvody a du rovnou do toho...


Dvourozměrné pole v éčku

 
          AMIGA E umí pouze jednorozměrná pole, která se definují jako:  
          <proměnná>[<počet buněk>]:ARRAY OF <typ>
 
Chcete-li mít dvouruzměrné pole, pak si pro 2D přístup musíte vytvořit vlastní přepočítávací funkci, která přepočte 2D souřadnice (x, y) na 1D souřadnici (x). Není to nic těžkého, stačí trochu popřemýšlet - nebo kouknout do správné knihy.
 
A zde ji máme:

zdr PROC locbuff(x, y, l)           -> přepočítá 2D souřadnice na 1D
DEF a
  a := ((y - 1) * l) + x - 1
/*
sem je dobrý dát nějaký podmínky, kdyby vám sem vlezly nevhodný souřadnice
x, y nebo ujetý l!
*/

ENDPROC a

Vstupy:
x, y - 2D souřadnice z intervalu x = <1 - n>, y = <1 - m>
l       - délka "řádky" = m
Výstupy:
a - pozice v bufferu (1D souřadnice v intervalu a = <0 - i>, kde
          i = (n * m) - 1
 
Chápačka? :-)


Kreslení nevyplněných obdélníků
 
  V éčku není funkce pro kreslení nevyplněných obdélníků, proto si ji uděláme...

zdr PROC draw_box(xp, yp, w, h, colour)
  Line( xp, yp,xp+w, yp,colour)
  Line( xp, yp, xp,yp+h,colour)
  Line(xp+w, yp,xp+w,yp+h,colour)
  Line(xp+w,yp+h, xp,yp+h,colour)
ENDPROC

Vstupy:
xp, yp - levý horní bod
w, h - šířka a výška (zadávejte o 1 méně než potřebujete)
colour - barva, kterou se bude kreslit
Výstupy:
- nakreslený cosi

Hovadina, co!?  

Kolik to má vlastně řádek?

 
  Jak spočítat, kolik má text řádek? Jednoduše - stačí spočítat počet znaků LF (Line Feed - ASCII 10) a je to v suchu.
 
zdr PROC countlines(tlen) DEF i, j, lines = 1
    FOR i := 0 TO tlen
          j := tbuff[i]
          IF j = 10 THEN lines++
    ENDFOR
ENDPROC lines

Vstupy:
tlen - délka textu
tbuff - ukazatel na text v paměti (buffer)
Výstupy:
lines - počet řádek
 


 
Až mě napadne něco dalšího, tak vyplivnu díl II. Čau!

E.N.I.F.          

 
__________________________________________  
.
 
Další ve frontě:
 
KodeŇina   AMIGA E - IV.díl


VokeCáVKy HarDWare warez WorkBenchoviny DeMa Gfx&Muzika PaŇBY VokecÁvky II
Vokecávky Hardware Warez WBoviny Dema Gfx&Muz Pařby Vokecávky 2