1. Taustatietoa näppäimistönkuuntelusta

Koko: px
Aloita esitys sivulta:

Download "1. Taustatietoa näppäimistönkuuntelusta"

Transkriptio

1 Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme voi jo kutsua peliksi :). 1. Taustatietoa näppäimistönkuuntelusta Jos ymmärrät jo, kuinka näppäimistönkuuntelu toimii, voit hypätä kohtaan 2. Pelissämme on ollut alusta saakka nappi, josta pelin saa lopetettua. Lopetusnappi on asetettu Begin-aliohjelmassa. Pelin lopettamisen nappi on siis tehty siten, että näppäimistöltä kuunnellaan Esc-nappia, ja kun sitä painetaan, kutsutaan aliohjelmaa ConfirmExit: (Tätä ei tarvitse kirjoittaa uudestaan.) public override void Begin() LuoKentta(); AloitaPeli(); Muita näppäimiä saa asetettua vastaavalla tavalla. Omien näppäinten asettamista varten tutkitaan hieman tarkemmin, miten lopetusnappi on tehty. 1. Taustatietoa näppäimistönkuuntelusta 1

2 Aliohjelmaa Keyboard.Listen kutsumalla saadaan peli kuuntelemaan näppäimistön painalluksia. Listen-aliohjelmalle annetaan seuraavat parametrit: Ensimmäinen parametri kertoo mitä näppäintä kuunnellaan. Lopetusnapissa se on `Key.Escape` eli Esc-näppäin. Toinen parametri määrittää minkälaisia näppäinten tapahtumia halutaan kuunnella ja sillä on neljä mahdollista arvoa: ButtonState.Released: Näppäin on juuri vapautettu ButtonState.Pressed: Näppäin on juuri painettu alas ButtonState.Up: Näppäin on ylhäällä (vapautettuna) ButtonState.Down: Näppäin on alaspainettuna Kolmas parametri on sen aliohjelman nimi, jota kutsutaan kun näppäimen on siinä tilassa, mitä kuunnellaan. ConfirmExit on valmis aliohjelma, jota kutsumalla peli kysyy halutaanko se lopettaa. Kolmas parametri voi olla myös itse kirjoitettu aliohjelma. Neljäs parametri on ohjeteksti, joka voidaan näyttää pelaajalle pelin alussa. Tässä tarvitsee vain kertoa mitä tapahtuu kun näppäintä painetaan. Ohjetekstin tyyppi on string eli merkkijono eli tekstiä. Teksti kirjoitetaan lainausmerkeissä ". Tämän parametrin arvo voi olla myös null eli tyhjä. Lopuksi Listen-aliohjelmalle voi antaa lisääkin parametreja sen mukaan mitä pelissä tarvitaan. Nämä ylimääräiset parametrit välitetään näppäintä kuuntelevalle aliohjelmalle. 2. Ohjainten asettaminen Koska näppäinten asettaminen on uusi selkeä kokonaisuus, tehdään siitä oma aliohjelma. Lisää ohjelmakoodiin uusi aliohjelma nimeltä AsetaOhjaimet ja siirrä lopetusnapin tekevä rivi sinne: Lisää AsetaOhjaimet-aliohjelman kutsu Beginiin. Ohjaimet on loogista asettaa ennen kuin peli aloitetaan, joten kirjoita AsetaOhjaimet-aliohjelman kutsu LuoKentta ja AloitaPeli -aliohjelmien kutsujen väliin. Begin näyttää muutosten jälkeen tältä: public override void Begin() LuoKentta(); AsetaOhjaimet(); AloitaPeli(); 2. Ohjainten asettaminen 2

