Demo 2

Huomautus: Lopulliset demotehtävät julkaistaan aina tasan viikkoa ennen deadlinea. Demotehtäviin saattaa ennen sitä tulla muutoksia tai korjauksia. Tehtäviä voi tulla lisää tai tehtäviä voi poistua. Tehdessäsi tehtäviä ennen virallista julkaisua, ota tekemästäsi koodista aina varmuuskopio omalle tietokoneellesi.

Palauta viimeistään ma 25.1. klo 11:59, läpikäynti ma klo 12-14 osoitteessa https://youtu.be/-Whvnv3zTBg. Voit täydentää vastauksia määräaikaan mennessä.

Vinkki: Pidä aina esillä kynä ja paperia. Koskee myös ohjausryhmiä.

Osaamistavoitteet

Tämän demokerran päätteeksi

  • osaat laskea lausekkeen arvon,
  • osaat sijoittaa muuttujaan arvon,
  • ymmärrät aliohjelmien perusajatuksen, ja osaat kirjoittaa itse yksinkertaisen aliohjelman,
  • muistat, miten kaksi- ja kymmenjärjestelmä liittyvät toisiinsa, ja osaat muuntaa 2-järjestelmän lukuja 10-järjestelmään

Ajankäyttösi tällä viikolla (0.5 p.)

Työtuntien kirjaamisesta saa 0.5 demopistettä. Aseta pisteesi Set Custom Points -toiminnolla.

Demokerran päätteeksi kirjoita arvio tällä viikolla käyttämästäsi työmäärästä. Laske työmäärään mukaan kaikki tällä viikolla käyttämäsi aika: lähiopetukseen osallistuminen, oppimateriaalin lukeminen, demotehtävien tekeminen, luentovideon katsominen, demojen purkutilaisuuteen osallistuminen (maanantaina) ja niin edelleen. Voit päivittää lukua viikon edetessä, se voi helpottaa arvion tekemistä. Huom! Siis tähän ei laiteta kurssin alusta kaikkia tunteja yhteensä, vaan vain tämän viikon tunnit.

# d2tunnit

Tehtävä 1

Lue ensin: 7. Muuttujat

Mieti ensin kustakin alakohdasta, että mitä ohjelma tekee. Kirjoita päätelmäsi ylös vaikkapa paperille tai tekstieditoriin ja kokeile vasta sitten itse ohjelmaa. Ohjelmakoodin lukeminen on tärkeä taito.

Huomautus: kohtien a\(-\)d ohjelmien ajamisesta ei tule pisteitä, vaan niihin kuuluviin kysymyksiin vastaamisesta. Kustakin kohdasta saa 0.25 pistettä, yhteensä tehtävästä voi siis saada max 1 p.

Tehtävä 1.1. Olkoon meillä seuraavanlainen pääohjelma.

# mitatulostaa

Ennen kuin ajat ohjelman, kirjoita alla olevaan vastauslaatikkoon se luku, minkä ohjelman viimeinen rivi ennen aaltosulkua mielestäsi tulostaa.

Kun olet tallentanut vastauksesi, täydennä luokka (public class jne.) yllä olevan pääohjelman (Main) ympärille ja tarkista vastauksesi painamalla Aja-nappia yllä olevalle koodille. Korjaa vastauksesi tarvittaessa.

# teht1a

Tehtävä 1.2. Miten tuloste muuttuisi, jos kaikki sulut otettaisiin pois riviltä

int x = a + b * ((2 - c) / a + b);

Kirjoita luku, jonka ohjelma tulostaisi.

# teht1b

Kun olet vastannut kysymykseen, voit tarkistaa vastauksesi muuttamalla A-kohdan koodia.

Tehtävä 1.3. Muutetaan pääohjelmaa seuraavasti:

# teht1ccode

error: a namespace cannot directly sontain memers such as firlds or methods. Eli pitäisikö myös void Main () kohdalla olla jotain muuta vai mitä tuo tarkoittaa?

Kaikkien metodien (kuten Main) on sijaittava luokan (class) sisällä. -JuhoK

21 Jan 21 (edited 23 Jan 21)

Mikä ongelma tässä tulee? Mieti, ennen kuin käännät ohjelman. Kun ajat ohjelman (vaatii samaan tapaan luokan täydentämisen), mitä huomaat?

# teht1c

