|
Kurs ¼dzicha #7
Uk│adasz programy w ZDZICHu, ale czego╢ w nim brakuje. Np. robisz grΩ tekstow▒ i jest ona jaka╢ dziwna. Mo┐e brakuje w niej instrukcji losowych ? Instrukcje losowe s▒ bardzo pomocne w grach tekstowych ( program sam losuje, poziom lub wersjΩ gry, je╢li gdzie╢ idziemy w grze, to program losuje, czy podczas wΩdr≤wki nie z│amiemy nogi itp. ) Mo┐emy jeszcze zrobiµ program dla mi│o╢nik≤w totolotka. Jak zmusiµ program do wylosowania danej liczby ? Piszemy LOSOWA8 i w rejestrze AL znajduje siΩ liczba z przedzia│y 0-255. A jak potrzebujemy wiΩksze liczby, to piszemy LOSOWA16 i w rejestrze AX znajdujemy liczbΩ z przedzia│u 0-65535. Potem wystarczy pobawiµ siΩ instrukcjami por≤wnaj-skok i powstawiaµ etykiety. Jednak zanim napiszemy program losuj▒cy liczby to powiem szerzej o rejestrach :
Rozr≤┐niamy 2 rodzaje rejestr≤w : 8-bitowe i 16-bitowe. Te pierwsze mog▒ przechowywaµ liczby z zakresu 0-255 a drugie przechowuj▒ liczbΩ z zakresu 0-65535. S▒ 4 rejestry 16-bitowe i 8 rejestr≤w 8 bitowych. Oto nazwy rejestr≤w 16 bitowych: AX BX CX DX ( fajny alfabet, no nie ? ) Oto nazwy rejestr≤w 8 bitowych : AL, AH, BL, BH, CL, CH, DL, DH. ( aby by│o ciekawiej, to rejestr AL i AH tworz▒ rejestr AX itp. ) Czyli zmieniaj▒c rejestr AL zmieniamy rejestr AX i odwrotnie. Rejestry mo┐na traktowaµ jako zmienne, ale niekt≤re komendy (wiΩkszo╢µ) zmieniaj▒ zawarto╢µ rejestr≤w. Jednak rejestry w ZDZICHu s▒ bardzo wa┐ne, i bez nich kupΩ polece± by│o by do kitu. Wracamy do naszego programu :
LOSOWA8
Pisz Pierwsza liczba losowa :
pisz8 AL
Pisz druga liczba losowa :
LOSOWA8
Pisz8 AL
koniec
Ale fajny program !!! Wy╢wietla 2 inne liczby !!! Teraz napiszmy inny program :
PiszL Loteria u Adasia
LOSOWA8
Por≤wnaj AL,32
Skok :Brawo
Pisz Niestety nic nie wygra│e╢, tak mi przykro ...
Koniec
:Brawo
Pisz Brawo wygra│e╢ 10 $
Koniec
Ale fajnie no nie, od czasu do czasu uda nam siΩ wygraµ na loterii, szkoda, ┐e to jest tylko g│upia symulacja. Aby utrudniµ wygran▒ ( zmniejszyµ jej prawdopodobie±stwo ) to musimy w linijce z komend▒ POROWNAJ daµ inn▒ mniejsz▒ liczbΩ np. POROWNAJ AL,16. Teraz gra bΩdzie 2 razy trudniejsza. mo┐na te┐ grΩ bardzo utrudniµ zmieniaj▒c liczbΩ LOSOWA8 na LOSOWA16 i POROWNAJ AL,32 na POROWNAJ AX,32. Teraz szansΩ bΩd▒ nik│e, wiΩc pasowa│o by zmieniµ liczbΩ 32 na 2000. Teraz szansΩ bΩd▒ 30:1 ( co oko│o 30 uruchomienie programu powoduje wygran▒ ). Mo┐na napisaµ program, kt≤ry na pocz▒tku pyta siΩ o stopie± trudno╢ci ( Zmienna %Trud ) i por≤wnuje zmienn▒ z rejestrem. Im wiΩksza liczba, tym │atwiej jest wygraµ. Spr≤buj napisaµ taki program. Je╢li go napiszesz, to mo┐na powiedzieµ, ┐e opanowa│e╢ ZDZICHa w stopniu wystarczaj▒cym. ( jednak nie rezygnuj z dalszej nauki, bo ZDZICH ma kilka ciekawych komend w tym komendy dyskowe )
No to napisa│e╢ program w ZDZICHu. Niestety program ten jest d│ugi i zawiera 10 procedur. Jak go zrobiµ estetycznym ? Najpierw zak│adamy dowolny plik, do kt≤rego przeniesiemy procedury. ProponujΩ, aby mia│ nazwΩ tak▒ jak nazwa programu i rozszerzenie INC. Je╢li przenie╢li╢my procedury do osobnego pliku, to pasowa│o by daµ jak▒╢ instrukcjΩ, kt≤ra m≤wi│aby kompilatorowi, ┐eby opr≤cz tego pliku skompilowa│ plik INC. Najlepiej jest na ko±cu programu napisaµ dyrektywΩ : #WSTAW nazwa_pliku_z_procedurami. Dlaczego na ko±cu pliku ? Bo ZDZICH ma jedn▒ drobn▒ wadΩ, kt≤ra nie pozwala na umieszczanie tej dyrektywy na samym pocz▒tku programu. Je╢li wszystko dobrze posz│o, to nasz program powinien siΩ uruchomiµ. Zamieszczam tutaj drobny przyk│ad :
program.ZDI
PRG()
Koniec
#WSTAW PROGRAM.INC
program.INC
Procedura PRG()
Czy╢µ
Pisz Ten program wykorzystuje dyrektywΩ #wstaw !!!
Piszl
Losowa16
Pisz8 AL
Pisz8 AX
Pisz8 AH
Piszl
Pisz Te 3 liczby na g≤rze to twoje szczΩ╢liwe numerki !!!
Koniec PRG()
Teraz kompilujemy plik PROGRAM.ZDI. Je╢li umie╢cili╢my dyrektywΩ #WSTAW to obydwa plik skompilowa│y siΩ do jednego pliku COM. Program jest OK. Tylko uruchamiaj▒c go widzimy, ┐e 3 liczby s▒ po│▒czone i tworz▒ jaki╢ tajny szyfr. Jak zrobiµ, aby ka┐da liczba by│a w osobnej linii ? To ju┐ twoje zadanie domowe (nie zamieszczam odpowiedzi)
www.zdzich.prv.pl
_________________________ 40_________________________
:: Poprzednia strona :: Menu :: NastΩpna strona ::
|
|
|
Prenumerata
Kontakt
redaktor naczelny
macland@topnet.pl
z-ca red. nacz.
bosss@box43.gnet.pl
sekretarz redakcji
kkruczkowski@wp.pl
Zalecana konfiguracja
- Windows
- IE 4.0 +
- 800 x 600
- High Color (16 bit)
|