3 Pong-pelissä mailan ohjaamisen ideana on, että mailaa liikkuu ylös, kun jokin näppäin on pohjassa. Kun näppäin päästetään pohjasta, maila pysähtyy. Vaikka emme vielä tarkalleen tiedä miten saamme mailat liikkumaan, tehdään näppäimen kuuntelut toisen mailan liikuttamiseksi ylöspäin. Toivomme että toinen maila liikkuisi ylöspäin näppäimellä A. Kirjoita kaksi Listen-aliohjelman kutsua lisää AsetaOhjaimet-aliohjelmaan mailan liikuttamista varten: Keyboard.Listen(Key.A, ButtonState.Down, LiikutaMaila1Ylos, "Pelaaja 1: Liikuta mailaa ylös"); Keyboard.Listen(Key.A, ButtonState.Released, PysaytaMaila1, null); Kuunnellaan näppäintä `Key.A` eli A-näppäintä. Ensimmäisessä kutsussa kerrotaan aliohjelma (LiikutaMaila1Ylos), johon tullaan kun näppäin on pohjassa (ButtonState.Down). Toisessa kutsussa kerrotaan mitä tehdään (PysaytaMaila1), kun näppäin vapautetaan (ButtonState.Released). Emme ole vielä toteuttaneet tällaisia aliohjelmia, mutta mietitään sitä vasta seuraavaksi. 3. Aliohjelma mailan liikuttamiseksi Koska maila on fysiikkaolio, sen yhtenä ominaisuutena on nopeus (engl. velocity). Jos vain asetamme mailalle jonkin nopeuden, fysiikkapeli hoitaa mailan paikan muuttamisen. Nopeus esitetään vektorina. Vektorin x-arvo kertoo mailan nopeuden vaakasuunnassa ja y-arvo pystysuunnassa. Millaisia vektoreita siis tarvitsemme mailan liikuttamiseen ylös ja alas? Entä miten voisimme ilmaista mailan pysäyttämisen? Tarvitsemme kolme eri nopeusvektoria: Ylöspäin: nopeuden x-arvo nolla ja y-arvo positiivinen Alaspäin: nopeuden x-arvo nolla ja y-arvo negatiivinen Pysähtyminen: nopeuden x- ja y-arvot molemmat nolla eli nollavektori Koska lisäksi mailoja on kaksi, voisimme toteuttaa mailojen liikuttamisen kuudella eri aliohjelmaa: LiikutaMaila1Ylos, LiikutaMaila2Ylos, LiikutaMaila1Alas, LiikutaMaila2Alas, PysaytaMaila1 ja PysaytaMaila2. Tarkemmin ajateltuna kaikki aliohjelmat tekevät kuitenkin samaa asiaa: asettavat mailalle nopeuden. Erilaista on vain maila jolle nopeus asetetaan ja nopeuden suunta. 3. Aliohjelma mailan liikuttamiseksi 3

4 Viemällä liikutettavan mailan parametrina selviämme mailojen liikuttamisesta vain kolmella aliohjelmalla: LiikutaMailaaYlos, LiikutaMailaaAlas ja PysaytaMaila. Älä kirjoita alla olevia aliohjelmia itse. Kun jälleen tarkastellaan kolmea aliohjelmaamme, huomataan että jokaisessa edelleen toistuu vektorin luominen ja sen asettaminen mailalle nopeudeksi. Erilaista on vain millainen vektori nopeudeksi asetetaan. Jos myös nopeus vietäisiin parametrina, selviäisimme mailojen liikuttamisesta yhdellä ainoalla aliohjelmalla! Mailojen liikuttamisen voimme siis hoitaa kuuden aliohjelman sijaan yhdellä aliohjelmalla AsetaNopeus, jolle annetaan parametrina maila jota liikutetaan, ja mailan nopeuden vektori. Kirjoita siis aliohjelma AsetaNopeus ja sille alla oleva koodi: void AsetaNopeus(PhysicsObject maila, Vector nopeus) maila.velocity = nopeus; 3.1. Mailat ja vektorit attribuuteiksi Listen-aliohjelmalle voi antaa mitä tahansa omia parametrejä pakollisten parametrien jälkeen. Nämä parametrit toimitetaan näppäintä kuuntelevalle aliohjelmalle. Tehdään mailoille ja vektoreille muuttujat, jotka voimme antaa parametreina mailan liikuttamisesta vastaavalle aliohjelmalle. Jotta muuttujat näkyisivät AsetaOhjaimet-aliohjelmalle, tehdään niistäkin attribuutteja. Esittele luokan alussa uudet attribuutit, maila1 ja maila2 sekä luo uudet vektorit nopeusylos ja nopeusalas: public class Pong : PhysicsGame Vector nopeusylos = new Vector(0, 200); Vector nopeusalas = new Vector(0, -200); PhysicsObject pallo; PhysicsObject maila1; PhysicsObject maila2; public override void Begin() LuoKentta(); 3.1. Mailat ja vektorit attribuuteiksi 4