Tehtävä 1.4. Tehdään seuraavanlainen pääohjelma:

# teht1dcode

Vastaa alla olevaan vastauslaatikkoon kahteen kysymykseen:

  1. Mitä ohjelma tulostaa? Kirjoita tämä vastaus ensimmäiselle riville.
  2. Mikä on c-muuttujan arvo viimeisen rivin jälkeen? Kirjoita tämä vastaus toiselle riville.

Kun olet vastannut kysymyksiin, voit tarkistaa vastauksesi ajamalla yllä olevan koodin.

# teht1d

Tehtävä 2

Tee kohdat 1 ja 2. Kummastakin max 0.5 pistettä, eli tehtävästä saa yhteensä max 1 p.

Lue ensin: 3. Algoritmit

Johdanto: Algoritmi eli toimintaohje kuvataan usein perättäisinä askelina, joita edetään perättäisesti, tai tarvittaessa toistaen. Sinun pitäisi kirjoittaa tällainen toimintaohje perättäisinä askelina. Esimerkiksi, kuvitteellinen siirtyminen Agoran ala-aulasta työhuoneeseen voitaisiin kuvata seuraavilla askeleilla.

  1. Mene C-siiven portaiden juurelle.
  2. Kävele kerros ylöspäin.
  3. Jos olet kerroksessa nro 4, mene seuraavaan kohtaan. Muuten, palaa kohtaan 2.
  4. Kävele eteenpäin, kunnes näet huoneen C414.2. Olet perillä.

Tehtävä 2.1. (0.5 p.)

