Sinun UserID: 0
```
Ilmoittaudu missä ryhmässä (zoom) katsot demojen vastaukset (huom joka viikolla oma ilmoittautuminen)
Please
to interact with this component. Please
to interact with this component. Please
to interact with this component. Please
to interact with this component. Please
to interact with this component.
Alla demotilanteesi.
- Pisteet eivät päivity tähän automaattisesti, vaan aina pienellä viiveellä.
- Värit: Punainen: Minimit ei täyty. Vihreä: vähintään 5p joista 2p tähtitehtävistä.
Please
Viikko |
35 25.8. |
36 1.9. |
37 8.9. |
38 15.9. |
39 22.9. |
40 29.9. |
41 6.10. |
42 13.10. |
43 20.10. |
44 27.10. |
45 3.11. |
46 10.11. |
47 17.11. |
48 24.11. |
Luennot | 1&2 | 3&4 | 5&6 | 7&8 | 9&10 | 11&12 | 13&14 | 15&16 | 17&18 | 19&20 | 21&22 | 23&24 | ||
Tärkeät |
ti: bonus pe: HT1 |
Väli- kysely |
pe: Debug- näyte |
ti: bonus pe: HT2 |
ti: bonus pe: HT3 |
Tentti pe: 2.12 |
||||||||
dh | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Summa | % | |
Demot |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Korjattu |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
|||
Tunnit |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please |
Please
Ohjelmointi 1, s 2022 / Demo 2
Jos haluat harjoitella vastaavilla tehtävillä, joihin saat myös mallivastaukset, niin katso:
HUOM! Joka kerta on saatava vähintään 2p tähtitehtävistä! Alle 5p tehneillä on huono ennuste loppukurssissa.
Demot palautetaan viimeistään maanantaina klo 11:00 mennessä. Voit palauttaa osan tai kaikki tehtäväsi etukäteenkin ja täydentää vastauksia määräaikaan mennessä. Alla mainitut mallivastaukset näkyvät vasta kun demojen palautustilaisuudet on pidetty.
- huomaa että Answer-linkistä pääset katsomaan muiden vastauksia kun palautusaika on ummessa
- mallivastaukset
- muiden vastaukset
Oppimistavoitteet
Klikkaile ruksit niihin kohtiin jotka olet oppinut. Työkirja-sivulla näet yhteenvedon kaikista demoista.
Palautus
Demot palautetaan viimeistään maanantaina klo 11:00 mennessä. Voit palauttaa osan tai kaikki tehtäväsi etukäteenkin ja täydentää vastauksia määräaikaan mennessä.
Ajankäyttösi tällä viikolla (0.25p)
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 (=zoom) 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. Tästä annettava 0.25 näkyy Pisteet-sivun demokerran summassa. Kirjoita pelkkä luku esim tyyliin 13.5
Ajankäyttösi tällä viikolla: Plugin numericfield error: Task id refers to another document, but you do not have access to that document.
Edellisten demojen vastausten korjaaminen E1 (pakollinen)
Kun tehtävien vastaukset on julkistettu (esim demopalautuksissa), pitää jokaisen korjata omat vastauksensa niin, että ainakin Tauno ja perustehtävät 1-6 tuottavat vähintään 1p kukin. Eli demon palautuksen jälkeen pitää demosivun näyttää vähintään 7 p.
Siis esim. ennen demo 2 tehtävien aloittamista pitää demoista 1 tulla vähintään mainittu pistemäärä.
Huomaa että useissa tehtävissä automaattiarvostelu ei ole likikään täydellinen ja vaikka automaatti antaisi täydet pisteet, se ei takaa että tehtävä olisi likikään oikein. Oikea vastaus on aina tarkistettava demonpalautuksesta (paikan päällä tai videoista).
Katso demonpalautusvideo ja kuvaile miten edellisen viikon demot sujuivat itsearviolomakkeeseen.
Kirjoita alla olevaan tekstilaatikkoon kunkin edellisen demokerran tehtävän kohdalle === katkoviivan alle
- millainen vastauksesi oli verrattuna malliin/demojen palautuksessa käsiteltyyn tehtävään
- olisiko vastauksessasi pitänyt olla jotakin enemmän/vähemmän
- jos et ollut tehtävää tehnyt, niin miksi?
- jos et ollut tehtävää tehnyt, niin mitä ymmärsit vastaavasta mallivastauksesta tai demojen palautuksessa käsitellystä vastauksesta
- osaisitko mallin nähtyäsi tehdä vastaavan tehtävän? Miten?
Lisää tarvittavat otsikkorivit lopuille tehtäville samaan tyyliin kuin alla on tehty.
Video 1
Voit saada demopisteitä indeksoimalla luento/demovideoita, ks: Videoiden hakemisto aihepiireittäin 22 Lisää em. videosivulle vähintään 3-linkkiä ja kirjoita alla olevaan laatikkoon, mitkä linkit lisäsit. Joka demokerralle voi merkitä aina vähintään 3:sta linkistä yhden demotehtävän.
TDD-pohja
Tässä voit testata ohjelmiasi jos ComTest ei toimi koneellasi
Tauno T1 a
Lisää tulos-niminen muuttuja Taunoon. Tee ohjelma, joka laskee yhteen taulukon luvut niin, että lukujen summa on lopuksi tulos
-nimisessä muuttujassa.
(Muista painaa Taunoissa sekä Aja
että Test
että saat niistä kummastakin Taunosta sen 0.5 pistettä eli molemmista Taunoista yhteensä 1 p.)
Tauno T1 b
Lisää tulos-niminen muuttuja Taunoon. Tee ohjelma, joka laskee yhteen taulukon luvut niin, että parillisissa paikoissa olevien lukujen summa on lopuksi tulos
-nimisessä muuttujassa.
Ville V1
Tee Villestä tehtävät 2.2-2.6 ja 6.1-6.4.
Kerro tehtävän palautuksena mitä opit Villeltä.
Vinkki: Muodollinen parametri on "turkulaisten kielessä" aliohjelman esittelyssä oleva muuttujan nimi ja todellinen parametri sille kutsussa sijoitettu arvo (C#:n omassa dokumentaatiossa tämä on argument).
Tehtävä 1. Lausekkeiden arvot
Mieti ensin kustakin alakohdasta, että mitä ohjelma tekee. Kirjoita päätelmä itsellesi ylös ja kokeile vasta sitten itse ohjelmaa (joka pitää korjata oikeaksi että sen voi ajaa). Ohjelmakoodin lukeminen on tärkeä taito. Voit myös kokeilla tehdä ohjelmat itse Visual Studiolla. Kohtien a)-d) ohjelmien ajamisesta ei tule pisteitä, vaan niihin kuuluvien kysymysten vastauksista, kustakin alakohdasta max 0.25 p. Lue ensin huolella mitä kysytään ja miten pitää vastata.
a) Olkoon meillä seuraavanlainen pääohjelma:
Mitä viimeinen rivi (ennen aaltosulkua) tulostaa? Kirjoita yhdelle riville se luku minkä ohjelma tulostaa. Kun olet tallentanut vastauksesi voit täydentää luokan (class
, ks. alkuperäinen HelloWorld -ohjelma) yllä olevan koodin ympärille ja tarkistaa vastauksesi painamalla aja-nappia.
b) Miten tuloste muuttuisi, jos kaikki sulut otettaisiin pois riviltä
int x = a + b * ((2 - c) / a + b);
Kirjoita luku, jonka muutettu ohjelma tulostaisi.
Kun olet vastannut kysymykseen, voit tarkistaa vastauksesi muuttamalla 1. kohdan koodia.
c) Muutetaan pääohjelmaa seuraavasti:
Mikä ongelma tässä tulee? Mieti ja vastaa kysymykseen, ennen kuin käännät ohjelman. Kun ajat ohjelman, mitä huomaat?
d) Tehdään seuraavanlainen pääohjelma:
Mitä yllä oleva ohjelmanosa tulostaa? Mikä on c
:n arvo viimeisen rivin jälkeen? Vastaa kumpaankin kysymykseen yksi luku, kumpikin omalle rivilleen. Kun olet vastannut kysymykseen, voit tarkistaa vastauksesi ajamalla yllä olevan koodin (kunhan ensin korjaat sen toimivaksi).
Miksi d) kohdassa vastaukseksi ei käy numerot 3 ja 4, vaikka ohjelma määrittelee int c:n arvoa, mikä on 3. ja C:n arvo viimeisen rivin jälkeen on 4.
VL: Lisääppä ohjelmaan vaikka tuostuslause, joka tuostaa c:n arvon.
—Tehtävä 2. Binääriluvut
M: 26. Lukujen esitys tietokoneessa. Binäärilukujärjestelmässä on kaksi numeroa, nolla ja yksi. Tätä sanotaan bitiksi (binary digit). Vähiten merkitsevä eli viimeisimmäksi kirjoitettu bitti tarkoittaa lukumäärää yksi, toiseksi vähiten merkitsevä bitti lukumäärää 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*2^6 + 0*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 ==
1*64 + 0*32 + 0*16 + 0*8 + 1*4 + 0*2 + 1*1 ==
64 + 4 + 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ä.
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ää)? Entäpä jos pitää voida esittää positiivisia ja negatiivisia lukuja: mikä silloin on toisaalta pienin ja toisaalta suurin luku, joka kahden tavun kokoiseen tilaan mahtuu?
Tehtävä 3. Algoritmit
M: 3. Algoritmit: Kirjoita suomenkielinen (ei ohjelmointikielinen) algoritmi eli toimintaohje, jolla kuvaat:
- miten "wanhasta" kirjan näköisestä paperisesta puhelinluettelosta etsitään tietyn henkilön puhelinnumero
- millaisella algoritmilla puhelinluettelosta löytyy tietyn numeron omistaja
- kumpi algoritmeista on nopeampi ja miksi?
(Vinkki: Lue Luku3).
M: 3. Algoritmit: Pitäydy tässä tehtävässä vielä irti C#:sta ja muista ohjelmointikielestä. Kuvaile suomen kielellä tai korkeintaan ''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 ja päätöstilanteille ("jos ... niin ... mutta muussa tapauksessa ..."):
- Tiskaaminen
- Kahvin keittäminen
- Ohjeet kuinka kurssin sivuilta löytää kurssilla käytettävän sanaston (joka ei siis ole se tynkä luentomonisten lopussa).
Tehtävä 4*. ATK
ATK = Automaattinen TietojenKäsittely. Tässä tehtävässä yritetään motivoida miksi automaatio on tärkeää ja miksi ongelma pitää osata ensin tehdä itse ja vasta sitten miettiä ratkaisua joka automatisoi sen. Lisäksi opetellaan yleistämään ongelmaa.
Huomautus: Seuraava pitää lukea huolella monta kertaa ja ymmärtää ennenkuin lähtee tekemään! Eli tehtävä on erittäin paljon luetun ymmärtämistehtävä. Kuten oikeastaan kaikki asiakkaan ja ohjelmoijan välinen kommunikaatio.
Laskettava montako karkkia opettaja heittää luennolla keskimäärin.
Opettaja heittelee luennoilla karkkeja. Luennolla heitettyjen karkkien määrä on luentokerroittain kokonaislukutaulukossa (taulukko
). Ne luennot, joilla ei ole heitetty yhtään karkkia, jätetään laskematta tulokseen, eli keskiarvo lasketaan vain niiltä päiviltä, jolloin karkkeja on heitetty. Luonnollisesti myös negatiiviset arvot hylätään. Keskiarvon laskeminen lopetetaan (eli keskiarvo on tätä edeltävien hyväksyttyjen alkioiden keskiarvo) mikäli taulukosta tulee vastaan luku 99 tai suurempi. Laskeminen lopetetaan luonnollisesti myös mikäli taulukon alkiot loppuvat. Perustapausta vastaa alla olevan taulukon mallilasku M1 (vialliset = 0
, lopetus=99
).
Jotta algoritmi olisi yleiskäyttöisempi annetaan taulukon
lisäksi parametrina minimiarvo (vialliset
), joka vastaa alkuperäisen ongelman arvoa 0
(eli alkuperäisen "negatiiviset" tarkoitti että pienempiä tai yhtä suuria kuin vialliset
). Yleiskäyttöisyyden vuoksi algoritmille annetaan vielä parametrina lopetusarvo, joka vastaa alkuperäisen ongelman arvoa 99
(lopetus
). Mikäli keskiarvoa ei voi laskea, käytetään laskun tuloksena vialliset
arvoa.
Laske em. sääntöjen mukaiset keskiarvot seuraavista arvoista. Aluksi on muutama mallilasku (M1, M2 ja M3).
nr | taulukko | vialliset | lopetus | tulos |
---|---|---|---|---|
M1 | 12, 0, 42, 14, 99, 12, 55 | 0 | 99 | 22.667 |
M2 | 1, 2, 3, 0 | -2 | 10 | 1.5 |
M3 | 1, 2, 3, 0 | -2 | 0 | -2 |
1 | 12, 0, 42, 14, 99, 12, 55 | 1 | 42 | |
2 | 12, 0, 42, 14, 100, 12, 55 | -1 | 41 | |
3 | 12, 0, 42, 14, 99, 12, 55 | 0 | 0 | |
4 | tyhjä | 0 | 99 | |
5 | 0, 10 | 0 | 99 | |
6 | -1, -2, 99, 1 | 0 | 99 | |
7 | 12, 0, 42, 14, 99, 12, 55 | 99 | 0 | |
8 | 12, 0, 42, 14, 99, 12, 55 | 98 | 0 | |
9 | -1, 0, 1 | -10 | 99 | |
10 | -1, 0, 1 | -1 | 99 |
Vinkki kaikille, kannattaa katsoa videot! :)
—Huom! Videossa pitäisi -2 kohdalla sanoa että hylätään "miinus kaksi" ja pienemmät. Miinus on unohtunut sanoa. Tosin arvolla ei ole merkitystä hylkäämisen suhteen tässä tapauksessa. Kun videoon laittaa tekstityksen päälle, niin sillä näkee virheen.
Tehtävä 5*. Portaat
M: 6. Aliohjelmat: Täydennä alla oleva ohjelma Portaat.cs
toimimaan niin, että se piirtää 5 porrasta. Ole tarkkana että ohjelma muodostaa kokonaisuuden, eli katso Näytä koko koodi
kohdasta että mitä on valmiina (luokka), eli älä lisää sitä enää.
Vinkki: Ympyrän (katso luentojen PiirraPallo
, Shape.Circle
on oikeastaan sama kuin Shape.Ellipse
kun leveys ja korkeus ovat samoja) tilalla Shape.Rectangle. Älä tee muutoksia mihinkään muualle kuin Täydennä
merkittyihin kohtiin! (Huomaa että TIMissä on ohjelmarunkoa sen kirjoitusikkunan ulkopuolella - katso Näytä koko koodi
- eikä using tai Main
rivejä kirjoiteta. Ole tarkkana myös sulkujen kanssa! Samoin jos ajetaan Visual Studiossa Jypelin projektimalleista tehtynä, niin Main
menee Ohjelma.cs
tiedostoon ja omaan koodiin ei enää saa Main-funktiota
kirjoittaa. )
Huom! Videolla sanotaan että 0,0 on neliön nurkassa ja tehtävässä että se on neliön keskipisteessä. Tehtävän saa tehdä kummalla tavalla tahansa. Tulevissa demoissa tosin on hyötyä että 0,0 on nurkassa.
Huom! Koodin saat kopioitua Visual Studioon ja takaisin seuraavasti (ja käytä tätä samaa tekniikkaa kaikissa tulevissa demoissa):
- Paina
Näytä koko koodi
-linkkiä. - Katso mikä on luokan nimi (tässä tapauksessa
Portaat
). - Luo projekti, jonka nimi on sama kuin em. luokan nimi.
- Paina
Copy
-linkkiä silloin kun koko koodi on näkyvissä TIMIssä. - Liitä koodi VisualStudiossa (tässä esimerkissä
Portaat.cs
tiedostoon)Ctrl-A
Ctrl-V
(Macissa tietysti Ctrl-tilalla Macin vastaava)
- Muokkaa ohjelmaa toimivaksi. ÄLÄ HÄVITÄ
// BYCODE..
sisätäviä rivejä, niiden perusteella TIM poistaa sen koodin jota ei palauteta. - Kun toimii, niin VisualStudiossa, niin kopioin koko vastaus (
Ctrl-A
Ctrl-C
) - Timissä ohjelma-alueessa liita vastaus tähän (
Ctrl-A
Ctrl-V
) Aja
Document
(ja katso millainen dokumentti tuli, käy kaikissa dokumentin linkeissä)
Vinkki: Katso 4. luennon LumiukkoAli, jossa piirretään pallo (mutta on myöskin aliohjelma PiirraLumiukko
, jota ei tarvita tässä tehtävässä tai oikeastaan tämän tehtävän pääohjelma (Begin
) on kuten PiirraLumiukko
luennon tehtävässä.
Tuloksen pitäisi näyttää sijaintia lukuunottamatta tältä
Vinkki: Jos haluat sijainninkin samalla tavalla kuin mallikuvassa, voit lisätä Begin
-metodin loppuun: Camera.ZoomToAllObjects(50);
Loppuun lisääminen tarkoittaa että laitetaan ennen Begin
-metodin lopettavaa aaltosulkua.
Tehtävä 6. Ympyrät kolmion muotoon
M: 6. Aliohjelmat: Aja alla oleva ohjelma, joka piirtää lumiukon.
Huom! Yritä tehdä ohjelmasta sellainen, että ympyröiden säde on yhdessä paikassa. Tällöin muuttamalla sädettä syntyy täsmälleen samanlainen kuva, eri "mittakaavassa". Saat merkitä tehtävästä yhden pisteen vaikket tuossa "yleistämisessä" vielä onnistuisikaan.
- Muuta ohjelma sellaiseksi, että yksittäisen pallon piirtämiseksi on oma aliohjelma
PiirraPallo
. Mieti mitä parametreja pallon piirtämiseksi tarvitaan. - Muuta sitten 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ä paperille kolme toisiaan sivuavaa ympyrää ja niiden keskipisteiden muodostama kolmio. Laske kolmion korkeus (ks. System.Math.Sqrt. Esimerkiksi Pythagoraan lauseesta saataisiin hypotenuusan c
pituus ratkaistua näin: c = Math.Sqrt(a*a + b*b)
).
Muokkasin lumiukkoa nyt niin, että jokaisen pallon säde olisi samalla kohdalla, eli käytännössä lopputuloksena näyttää siltä niinkuin lumiukkoa katsoisi ylhäältä alaspäin (ohjelmoin kunkin pallon eri värillä jotta kaikki pallot ei ole valkoisia koska sillon niitä ei tietenkään toisistaan erottaisi). Pisteitä siitä tuli nyt kuitenkin vain 0.1 eli ymmärsinköhän jotain väärin? Pitäisikö lumiukon pallot tehdä siis sittenkin tuon lumilyhdyn näköiseksi, siten, että alhaalla on kaksi palloa ja niiden päällä/yläpuolella keskellä 1? Tarkoittaako "säteen muuttaminen" säteen koon JA sijainnin muuttamista, eikä pelkästään sijainnin muuttamista?
VL: Tuo tarkoittaa että koodissa säde on sanottu vain kerran sijoittamalla se johonkin muuttujaan jota käytetään jatkossa. Eli jos halutaan lumilyhty eri kokoisilla palloilla, niin vain yhdessä kohti koodia pitää tehdä muutos. Siinä ei siis puhuta pallojen sijainneista lopputuloksessa.
Pitääkö tässä näkyä aliohjelma jotta voi saada tarvittavat täydet pisteet, eli ei riitä että pallot ovat alemman kuvan vaatimalla tavalla?
VL: Luitko ohjeen Points/Pisteet rivin kohdalta? #- Ai, kappas, kiitoksia! (Tuo kohta näytti ensin siltä että sitä ei pysty muokkaamaan, tai ehkä oli niin väsy ettei tajunnut ajatella loppuun asti.. asia kunnossa!)
—
L1. Liukuhihna
Dokumentissa Liukuhihna on hauska robotti. Vastaa siellä oleviin kysymyksiin. Maksimissaan voit tuolta kerätä 2.5 p. Kirjoita alla olevaan tehtävään miltä liukuhihnatehtävä tuntui ja laita itse tehtävän pisteisiin liukuhihnan tuloksesi. Saat tehdä tähän demoon tehtävästä osan ja kolmanteen demoon osan, kunhan kumpaankin merkkaamasi (demo2 + demo3) summa on sama kuin Liukuhihnatehtävän pistemäärä.
Huom! Pisterajatarkistus ei vättämättä toimi, joten et saa huijata laittamalla liikaa pisteitä!
B1. Harjoitustyö
Kurssille kuuluu harjoitustyö, mutta mitä harjoitustyössä sitten pitäisi tehdä? Jollei valmista peli-ideaa ole, tutustu aiempien vuosien tuotoksiin ja raportoi mietteesi kolmesta eri (Jypeli) pelistä tai ei-pelistä. Liitä mukaan myös linkki, mistä ko. pelin/videon/ohjelman löytää.
Alla linkkejä, mistä voi löytää peleihin liittyviä videoita ja itse pelejä:
Katso myös video GalaxyTripin tekemisestä ja sen lähdekoodi.
B2. Alice ja puut
Tämä jälkeen ei ole enää Alice-demoja, eli jos sitä ei ole vielä asentanut, niin kannattaa miettiä asentaako tämän takia.
Joko Alice 2.3: Aloita avaamalla Alicen luisteluesimerkki Eli aloita luistelu-tutorial ja poistu siitä saman tien. Taustalla on puita. Laita kaksi niistä saapumaan luistelijan luo niin, että ensimmäinen saapuu 2 sekunnin aikana ja "kaatuu" 45 astetta vasemmalle sen jälkeen, kun toinen on saapunut. Ensimmäisen kaatumisen jälkeen toinen kaatuu 45 astetta oikealle. Tehtävän vastauksena palauta lisäämäsi "ohjelmarivit" käsin tekstiksi kopioituna tyyliin
IceSkater.do simple spin
Tai Alice 3: Luo maailma missä on vähintään 3 "oliota". Sitten kuten edellä että kaksi saapuu sen kolmannen luo ja kaatuu kuten edellä.
B3. Khan Academy ja Code Org
Tässäkin kannattaa miettiä viekö erilainen materiaali omaa edistymistä eteen- vai taaksepäin. Jotkut kokevat hyödylliseksi, toiset ajanhukaksi.
Tee Khan Academyn "luennot" Intro to Variables ja More on Variables. Kokeile lisätä koodiin joku oma muuttuja ja kokeile muutella sitä.
Kokeile myös Code.orgia
Tehtävän vastauksena kerro mielipiteitä Khan Academyn "luennoista" ja käytön järkevyydestä tällä kurssilla.
G1-2. Tippuvat suorakulmiot
Tee ohjelma nimeltä SuorakulmiotFysiikalla.cs
. Tee siihen aliohjelma nimeltä PiirraSuorakulmio()
, joka lisää ruudulle (peliin) PhysicsObject
-tyyppisen suorakulmion. Tee aliohjelma siten, että se ottaa parametrinä pelin, 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...*/);
Laita kenttään myös reunat, etteivät palaset putoile ulos ruudusta.
Level.CreateBorders();
HUOM! Vastauksen tallentaminen kestää, koska tästä tehdään palvelimella muutaman sekunnin video joka sitten näytetään tallentamisen jälkeen.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.