5 AsetaOhjaimet(); AloitaPeli(); 3.2. Mailojen sijoitus attribuutteihin Jotta luomamme mailat menevät attribuutteihin maila1 ja maila2, täytyy ne sijoittaa niihin. Muokkaa tätä varten LuoMaila-aliohjelmaa niin, että se palauttaa siellä luodun mailan: PhysicsObject LuoMaila(double x, double y) PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); maila.shape = Shape.Rectangle; maila.x = x; maila.y = y; maila.restitution = 1.0; Add(maila); return maila; Ennen muutosta aliohjelman nimen edessä oli sana void sen merkiksi, että aliohjelma ei palauta minkään tyyppistä tietoa. Koska nyt aliohjelma palauttaa mailan, joka on tyyppiä PhysicsObject, vaihdettiin se void:in tilalle. Aliohjelman loppuun lisättiin return-lause, joka palauttaa luodun mailan. Muokkaa LuoKentta-aliohjelmaa niin, että luodut mailat sijoitetaan muuttujiin maila1 ja maila2: void LuoKentta() pallo = new PhysicsObject(40.0, 40.0); pallo.shape = Shape.Circle; pallo.x = ; pallo.y = 0.0; pallo.restitution = 1.0; Add(pallo); maila1 = LuoMaila(Level.Left , 0.0); maila2 = LuoMaila(Level.Right , 0.0); Level.CreateBorders(1.0, false); Level.Background.Color = Color.Black; Camera.ZoomToLevel(); LuoMaila-aliohjelman tekemät mailat saadaan otettua talteen muuttujiin sen takia, että LuoMaila palauttaa tehdyn mailan. Ilman palauttamista maila kyllä tehtäisiin, mutta emme luomisen jälkeen pystyisi enää viittaamaan siihen millään tavalla. Nyt meillä on olemassa mailat maila1 ja maila2, jotka näkyvät kaikille aliohjelmille Mailojen sijoitus attribuutteihin 5

6 3.3. Maila liikkumaan ylöspäin Muuta lopuksi AsetaOhjaimet-aliohjelman Listen-kutsuja niin, että suoritetaan AsetaNopeus-aliohjelmaa ja viedään sille parametrina se maila, johon halutaan vaikuttaa, ja se vektori, joka halutaan mailalle asettaa nopeudeksi: Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); (Ellei pelisi toimi, yritä selvittää mistä vika johtuu, tai pyydä ohjaajaa auttamaan.) 4. Molempien mailojen liikuttaminen Molempien mailojen liikuttaminen voidaan nyt tehdä helposti vain lisäämällä Keyboard.Listen-kutsuja. Täydennä AsetaOhjaimet-aliohjelmaasi vielä seuraavat vihreällä merkityt Listen-kutsut. Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Kuten nyt nähdään, mailan ja nopeuden vieminen parametrina Keyboard.Listen-aliohjelmalle oli todella hyödyllistä, sillä voimme nyt helposti lisätä ohjauksen useammalle kuin yhdelle mailalle emmekä tarvitse ohjaamiseen kuin yhden aliohjelman. Kokeile miten pelisi toimii! 4. Molempien mailojen liikuttaminen 6