Kirjoita suomenkielinen (ei ohjelmointikielinen) algoritmi eli toimintaohje, jolla kuvaat, miten "wanhasta" puhelinluettelosta (siis sellainen kirjan näköinen, paperinen puhelinluettelo) etsitään tietyn henkilön nimi. Entä millaisella algoritmilla puhelinluettelosta löytyy tietyn numeron omistaja? Kumpi algoritmeista on nopeampi ja miksi? (Vinkki: Lue https://tim.jyu.fi/view/2#algoritmin-suunnittelu).

# teht2a

Tehtävä 2.2. (0.5 p.) Pitäydy tässä tehtävässä vielä irti C#:sta ja muista ohjelmointikielestä. Kuvaile suomen kielellä tai pseudokoodilla, miten jakaisit seuraavat tehtävät yhtä pykälää tarkemmiksi osatehtäviksi. Jaa sitten vielä kukin osatehtävä seuraavalle tasolle pienemmiksi osatehtäviksi. Käytä jotakin luonnollisia ilmauksia toistolle ("toista ... kunnes ...") ja päätöstilanteille ("jos ... niin ... muuten ..."): Kirjoita kaikki kohdat a-c samaan vastauslaatikkoon:

  1. tiskaaminen,
  2. kahvin keittäminen,
  3. tiedoston etsiminen nimen perusteella tietokoneen tiedostojärjestelmästä olettaen, että valmista hakutoimintoa ei ole käytettävissä.
# teht2b

Tehtävä 3*

Tee kaikki kohdat 1-3.

Lue ensin: 7.3.2. Muuttujan arvon muuttaminen

Tehtävä 3.1. Mitä alla oleva pääohjelma tulostaa? Kirjoita vastaus alla olevaan tehtävälaatikkoon.

public static void Main()
{
    int a = 5;
    int b = a;
    b++;
    System.Console.WriteLine(a);
    System.Console.WriteLine(b);
}
# teht31

Kokeile nyt kirjoittaa vastaava koodi tämän tehtävän alimpaan laatikkoon. Luokka (public class jne.) täytyy itse täydentää pääohjelman ympärille.

Tehtävä 3.2. Entä jos viimeisen tulostuslauseen jälkeen lisätään seuraavat rivit?

a = b;
a = 15;

Mieti ensin, mitä ohjelma tulostaa (tätä ei tarvitse kirjoittaa vastauslaatikkoon).

Varsinainen kysymys: Paljonko on b:n arvo nyt?

# teht32

Kokeile myös ajaa tämä ohjelma tehtävän lopussa olevassa koodilaatikossa näiden muutosten jälkeen kuten edellisessäkin kohdassa.

Tehtävä 3.3. Lisää vielä edellisten rivien perään seuraavat rivit.

double c = b + a;
System.Console.Write("Summa on ");
System.Console.WriteLine(c);

Tuleeko ongelmia? Mitä tulostuu?

# teht33

Tehtävän 3 Tarkistuslaatikko

Tarkista vastauksesi kirjoittamalla koodi alla olevaan ikkunaan (muista laittaa myös public class määrittely) ja klikkaa aja.

# teht3

Tehtävä 4*

Lue ensin: 6. Aliohjelmat: Täydennä alla oleva ohjelma Portaat.cs toimimaan kuten kommenteissa on sanottu. Vinkki: Shape.Rectangle.

Tuloksen pitäisi näyttää tältä

Jos haluat sijainninkin samalla tavalla kuin mallikuvassa, voit lisätä Begin-metodin loppuun: Camera.ZoomToAllObjects(50);

TODO: Tee Farseerilla GameObjecteja.

Huomautus: PiirraNelio-aliohjelma on tehtäväpohjassa määritelty static-aliohjelmaksi. Tämä tarkoittaa lyhyesti sitä, että aliohjelma toimii vain saamiensa parametrien perusteella, eikä käytä mitään muuta tietoa. Tällöin olion lisääminen ruudulle tapahtuu kutsumalla peli.Add(...), toisin kuin Lumiukko-esimerkissä, missä lisääminen tapahtui Add(...).

Tämä tarkoittaa myös sitä, että PiirraNelio-aliohjelmaa kutsuttaessa on vietävä argumenttina viite peliin itseensä (sana this). Tässä vaiheessa ei tarvitse ymmärtää mitä static ja this tarkoittavat, näitä käsitellään jonkin verran tulevilla luennoilla, ja syvällisemmin Ohjelmointi 2 -kurssilla.

Arviointi: Käytä Set custom points -toimintoa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.

# portaat

Hei! Jäin tässä tehtävässä miettimään, että onko väliä missä kohtaa koodia tuo aliohjelma on? Luennolla se laitettiin viimeiseksi, tässä se on ennen Begin-osiota. Ajo näyttäisi kuitenkin onnistuvan vaikka järjestys on eri.

Voi olla myös Beginin yläpuolella. Kieliopin puolelta väliä ei ole. Käytännössä Begin (tai Main) on järkevä sijoittaa kaikista aliohjelmista joko ensimmäiseksi tai joskus viimeiseksi. -AJL

20 Jan 21 (edited 25 Jan 21)

Sain pienen tuskailun jälkeen koodin toimimaan, mutta pisteytys on edelleen 0. Pitääkö olla kuinka huolissaan?

Aseta omat pisteesi Set custom points -toiminnolla. Lisäsin tämän ohjeeseen. -AJL

24 Jan 21 (edited 24 Jan 21)

Jään jälkeen juuri aliohjelmien takia. Idea on selvä, mutta toteutus ei. >Heitänkö hanskat tiskiin?

Kannattaa ehkä lähteä liikkeelle ensin siitä, että et muuta Beginiä mitenkään, ja laitat PiirraNelio-aliohjelmaan (yhden) neliön piirtämiseen tarvittavan koodi. Olisiko tuosta apua? -AJL

24 Jan 21 (edited 24 Jan 21)

Kannattaa tutustua Discord ohjelmaan ja siellä on Linkin oma kanava missä voidaan yrittää vinkkejä jaella. Tutorit varmaan voi ohjata kanavalle jos ei muuten ole tuttu.

VL: Toivoisin että Ohj1 -kurssien keskustelut pidettäisiin Ohj-kurssien kanavilla. Näillä on paljon ohjaajia. Jos eksytään eri kanaville, ohjaajat eivät voi varmistaa että neuvot ovat oikeita. On opiskelijalle todella kurjaa jos neuvotaan väärin ja sitten joutuu korjaamaan. Esim kurssin-keskustelu on oikea paikka kysellä. Halukkaat linkkiläiset ja tutorit voivat mennä sinne auttamaan, niin tieto tulee muillekin. Sitten suosittelen pääteohjauksia ja demojen tekemistä ajoissa niin, että ohjauksia on vielä jäljellä jos tarvitsee kysellä.

24 Jan 21 (edited 24 Jan 21)

Tehtävä 5

Lue ensin: 6. Aliohjelmat: Aloita ajamalla (tai vie Visual Studioon ja aja siellä) alla oleva lumiukko-ohjelma.

Tehtävä: Tehtävä on kaksiosainen. (1) Muuta ohjelma sellaiseksi, että yksittäisen pallon piirtämiseksi on oma aliohjelma PiirraPallo. (2) Muuta ohjelma sellaiseksi, että se piirtää kuusi ympyrää kolmeen riviin siten, että ympyrät juuri koskettavat toisiaan. Alla mallikuva ratkaisusta. Anna ympyröille säteeksi 50.

Vinkki: Piirrä kynällä paperille kolme toisiaan sivuavaa ympyrää ja niiden keskipisteiden muodostama kolmio. Laske kolmion korkeus (ks. System.Math.Sqrt).

Lisätehtävä (+ 1 bonuspiste): Tee ohjelmasta sellainen, että ympyröiden säde on yhdessä ainoassa paikassa. Ja muuttamalla sädettä (eli yhtä lukua yhdestä paikasta) tulee täsmälleen samanlainen kuva, vain eri "mittakaavassa". Jos teet myös lisätehtävän, saat merkitä tästä tehtävästä 2 pistettä. Kahteen pisteeseen kuitenkin vaaditaan, että et ole "arvannut" ympyröiden paikkoja. Ympyröiden paikkojen laskemisessa voi hyödyntää System.Math.Pow -potenssifunktiota.

Huomaa että TIMissä on ohjelmarunkoa sen kirjoitusikkunan ulkopuolella eikä using-lauseita tai Main-pääohjelmaa rivejä kirjoiteta. Samoin jos ajetaan Visual Studiossa Jypelin projektimalleista tehtynä, niin Main menee Ohjelma.cs-tiedostoon ja omaan koodiin ei enää saa Main:a kirjoittaa.

Arviointi: Käytä Set custom points -toimintoa. Tee itsearvio pistemäärästäsi ja syötä omat pisteesi väliltä 0-1. Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.

# ympyrat

Miksi tämä koodi toimii Visual Studiossa ja lumilyhty onnistuu, mutta tässä näkyy vain vaaleansinistä ajon jälkeen?

Klikkaa “Näytä koko koodi” niin näet että sinulla on luokka luokan sisällä. Se tekee temppujaan:) -Jussi

