Pantomiimi parametrin välittämisestä
Tarvitaan yksi Eclipsen käyttäjä (E)
Tarvitaan 6 näyttelijää:
- EasyWindow-luokka - osaa luoda ikkunan = hommaa paikalle yhden EasyWindow-luokan ilmentymän
- w1 - EasyWindow-luokan esiintymä, osaa piirtää skaalan ja ympyrän
- w2 - EasyWindow-luokan esiintymä, osaa piirtää skaalan ja ympyrän
- main - pääohjelman joka pyytää muita hommiin
- lumiukko3 - aliohjelma joka ymmärtää 3 parametriä
- lumiukko4 - aliohjelma joka ymmärtää 4 parametriä
Tarvikkeet:
- Yksi tietokone, josta tykillä heijastetaan ruutu
- nippu tyhjiä A4:ia
- 2 kpl paksuja tusseja joilla voi kirjoittaa
- jokaisella näyttelijällä oma nimikyltti kaulassa
- taulu, johon liimattu muuttujien "nimet" ja johon voi piirtää 2 koordinaatistoa
askeltaa -linkeistä pääsee katsomaan miltä Eclipsen pitäisi näyttää milläkin
hetkellä ja sitten voi palata takaisin.
Koodi
Koodi näytetään Eclipsellä tykillä
18 public static void lumiukko(EasyWindow w,double x, double y,double isonPallonSade) {
19 double pikkupallonSade = 10;
20 double keskipallonSade = 15;
22 double keskipallonY = y-keskipallonSade-isonPallonSade;
23 double pikkupallonY = y-2*keskipallonSade-isonPallonSade-pikkupallonSade;
25 w.addCircle(x,pikkupallonY,pikkupallonSade);
26 w.addCircle(x,keskipallonY,keskipallonSade);
27 w.addCircle(x,y,isonPallonSade);
28 }
36 public static void lumiukko(EasyWindow w,double x, double y) {
37 lumiukko(w,x,y,20); // function overload = kuormittaminen
38 }
44 public static void main(String[] args) {
45 EasyWindow window = new EasyWindow(); window.scale(0,100,100,0); window.showWindow();
46 EasyWindow window2 = new EasyWindow(); window2.scale(0,100,100,0); window2.showWindow();
48 lumiukko(window,20,80,20);
49 lumiukko(window2,30+30,60,2*5);
51 lumiukko(window,60,60);
52 }
1. On kahden lumiukon parametrit ja tyhjä taulu
Taululla on seuraava tilanne
2. Ikkunoiden luonti
- E: askeltaa riville 45
45 EasyWindow window = new EasyWindow(); window.scale(0,100,100,0); window.showWindow();
- main: "EasyWindow! Tarviisin yhden ikkunan"
- EasyWindow: "w1 meehän taulun eteen"
- w1: menee taulun eteen ja piirtää puolen taulun kokoisen neliön vasempaan reunaan
- EasyWindow: "saat tuon w1:en"
- main: kirjoittaa window-muuttujaan w1
- main: "w1! Skaalaa ikkuna niin, että vasen alanurkka on 0,100 ja oikea ylänurkka 100,0 ja näytä ikkuna"
- w1: piirtää koordinaatit ja ruudukon himmeällä
- E: askeltaa riville 46
46 EasyWindow window2 = new EasyWindow(); window2.scale(0,100,100,0); window2.showWindow();
- main: "EasyWindow! Tarviisin yhden ikkunan"
- EasyWindow: "w2 meehän taulun eteen"
- w2: menee taulun eteen ja piirtää puolen taulun kokoisen neliön vasempaan reunaan
- EasyWindow: "saat tuon w2:en"
- main: kirjoittaa window-muuttujaan w2
- main: "w1! Skaalaa ikkuna niin, että vasen alanurkka on 0,100 ja oikea ylänurkka 100,0 ja näytä ikkuna"
- w1: piirtää koordinaatit ja ruudukon himmeällä
- E: askeltaa rivin 46
3. Ekan lumiukon piirto
- E: asettelee ikkunat niin, että ne näkyvät hyvin ja askeltaa riville 48
48 lumiukko(window,20,80,20);
- main: kirjoittaa A4:lle 48 (paluurivin numero) ja laittaa sen pöydälle
- main: kirjoittaa A4:lle w1 ja laittaa sen pöydälle
- main: kirjoittaa A4:lle 20 ja laittaa sen pöydälle
- main: kirjoittaa A4:lle 80 ja laittaa sen pöydälle
- main: kirjoittaa A4:lle 20 ja laittaa sen pöydälle
- main: "Lumiukko joka ymmärtää 4 parametria tänne!"
- lumiukko4: Saapuu mainin luo
- main: "teehän hommas lumiukko
- lumiukko4: ottaa parametripinon kävelee oman parametrilistansa luokse
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla isonPallonSade viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla y:n viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla x:n viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla w:n viereen
- lumiukko4: käteen jäi vielä lappu jossa lukee 48
- E: askeltaa riville 19
19 double pikkupallonSade = 10;
- lumiukko4: kirjoittaa A4:lle 10 ja liimaa sen pikkupallonSade viereen
- E: askeltaa riville 20
20 double keskipallonSade = 15;
- lumiukko4: kirjoittaa A4:lle 15 ja liimaa sen keskipallonSade viereen
- E: askeltaa riville 22
22 double keskipallonY = y-keskipallonSade-isonPallonSade;
- lumiukko4: laskee 80-15-20 = 45, kirjoittaa A4:lle 45 ja liimaa sen keskiPallonY viereen
- E: askeltaa riville 23
23 double pikkupallonY = y-2*keskipallonSade-isonPallonSade-pikkupallonSade;
- lumiukko4: laskee 80-2*15-20-10 = 20, kirjoittaa A4:lle 20 ja liimaa sen pikkupallonY:n viereen
- E: askeltaa riville 25
25 w.addCircle(x,pikkupallonY,pikkupallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w1! Piirrä ympyrä paikkaan (20,25) säteenä 10
- w1: Piirtää ympyrän (20,25) r=10
- E: askeltaa riville 26
26 w.addCircle(x,keskipallonY,keskipallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w1! Piirrä ympyrä paikkaan (20,45) säteenä 15
- w1: Piirtää ympyrän (20,45) r=15
- E: askeltaa riville 27
27 w.addCircle(x,y,isonPallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w1! Piirrä ympyrä paikkaan (20,80) säteenä 20
- w1: Piirtää ympyrän (20,80) r=20
- E: askeltaa riville 28
28 }
- lumiukko4: poistaa kaikkien "lokaalien muuttujien arvot", eli heittää liimatut A4:set roskiin
- lumiukko4: ottaa vielä kädessään olevan A4:n, jossa lukee 48. Kävelee main:in luo ja "jatkahan hommia riviltä 48" ja häipyy
4. Toisen lumiukon piirto
- E: askeltaa riville 49
49 lumiukko(window2,30+30,60,2*5);
- main: kirjoittaa A4:lle 49 (paluurivin numero) ja laittaa sen pöydälle
- main: katsoo window2 muuttujan arvon, kirjoittaa A4:lle w2 ja laittaa sen pöydälle
- main: laskee yhteen 30+30=60 kirjoittaa A4:lle 60 ja ja laittaa sen pöydälle
- main: kirjoittaa A4:lle 60 ja laittaa sen pöydälle
- main: laskee 2*5 = 10, kirjoittaa A4:lle 10 ja laittaa sen pöydälle
- main: "Lumiukko joka ymmärtää 4 parametria tänne!"
- lumiukko4: Saapuu maiin luo
- main: "teehän hommas lumiukko
- lumiukko4: ottaa parametripinon ja kävelee oman parametrilistansa luokse
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla isonPallonSade viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla y:n viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla x:n viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla w:n viereen
- lumiukko4: käteen jäi vielä lappu jossa lukee 49
- E: askeltaa riville 19
19 double pikkupallonSade = 10;
- lumiukko4: kirjoittaa A4:lle 10 ja liimaa sen pikkupallonSade viereen
- E: askeltaa riville 20
20 double keskipallonSade = 15;
- lumiukko4: kirjoittaa A4:lle 15 ja liimaa sen keskipallonSade viereen
- E: askeltaa riville 22
22 double keskipallonY = y-keskipallonSade-isonPallonSade;
- lumiukko4: laskee 60-15-10 = 35, kirjoittaa A4:lle 35 ja liimaa sen keskiPallonY viereen
- E: askeltaa riville 23
23 double pikkupallonY = y-2*keskipallonSade-isonPallonSade-pikkupallonSade;
- lumiukko4: laskee 60-2*15-10-10 = 10, kirjoittaa A4:lle 10 ja liimaa sen pikkupallonY:n viereen
- E: askeltaa riville 25
25 w.addCircle(x,pikkupallonY,pikkupallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w2! Piirrä ympyrä paikkaan (60,10) säteenä 10
- w2: Piirtää ympyrän (60,15) r=10 (omaan koordinaatistoonsa)
- E: askeltaa riville 26
26 w.addCircle(x,keskipallonY,keskipallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w2! Piirrä ympyrä paikkaan (60,35) säteenä 15
- w2: Piirtää ympyrän (60,35) r=15
- E: askeltaa riville 27
27 w.addCircle(x,y,isonPallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w2! Piirrä ympyrä paikkaan (60,60) säteenä 10
- w2: Piirtää ympyrän (60,60) r=10
- E: askeltaa riville 28
28 }
- lumiukko4: poistaa kaikkien "lokaalien muuttujien arvot", eli heittää liimatut A4:set roskiin
- lumiukko4: ottaa vielä kädessään olevan A4:n, jossa lukee 49. Kävelee main:in luo ja "jatkahan hommia riviltä 49" ja häipyy
3. Kolmannen lumiukon piirto
- E: askeltaa riville 51
51 lumiukko(window,60,60);
- main: kirjoittaa A4:lle 51 (paluurivin numero) ja laittaa sen pöydälle
- main: katsoo window muuttujan arvon, kirjoittaa A4:lle w1 ja laittaa sen pöydälle
- main: kirjoittaa A4:lle 60 ja laittaa sen pöydälle
- main: kirjoittaa A4:lle 60 ja laittaa sen pöydälle
- main: "Lumiukko joka ymmärtää 3 parametria tänne!"
- lumiukko3: saapuu main luokse
- main: "teehän hommas lumiukko
- lumiukko3: ottaa parametripinon ja kävelee oman parametrilistansa luokse
- lumiukko3: ottaa päällimmäisen lapun ja laittaa sen sinitarralla y:n viereen
- lumiukko3: ottaa päällimmäisen lapun ja laittaa sen sinitarralla x:n viereen
- lumiukko3: ottaa päällimmäisen lapun ja laittaa sen sinitarralla w:n viereen
- lumiukko3: käteen jäi vielä lappu jossa lukee 51
- E: askeltaa riville 37
37 lumiukko(w,x,y,20);
- lumiukko3: kirjoittaa A4:lle 37 (paluurivin numero) ja laittaa sen pöydälle
- lumiukko3: katsoo w muuttujan arvon, kirjoittaa A4:lle w ja laittaa sen pöydälle
- lumiukko3: katsoo x:n, kirjoittaa A4:lle 60 ja laittaa sen pöydälle
- lumiukko3: katsoo y:n, kirjoittaa A4:lle 60 ja laittaa sen pöydälle
- lumiukko3: kirjoittaa A4:lle 20 ja laittaa sen pöydälle
- lumiukko3: "Lumiukko joka ymmärtää 4 parametria tänne!"
- lumiukko4: saapuu lumiukko3:n luokse luokse
- lumiukko3: "teehän hommas lumiukko
- lumiukko4: kävelee oman parametrilistansa luokse
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla isonPallonSade viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla y:n viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla x:n viereen
- lumiukko4: ottaa päällimmäisen lapun ja laittaa sen sinitarralla w:n viereen
- lumiukko4: käteen jäi vielä lappu jossa lukee 49
- E: askeltaa riville 19
19 double pikkupallonSade = 10;
- lumiukko4: kirjoittaa A4:lle 10 ja liimaa sen pikkupallonSade viereen
- E: askeltaa riville 20
20 double keskipallonSade = 15;
- lumiukko4: kirjoittaa A4:lle 15 ja liimaa sen keskipallonSade viereen
- E: askeltaa riville 22
22 double keskipallonY = y-keskipallonSade-isonPallonSade;
- lumiukko4: laskee 60-15-20 = 25, kirjoittaa A4:lle 25 ja liimaa sen keskiPallonY viereen
- E: askeltaa riville 23
23 double pikkupallonY = y-2*keskipallonSade-isonPallonSade-pikkupallonSade;
- lumiukko4: laskee 60-2*15-20-10 = 0, kirjoittaa A4:lle 0 ja liimaa sen pikkupallonY:n viereen
- E: askeltaa riville 25
25 w.addCircle(x,pikkupallonY,pikkupallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w1! Piirrä ympyrä paikkaan (60,0) säteenä 10
- w1: Piirtää ympyrän (60,0) r=10
- E: askeltaa riville 26
26 w.addCircle(x,keskipallonY,keskipallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w1! Piirrä ympyrä paikkaan (60,25) säteenä 15
- w1: Piirtää ympyrän (60,25) r=15
- E: askeltaa riville 27
27 w.addCircle(x,y,isonPallonSade);
- lumiukko4: Katsoo w-muuttujaa ja "w1! Piirrä ympyrä paikkaan (60,60) säteenä 20
- w1: Piirtää ympyrän (60,60) r=20
- E: askeltaa riville 28
28 }
- lumiukko4: poistaa kaikkien "lokaalien muuttujien arvot", eli heittää liimatut A4:set roskiin
- lumiukko4: ottaa vielä kädessään olevan A4:n, jossa lukee 37. Kävelee lumiukko3:en luo ja "jatkahan hommia riviltä 37" ja häipyy (lopullisesti)
- E: askeltaa riville 38
38 }
- lumiukko3: poistaa kaikkien "lokaalien muuttujien arvot", eli heittää liimatut A4:set roskiin
- lumiukko3: ottaa vielä kädessään olevan A4:n, jossa lukee 51. Kävelee main:in luo ja "jatkahan hommia riviltä 51" ja häipyy (lopullisesti)
- E: askeltaa riville 52
52 }