7 5. Lopputulos Kun mailojen ohjaaminen on mukana, näyttää koodi seuraavalta: ing System; ing System.Collections.Generic; ing System.Linq; ing System.Text; ing Jypeli; ing Jypeli.Assets; ing Jypeli.Controls; ing Jypeli.Effects; ing Jypeli.Widgets; blic class Pong : PhysicsGame Vector nopeusylos = new Vector(0, 200); Vector nopeusalas = new Vector(0, -200); PhysicsObject pallo; PhysicsObject maila1; PhysicsObject maila2; public override void Begin() LuoKentta(); AsetaOhjaimet(); AloitaPeli(); void LuoKentta() pallo = new PhysicsObject(40.0, 40.0); pallo.shape = Shape.Circle; pallo.x = ; pallo.y = 0.0; pallo.restitution = 1.0; Add(pallo); maila1 = LuoMaila(Level.Left , 0.0); maila2 = LuoMaila(Level.Right , 0.0); Level.CreateBorders(1.0, false); Level.BackgroundColor = Color.Black; Camera.ZoomToLevel(); PhysicsObject LuoMaila(double x, double y) PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0); maila.shape = Shape.Rectangle; maila.x = x; maila.y = y; maila.restitution = 1.0; Add(maila); return maila; void AloitaPeli() 5. Lopputulos 7

8 Vector impulssi = new Vector(500.0, 0.0); pallo.hit(impulssi); Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusyl Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusal Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero); Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusy Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeu Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero); Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); void AsetaNopeus(PhysicsObject maila, Vector nopeus) maila.velocity = nopeus; 5. Lopputulos 8

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi

Pong-peli, vaihe Rajojen tarkistus Yläreunan tarkistus. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 6 Tässä vaiheessa parantelemme mailojen liikuttelua ja tutustumme if-lauseeseen. 1. Rajojen tarkistus Edellisessä oppaassa laitoimme mailat liikkumaan, mutta

Lisätiedot

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

1. Miten tehdään peliin toinen maila?

1. Miten tehdään peliin toinen maila? Muilla kielillä: English Suomi Pong-peli, vaihe 4 Tässä oppaassa teemme toisenkin mailan. 1. Miten tehdään peliin toinen maila? Maila tehtiin edellisessä vaiheessa, aliohjelmassa LuoKentta, seuraavasti:

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan

Lisätiedot

Jypelin käyttöohjeet» Miten lisään ohjaimet peliin

Jypelin käyttöohjeet» Miten lisään ohjaimet peliin Muilla kielillä: English Suomi Jypelin käyttöohjeet» Miten lisään ohjaimet peliin Peli voi ottaa vastaan näppäimistön, Xbox 360 -ohjaimen ja hiiren ohjausta. Ohjainten liikettä "kuunnellaan" ja voidaankin

Lisätiedot

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Muilla kielillä: English Suomi Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Kun kaksi fysiikkaoliota törmää toisiinsa, syntyy törmäystapahtuma. Nämä tapahtumat voidaan ottaa kiinni

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Apuja ohjelmointiin» Yleisiä virheitä

Apuja ohjelmointiin» Yleisiä virheitä Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen ==================HUOM!!!================== SISÄLLÖN TUOMINEN VISUAL STUDIOON ON MUUTTUNUT Uudet ajantasalla olevat ohjeet löytyvät timistä:?https://tim.jyu.fi/view/kurssit/tie/ohj1/tyokalut/sisallon-tuominen-peliin

Lisätiedot

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Alkuun HTML5 peliohjelmoinnissa

Alkuun HTML5 peliohjelmoinnissa Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

5 Näppäimistö. 5.1 Näppäimistön eventit

5 Näppäimistö. 5.1 Näppäimistön eventit 5 Näppäimistö Näppäimistö (Keyboard) on Windows Forms -ohjelmissa keskeisessä asemassa. Erityisesti erilaisissa tekstinkäsittelyohjelmissa ja ohjelmissa, joissa tarvitaan datan syöttämistä esimerkiksi

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen: Tasohyppelypeli 1 Pelissä ohjaat liikkuvaa ja hyppivää hahmoa vaihtelevanmuotoisessa maastossa tavoitteenasi päästä maaliin. Mallipelinä Yhden levelin tasohyppely, tekijänä Antonbury Piirrä grafiikat Pelaajan

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

Jypelin käyttöohjeet» Millaisia olioita on olemassa?

Jypelin käyttöohjeet» Millaisia olioita on olemassa? Jypelin käyttöohjeet» Millaisia olioita on olemassa? Tässä on esitelty tarkemmin muutama tärkeä olio pelin tekemisen kannalta. Muitakin olioita on tietysti olemassa. GameObject GameObject on peliolio,