23 Jan 21 (edited 23 Jan 21)

Voiko tässä tehtävässä hyödyntää Farseer -fysiikkamoottorin painovoimaa? Sain koodin Visual Studiossa toimimaan tämän avulla, mutta tässä se ei näytä enää pelittävän.

TIMissä ohjelmasta näkyy ainoastaan aivan ensimmäinen kuva. Ovela ratkaisu kylläkin, mutta tässä haettiin Pythagoraan-lauseen käyttöä :) -MR

23 Jan 21 (edited 23 Jan 21)

En saa siirrettyä avattua koodia Visual Studiossa. Tulee pitkä error-lista.

Otathan huomioon, että tässä sinulle näkyy Begin-aliohjelma. Ole siis tarkkana copy-pastettaessasi tätä Visualiin. -AJL

24 Jan 21 (edited 24 Jan 21)

Oletan että on pakko pysyä PhysicsObjectina, eikä saa muuttaa GameObjectiksi? Fysiikat tappelee vastaan aika reilusti.

Kyllä ne voivat GameObjectejakin olla. Tässä ei fysiikkaa tarvita. -AJL

24 Jan 21 (edited 24 Jan 21)

Tehtävä 6

Lue ensin: 26. Lukujen esitys tietokoneessa.

Binäärilukujärjestelmässä on kaksi numeroa, nolla ja yksi. Yhtä tällaista arvoa sanotaan bitiksi (bit, binary digit). Vähiten merkitsevä eli viimeisimmäksi kirjoitettu bitti tarkoittaa 10-järjestelmän lukua yksi, toiseksi vähiten merkitsevä bitti lukua kaksi, kolmanneksi vähiten merkitsevä lukumäärää neljä ja niin edelleen aina kakkosen potensseja jatkaen (8, 16, 32, 64, ...). Kokonaisen binääriluvun ilmoittama lukumäärä saadaan kun summataan nämä yksittäisten bittien ilmoittamat lukumäärät toisiinsa. Esimerkiksi binääriluku 1000101 olisi kymmenjärjestelmässä

1*64 + 0*32 + 0*16 + 0*8 + 1*4 + 0*2 + 1*1 == 69

