|
Ristmik 1. Klassikaline algoritm Tänava ületamine
Käivitamiseks vajuta Tühiku klahvi. Projekti saab alla laadida lingilt Ristmik_3.sb.
Projekt demonstreerib paralleelsete protsesside sünkroniseerimist tänava ületamise algoritmi abil.
Pois ületab fooriga reguleeritavat ristmiku. Ristisuunas sõidavad autod. Nii pois kui ka auto(d) ületavad ristmiku ainult rohelise tule ajal
Objektid:
pois (4 kostüümi käimise imiteerimiseks),
auto (5 kostüümi, autode vahetamiseks),
foor1 ja foor2, mõlemal 4 kostüümi: roheline, kollane, punane, kollane
Skriptid
Foor1
 |
Foor2
 |
Foorid töötavad sünkroonselt. Tulede muutmiseks kasutatakse kostüüme:
1 - roheline, 2 - kollane, 3 - punane, 4 - kollane.
Juhtivaks on foor1.
Käivitamisel valitakse juhuarvude abil esimene tuli. Edasi lõputus korduses vahetatakse järjest (ringiratast) kostüüme (tulesid) sagedusega 3 sek. Peale tule (kostüümi) vahetamist saadab foor1 teate Vaheta, mille võtab vastu foor2. See valib oma tule (kostüümi), arvestades foor1 tuld. Alguses valitakse foor2-e jaoks kollane tuli, kui sagedamini esinev. Käsuga võta omistatakse muutjale kn foor1 kostüümi number ning kasutades selle väärtust, muudetakse värvi (kui vaja), vastavalt foor1 tulele.
Auto
 |
Lõputult korratakse järgmisi tegevusi
auto viiakse algpunkti (koordinaadid
pildilt ) ja tehakse nähtavaks
auto liigub stopp jooneni (pildi järgi)
käsk oota kuni jätab auto seisma kuni
foor2-s tuleb roheline tuli
auto liigub pildi parempoolse servani
auto peidetakse viivuks (2...4 sek) ja
vahetakse kostüüm (imiteeritakse
autode vahetust)
ja kõik kordub uuesti
|
Pois
 |
|
Põhimõteliselt tegutseb pois sama moodi nagu auto. Erinevus tuleb sellest, et poisi jaoks (käimise imiteerimiseks) kasutatakse kostüümi vahetust peale igat sammu.
Sellepärast ei saa kasutada (nagu auto jaoks) käsku liigu X sek, mis viib objekti sujuvalt antud pukti. Siin on sujuv liikumine kostüümide vahetusega realiseeritud alamskripti Mine abil. Sihtkoha määramiseks kasutatakse muutuja piir abil poisi X-koordinaate, mis võetakse (silma järgi) pildilt. Tänava ääreni
piir = -70, majani piir = 165
|