Lisätiedot

1. Mitä tehdään ensiksi?

1. Mitä tehdään ensiksi? 1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla

Lisätiedot

Scratch ohjeita. Perusteet

Scratch ohjeita. Perusteet Perusteet Scratch ohjeita Scratch on graafinen ohjelmointiympäristö koodauksen opetteluun. Se soveltuu hyvin alakouluista yläkouluunkin asti, sillä Scratchin käyttömahdollisuudet ovat monipuoliset. Scratch

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.

C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System. C:\MyTemp\ohj1\ohjdemot\k2012\demot\vastaukset\demo11\PP1\TokaPisin.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 7 /// 8 /// Etsitään toiseksi

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Osa 7: Hahmojen ohjelmointi ja hienosäätö

Osa 7: Hahmojen ohjelmointi ja hienosäätö 1 Osa 7: Hahmojen ohjelmointi ja hienosäätö Tässä luvussa käymme läpi perusohjelmoinnin alkeita. - Ensimmäisenä koduhahmon ohjelmointia. 1. Program -osiossa tapahtuu itse se koodin kirjoitus, missä määrätään

Lisätiedot

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1 KSAO Liiketalous 1 Lomakkeet Lomake on asiakirja, joka sisältää täyttämistä ohjaavia tietoja tai merkintöjä. Wordin lomakekenttä-toiminnolla luodaan näytöllä täytettäviä lomakkeita tai tulostettavia lomakepohjia.

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

C# olio-ohjelmointi perusopas

C# olio-ohjelmointi perusopas Paavo Räisänen C# olio-ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Ohjelmointi 2, välikoe

Ohjelmointi 2, välikoe Ohjelmointi 2, välikoe 21.3.2014 Vastaa neljään tehtävään kuudesta siten, että jokainen tehtävä tulee omalle konseptilleen. Mikäli vastaat useampaan kuin neljään tehtävään, pisteiden laskussa huomioidaan

Lisätiedot

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

Lisätiedot

XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

XNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. XNA grafiikka laajennus opas Paavo Räisänen www.ohjelmoimaan.net Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei

Lisätiedot

ISIS Draw (Windows versio 2.5)

ISIS Draw (Windows versio 2.5) 1 ISIS Draw (Windows versio 2.5) ISIS Draw on helppokäyttöinen kemian piirto-ohjelma, jolla voidaan muun muassa piirtää kemiallisia rakenteita, reaktioyhtälöitä ja yksinkertaisia proteiinirakenteita. Lisäksi

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.

Lisätiedot

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

Lupa opetuskäyttöön pyydettävä. info@tietsikka.net. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö

Lupa opetuskäyttöön pyydettävä. info@tietsikka.net. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö Näppäimistö 2005 Päivi Vartiainen 1 Kohdistimen ohjausnäppäimistö Funktionäppäimistö Kirjoitusnäppäimistö Numeronäppäimistö Kohdistimen ohjausnäppäimistöllä siirretään hiiren osoitinta ruudulla. Kohdistin

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

Interaktiivinen tarinankerronta

Interaktiivinen tarinankerronta Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java

Lisätiedot

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia

Lisätiedot

Ampumahiihto. Hiihto. Pelihahmon piirtäminen. Jos tahdot animoida hiihtämisen, Peli muodostuu kahdesta erilaisesta osasta: ensin

Ampumahiihto. Hiihto. Pelihahmon piirtäminen. Jos tahdot animoida hiihtämisen, Peli muodostuu kahdesta erilaisesta osasta: ensin Ampumahiihto 1 Peli muodostuu kahdesta erilaisesta osasta: ensin hiihdetään ammuntapaikalle rämpyttämällä nuolinäppäimiä ja sen jälkeen yritetään ampua maalitaulut mahdollisimman nopeasti aikasakot välttäen.

Lisätiedot

Autotallin ovi - Tehtävänanto