Muunna seuraavat binääriluvut ihmiselle tutumpaan 10-järjestelmään:

10010 
1001110001 
1000000000000000 
1010101010101011 
10000000000000001 
10000000000000010 
10000000000000011

Muista vastaukseen laittaa myös aukilaskettuna se, miten sait tuloksen. Pelkkä numero ei riitä. Aloita jokainen vastaus uudelta riviltä.

# tehtava2

Nykytietokoneissa on tyypillistä jakaa muisti kahdeksan bitin mittaisiin tallennuspaikkoihin eli tavuihin (byte). Mikä on suurin kokonaisluku, jonka voit tallentaa kahden tavun (eli 16 bitin) kokoiseen tilaan (oletetaan että negatiivisia lukuja ei tarvitse esittää)? Vastaus pitää antaa 10-järjestelmän lukuna.

# tehtava2k1

Entä jos pitää voida esittää positiivisia ja negatiivisia lukuja: mikä silloin on toisaalta pienin ja toisaalta suurin luku, joka kahden tavun kokoiseen tilaan mahtuu? Kirjoita ensin isoin luku ja sen jälkeen pienin. Tässäkin vastaus annetaan 10-järjestelmän lukuina. EDIT 21.1. Voit tehdä itse valinnan, onko negatiivisille luvuille käytössä suora tulkinta, yhden komplementti vai kahden komplementti. Vastaus hyväksytään minkä tahansa oletuksen mukaisesti.

# tehtava2k2

Tehtävä 7, TIMiin tutustuminen

Tehtävä 7.1. Jokaisen kurssin sivun yläpalkissa on lista joka alkaa Koti ja loppuu Omat tiedot. Käy jokaisella sivulla ja kirjoita alle kustakin n. 1-2 rivin mittainen kuvaus siitä, mitä sivulla on.

Minun sivun ylälaidassa toiseksi viimeisenä on ‘Lisäsivut’ ja viimeisenä ‘Omat tiedot’, ei ole ‘Muut’ kansiota. Katsonko ihan väärästä paikasta?

Linkkipalkki muuttui hieman tämän kevään kurssille. Käy katsomassa sivut jotka ovat saatavilla. -JuhoK

22 Jan 21 (edited 23 Jan 21)

Sama vika. Lisäksi Omat tiedot sanoo 403 Forbidden :-D

Linkkipalkin sisältöön kommentoin ylempänä. Vien 403-asian eteenpäin. -JuhoK

VL: Lisäsin oikeuden kurssilaisille.

22 Jan 21 (edited 23 Jan 21)

Pitäisikö tuolla omissa tiedoissa näkyä jo jotain pisteitä? Eikai niitä sinne itse pitäisi näpytellä?

Ei näy vielä. Minä laitan demopisteet sinne. -AJL

24 Jan 21 (edited 24 Jan 21)
# t7tim

Tehtävä 7.2. Seuraavissa tehtävissä kopioi osoitepalkissa oleva sivun/sivujen osoite/osoitteet kunkin tehtävän vastaukseksi. Sivuilla tarkoitetaan Ohj1-kurssin TIM-sivuja, ei Googlella löydettyjä satunnaisia sivuja. Vastauksiin ei myöskään laiteta sivuja, joiden osoitteessa esiintyy jokin tietyn kurssin aika tyyliin 16k3op tai 2017s. Paitsi jos erikseen kysytään jonkin tietyn vuoden sivua. Vinkki: Hakutoiminto (suurennuslasi) löytyy sivun oikeasta yläreunasta.

# t7tim2D
# t7timkutsupino
# t7kasitekartta
# t7videot

Tehtävä 7.3. Kun Tehtävässä 4 klikkailet linkkiä Tavallinen/Highlight mitä tapahtuu? Kun klikkailet Tehtävässä 5 linkkiä Näytä koko koodi, mitä tapahtuu?

# t7klik

Tauno T1a (0.5 p.)

Lisää aluksi Taunossa tulos-niminen muuttuja ja tee sitten Taunolla ohjelma, joka laskee yhteen taulukon luvut niin, että lukujen summa on lopuksi tulos-nimisessä muuttujassa. Jotta saisi puoli pistettä pitää ohjelman antaa haluttu tulos Aja-painikkeella, ja myös Test-painikkeella.

