Ohjelmointia ja elämää

  scripts
  sprites
See inside
Instructions

Pelaa tai mieti rinnakkain toimivia ohjelmaelementtejä!

1) Pelaa tuttu pulmatehtäväpeli: maamiehen kavereineen täytyy päästä turvallisesti joen yli. Lautta kuitenkin kuljettaa vain maamiehen sekä yhden muista hahmoista kerrallaan, joten täytyy tehdä useampi reissu. Matkassa on mutkia: jos jätät suden odottamaan yksin lampaan kanssa, lammasparka tulee syödyksi. Jos lammas taas jää yksin kaalin kanssa, kaali syödään. Saat koodin, kun koko joukko on päässyt joen toiselle puolelle!

2) Huomasit varmasti, että kaali, susi ja lammas liikkuvat lautalla vähän epätahtisesti nykien? Syynä on tietokoneen tapa jakaa rinnakkaisille olioille (maamies, susi, lammas, kaali) vuoroja ohjelman suorituksessa. Useampi olio on samanaikaisesti valmis useisiin toimintoihin, mutta tietokone ottaa niistä kerrallaan suoritettavaksi vain yhden toiminnon.

Voisiko lauttamatkan ohjelmoida toisin, niin että lautalla olijat olisivat "yhtä kappaletta"?

Lauttamatkan esiin tuoma ongelma on ohjelmoinnissa hyvin yleinen: tietokoneet suorittavat näennäisesti rinnakkain asioita, jotka oikeastaan tapahtuvat vain hyvin pienissä aikaviipaleissa vuorottain.

Usein ohjelmoijan haasteena on pitää jokin tieto vain yhden ohjelman olion käsiteltävänä kerrallaan, lukita tieto suojaan muilta. Ilman suojausta olioiden saamilla vuoroilla ja niiden järjestyksellä olisi vaikutusta lopputulokseen. Aika ikävää, jos se tieto olisi pankkitili...tililtä nostossa tai tililtä toiselle siirrossa on monta erillistä askelta, ihan kuin maamiehen melontamatkassakin.

Notes and Credits

Apua löydät Peliklinikka -studiosta tai osoitteesta http://linkki.cs.helsinki.fi/rosankoodi

Haastetaso
@}-,-`--

Rosan koodin grafiikat: YLE.

Shared: 13 Nov 2016 Modified: 13 Nov 2016
Favorite this project 0
Love this project 0
Total views 582
View the remix tree  2
  
More projects by salalinkki