Autotallin ovi - Tehtävänanto Autotallin ovi - Tehtävänanto Pisteytys (max 9p): 1 piste per läpi mennyt testi (max 7p) Reflektointitehtävä (max 2p yksi piste jos osaa vastata edes osittain ja toinen piste tyhjentävästä vastauksesta)

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet Luku 6 Pikanäppäimet Pikanäppäimet ovat näppäinyhdistelmiä, jotka mahdollistavt ZoomTextin komennot ilman ZoomTextin käyttäjäliittymän aktivointia. Pikanäppäin komentoja on melkein jokaisella ZoomTextin

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Testivetoinen ohjelmistokehitys

Testivetoinen ohjelmistokehitys Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

UML ja luokkien väliset suhteet

UML ja luokkien väliset suhteet UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

Texture Tekstuuri Peliolion päälle piirrettävä kuva. Update Päivittää Päivittää jotain, esimerkiksi pelin tilannetta.

Texture Tekstuuri Peliolion päälle piirrettävä kuva. Update Päivittää Päivittää jotain, esimerkiksi pelin tilannetta. TracNav Etusivu Perusohjeet Johdanto Työkalujen käyttäminen Ensimmäisen pelin tekeminen Jypelin käyttöohjeet Liitteet Apuja ohjelmointiin Sanasto Ohjelmien asentaminen Siirtyminen XNA-ohjelmointiin Sanasto

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Luokan muodostimet (Constructors)

Luokan muodostimet (Constructors) Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot

Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1. Tee ohjelma (kalvoesimerkkinä), joka kysyy asunnon myyntihinnan ja laskee asunnon myynnistä maksettavan välityspalkkion. Välityspalkkion on 3,44%

Lisätiedot

Luokat ja oliot. Ville Sundberg

Luokat ja oliot. Ville Sundberg Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia II. Tiina Partanen 2015 Racket ohjelmointia II Tiina Partanen 2015 Sisältö 1) Peli I Yksinkertainen peli, jossa kerätään kohteita ja väistellään vaaroja Pitkälle viety koodi, johon täydennetään vain puuttuvat palat Ei tarvita

Lisätiedot

Eye Pal Solo. Käyttöohje

Eye Pal Solo. Käyttöohje Eye Pal Solo Käyttöohje 1 Eye Pal Solon käyttöönotto Eye Pal Solon pakkauksessa tulee kolme osaa: 1. Peruslaite, joka toimii varsinaisena lukijana ja jonka etureunassa on laitteen ohjainpainikkeet. 2.

Lisätiedot

TEHTÄVIEN RATKAISUT. b) 105-kiloisella puolustajalla on yhtä suuri liikemäärä, jos nopeus on kgm 712 p m 105 kg

TEHTÄVIEN RATKAISUT. b) 105-kiloisella puolustajalla on yhtä suuri liikemäärä, jos nopeus on kgm 712 p m 105 kg TEHTÄVIEN RATKAISUT 15-1. a) Hyökkääjän liikemäärä on p = mv = 89 kg 8,0 m/s = 71 kgm/s. b) 105-kiloisella puolustajalla on yhtä suuri liikemäärä, jos nopeus on kgm 71 p v = = s 6,8 m/s. m 105 kg 15-.

Lisätiedot

3.4 Liike-energiasta ja potentiaalienergiasta

3.4 Liike-energiasta ja potentiaalienergiasta Työperiaatteeksi (the work-energy theorem) kutsutaan sitä että suljetun systeemin liike-energian muutos Δ on voiman systeemille tekemä työ W Tämä on yksi konservatiivisen voiman erityistapaus Työperiaate

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

"PLEXTALK Pocket" -verkkosoittimen pikaopas

PLEXTALK Pocket -verkkosoittimen pikaopas "PLEXTALK Pocket" -verkkosoittimen pikaopas PLEXTALK Pocketin asetukset 1. Käännä PLEXTALK Pocket ympäri. Varmista, että kaksi pientä uloketta ovat ylhäällä. Paina PLEXTALK Pocketin pohjassa olevaa suorakulmaista

Lisätiedot

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Yleistä Tentti 1 oli pistekeskiarvon (13.8) perusteella vaikeudeltaan keskitasoa. Omasta tehtäväpaperista

Lisätiedot