Tarkista, että olet kirjoittanut tulos-muuttujan nimen pienellä.

# summaaluvut

Tauno T1b (0.5 p.)

Lisää aluksi Taunossa tulos-niminen muuttuja ja tee sitten Taunolla ohjelma, joka laskee yhteen taulukon luvut niin, että parillisissa paikoissa (indeksit 0, 2, 4) olevien lukujen summa on lopuksi tulos-nimisessä muuttujassa.

Tarkista, että olet kirjoittanut tulos-muuttujan nimen pienellä.

# summaajokotoinen
# taunoOppi

Ville V1

Tee Villestä tehtävät 2.2-2.6 ja 6.1-6.4. Muodollinen parametri on "turkulaisten kielessä" aliohjelman esittelyrivillä oleva muuttujan nimi (meillä tästä käytetään nimeä parametri), ja ''todellinen parametri'' sille kutsussa sijoitettu arvo (meillä argumentti).

Palauta tehtävä kirjoittamalla alla olevaan tekstilaatikkoon mitä opit ja mitä mieltä olit kerran Ville-tehtävistä ja auttoivatko Ville-tehtävät sinua yhtään. Muutama rivi riittää.

# villev1

B1

Tee Khan Academyn neljä "luentoa" Intro to Variables, Using Variables, Challenge: Bucktooth Bunny ja More on Variables. Neljännessä tehtävässä (More on Variables) piirrä Winstonille hattu.

Tehtävän vastauksena palauta koodi neljännestä tehtävästä. Kirjoita perään lyhyt oppimispäiväkirja (mitä teit, mitä opit, jäikö jotain epäselvää).

# tehtavab1

B2

Innovoi jokin ongelma/idea jonka voisi ratkaista ohjelmateknisesti/järjestelmällä jossa ohjelmateknisellä ratkaisulla on oma roolinsa. Kirjoita lyhyt selostus ongelmasta ja sen ratkaisuideasta. Muista että idea voi olla hyvinkin lennokas (esimerkiksi Microsoftin opiskelijakilpailun voittajasovellus auttoi säästämään 50 % kasteluvettä Australiassa). Saat merkitä itsellesi 1 demopisteen, jos idea on sinunkin mielestäsi OIKEASTI hyvä. Tekijänoikeus säilyy keksijällä. AMK:ssa tällaisella kyselyllä syntyi useita jatkokehitykseen menneitä innovaatioita.

# tehtavab2

G1-2 (2 p.)

Tee ohjelma nimeltä SuorakulmiotFysiikalla.cs. Tee siihen aliohjelma nimeltä PiirraSuorakulmio(), joka lisää ruudulle (peliin) PhysicsObject-tyyppisen suorakulmion. Tee aliohjelma siten, että se ottaa parametrina suorakaiteen koordinaatit ja mitat. Laita peliin vielä painovoima seuraavasti (2d-vektori ottaa vastaan kaksi koordinaattia) ja sijoita se Begin()-aliohjelmaan


Gravity = new Vector(/*täydennä 2d-vektorin parametrit...*/);

Vector-luokan dokumentaatio.

ja laita kenttään reunat, etteivät palaset putoile ulos ruudusta.

Level.CreateBorders();

Lisää kentälle 100 eri kokoista suorakaidetta. Vinkki: for-silmukka ja RandomGen.

Huomaa, että tämä tehtävä on tehtävä Visual Studiossa. TIMissä näkyy pelistä vain ensimmäinen frame ilman minkäänlaista liikettä.

# tehtavag12

G3 (2 p.)

Tee tarvittavat aliohjelmat jotta voit tehdä aliohjelmakutsun TeeLumiukko kaikilla seuraavilla tavoilla. Ratkaisussa ei saa olla toistoa koodissa, eli esimerkiksi pallon luontikoodia ei saa olla monessa aliohjelmassa.

Kun olet mielestäsi valmis, laita itse pisteesi "Set custom points"-toiminnolla, enintään 2.0 pistettä.

TeeLumiukko(5); // tekee 5-palloisen lumiukon origoon, väri valkoinen
TeeLumiukko(3, 100, 100); // 3 palloa, alin pallo x=100, y=100, väri valkoinen
TeeLumiukko(4, -100, -100, Color.Green); // 4 palloa, alin pallo x=-100, y=-100, väri vihreä
# tehtavag13

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.