NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010

Koko: px
Aloita esitys sivulta:

Download "NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010"

Transkriptio

1 NUORTEN PELIOHJELMOINTI Jyväskylän yliopisto Kesä 2010 Antti-Jussi Lakanen, Tero Jäntti, Vesa Lappalainen, Juho Tammela

2 DreamSpark-koodi Visual Studio Professional ohjelmiston lataamista varten: Ohjelman voit ladata osoitteesta Tarvitset yllä olevan koodin ohjelman lataamiseen. Tarkemmat asennusohjeet tämän vihkosen osiossa Työkalut tai kurssin WWW-sivulla 1

3 Johdanto 2

4 TERVETULOA PELIOHJELMOINNIN MAAILMAAN Olet astumassa sisälle peliohjelmoinnin ihmeelliseen maailmaan. Tämä vihkonen on tarkoitettu käytettäväksi peliohjelmointikurssin tukimateriaalina, ja se sisältää jonkin verran myös sellaista asiaa, mitä ei kurssilla käsitellä. Tämän oppaan avulla voit aloittaa peliohjelmoinnin käyttämiemme välineiden avulla, vaikka olisitkin unohtanut, miten asiat kurssilla tehtiinkään. Ohjeen aiheet etenevät siinä järjestyksessä, kuin ne kurssilla opetetaan: 1. Johdanto (tämä luku) 2. Työkalut 3. Ensimmäisen pelin tekeminen 4. Algoritminen ajattelu ja algoritmin suunnittelu 5. Aliohjelma 6. Ehtolause ja silmukka 7. Pelisuunnittelu Kunkin osion päätteeksi löytyy kurssilla yhdessä käsiteltäviä tehtäviä. Mukana on myös lisätehtäviä, joita käsitellään kurssilla mikäli aikaa jää. Voit tietenkin tehdä omaan tahtiin myös näitä lisätehtäviä, ja pyytää ohjaajilta apua niiden ratkaisussa. // TODO: Tehtävien lisääminen osioiden päätteeksi. Tässä oppaassa käytetyistä merkinnöistä Peliohjelmointi on kuin suklaalevy. Päältä kova, mutta sisältä makea. Tero Jäntti, koodaaja Tulet näkemään tässä kirjasessa matkan varrella seuraavia kuvakkeita. Niiden tarkoitus on osoittaa enemmän tai vähemmän tärkeää tietoa. Tämän kuvakkeen tarkoituksena on osoittaa jokin erityistä huomiota vaativa seikka. HUOMIO Tämä kuvake tarkoittaa jotain aiheeseen liittyvää erityistietoa, jonka voit vapaasti sivuuttaa ensimmäisellä lukukerralla. TECH STUFF 3

5 Tietoa kurssista Kurssi järjestettiin ensimmäisen kerran kesällä 2009 ja suuren suosion saattelemana niitä järjestetään kesällä 2010 ainakin kolme kappaletta ja enemmänkin, jos tulijoita riittää. Kirjoitushetkellä (toukokuu 2010) ilmoittautuneita tulevan kesän kursseille on noin 90 kappaletta. TECH STUFF Ensimmäisten kurssien kokemuksista valmistui Antti-Jussi Lakasen pro gradu -tutkielma Nuorten peliohjelmointi keväällä Gradu löytyy netistä osoitteessa 06-painoon.pdf, tai Yhteystiedot Vastaamme mielellämme kysymyksiisi. Tavoitat opettajat ja ohjaajat yhteiseltä sähköpostilistalta. Ohjaajien sähköpostilista (viesti ei näy muille kurssilaisille): Kurssin oppilaiden sähköpostilista (viesti näkyy kurssilaisille ja ohjaajille): Tämä sähköpostilista on tarkoitettu kaikenlaisille kurssiin edes etäisesti liittyvälle keskustelulle, ja on käytössä vielä kurssin jälkeenkin. Opettaja: Antti-Jussi Lakanen, p Järjestäjä: Tietotekniikan laitos, vastuuhenkilö Lehtori Vesa Lappalainen, p Kurssin WWW-sivu: 4

6 Kurssin aikataulu Kurssi alkaa päivittäin kello 9:00 ja päättyy kello 15:00. Aamu alkaa aina lyhyellä oppitunnilla luentosalissa Delta, minkä jälkeen siirrytään tekemään harjoituksia tietokoneluokkiin. Ruokatauko pidetään noin klo 11:30 12:15, ruokailu tapahtuu opiskelijaravintola Piatossa (niin ikään Agorassa) tai omin eväin (käytössä mm. mikro, jääkaappi ja vedenkeitin). Aamupäivällä ja iltapäivällä on lisäksi yhteensä pari-kolme lyhyttä taukoa PV PAIKKA AIHEET Ma 9:00 Luentosali, sitten mikroluokat Ruokailun jälkeen luentosali, sitten mikroluokat Tutustuminen työkaluihin ja alkuvalmistelut, ensiohjelmointia, suunnittelu ja algoritmit Ti 9:00 Luentosali, sitten mikroluokat Ruokailun jälkeen luentosali, sitten mikroluokat Aliohjelma ja ohjausrakenteet (ehtolauseet, silmukat), oliot, valmiisiin pelimalleihin tutustuminen, oman pelin suunnittelu. Ke 9:00 Mikroluokat Ruokailun jälkeen luentosali, sitten mikroluokat Oman pelin suunnittelu, oman pelin tekeminen To 9:00 Luentosali, sitten mikroluokat Ruokailun jälkeen luentosali, sitten mikroluokat Oman pelin tekeminen Pe 9:00 Luentosali, sitten mikroluokat Ruokailun jälkeen luentosali, sitten mikroluokat Oman pelin viimeistely, pelien testaus ja pelin esittelytilaisuus, sekä parhaan pelin äänestäminen ja voittajien palkitseminen Huom! Aikataulut saattavat muuttua. Muutoksista tiedotetaan sähköpostin välityksellä, eli tarkkaile postiasi kurssin aikana. 5

7 Näin löydät luokkiin 6

8 Mitä on ohjelmointi Ohjelmointi tarkoittaa periaatteessa toimintaohjeiden antamista jonkin asian suorittamista varten. Toimintaa, jota voisi nimittää ohjelmoinniksi, tapahtuu elämässämme päivittäin. Ajo-ohjeiden antaminen puhelimessa voisi olla yksi esimerkki tällaisesta tilanteesta. Jos kotisi sijainti ei ole kaverillesi ennestään tuttu, sinun on annettava hänelle tarkat ohjeet ja komennot, joiden avulla hän löytää perille. Antamiasi ohjeita noudattamalla hän (toivottavasti) löytää perille. Toinen esimerkki on kakun valmistukseen kirjoitettu ohje: Sokerikakku 6 munaa 1,5 dl sokeria 1,5 dl jauhoja 1,5 tl leivinjauhetta 1. Vatkaa sokeri ja munat vaahdoksi. 2. Sekoita jauhot ja leivinjauhe. 3. Sekoita muna-sokerivaahto ja jauhoseos. 4. Paista 45 min 175 C lämpötilassa. Yllä oleva valmistusohje on ilmiselvästi kirjoitettu ihmistä varten, vieläpä sellaista ihmistä, joka tietää leipomisesta melko paljon. Jos sama ohje kirjoitettaisiin ihmiselle, joka ei eläessään ole leiponut mitään, täytyisi huomioida useita leipomiseen liittyviä niksejä: uunin ennakkoon lämmittäminen, vaahdon vatkauksen salat, yms. Tietokoneelle kirjoitettavat ohjeet poikkeavat merkittävästi ihmisille kirjoitetuista ohjeista. Kone ei osaa automaattisesti kysyä neuvoa törmätessään uuteen ja ennalta arvaamattomaan tilanteeseen. Se toimii täsmälleen niiden ohjeiden mukaan, jotka sille on annettu, olivatpa ne sitten miten tyhmiä tahansa. Kone noudattaa saamiaan ohjeita uskollisesti sortumatta ihmisille tyypilliseen luovuuteen. Alkeellista ohjelmointia on tavallaan myös mikroaaltouunin käyttäminen. Uunille annetaan ohjeet siitä, kuinka kauan ja millä teholla sen tulee toimia. Alkeellista ohjelmointia on myös mikroaaltouunin käyttäminen. 7

9 Työkalut 8

10 TYÖKALUT Tässä luvussa käydään lyhyesti läpi kurssilla käytettävät työkalut, ja opastetaan niiden asentaminen, jotta voit itse aloittaa tai jatkaa työskentelyä kotitietokoneellasi esimerkiksi kurssin jälkeen. Huomaa, että asennusjärjestys on oleellinen. Asenna ensin Visual Studio, sen jälkeen XNA Game Studio, ja viimeisenä Jypeli-kirjasto sekä projektimallit. Mikäli asennat XNA:n ennen Visual Studiota, ei Visual Studio tunnista automaattisesti XNA:n olemassaoloa. Visual Studio Professional 2008 Tietokoneelle pitää asentaa Visual Studio, XNA Game Studio, sekä Jypeli-kirjasto. Kurssilla käytössä oleva ohjelmointiympäristö eli IDE (eng. Integrated Development Environment) on nimeltään Visual Studio, erityisesti versio 2008 Professional. Ohjelmointiympäristön avulla voi kirjoittaa koodia, kääntää ja ajaa kirjoitetun ohjelman sekä jäljittää virheitä koodista (eli debugata ). Visual Studion voit ladata osoitteesta Klikkaa kohdasta Visual Studio 2008 Professional Edition (ks. kuva alla). 9

11 Lataamista varten sinun on vielä rekisteröidyttävä Windows Live -palveluiden käyttäjäksi, ellet ole jo sellainen. (Jos esimerkiksi käytät Microsoft Live Messengeriä, niin sinulla jo lienee Live-käyttäjätunnus.) Ohjelma on pakattu ns. ISO- eli levykuvatiedostoon, ja edellyttää erityistä purkamista. Ohjeet tiedoston purkamiseen löytyvät osoitteesta (englanniksi). Vaihtoehtoisesti voit asentaa myös Visual C# 2008 Express Editionin ( Suosittelemme kuitenkin Professional-version asentamista, sillä kurssin WWW-sivuilla olevat ohjeet on tehty Professional-versiota silmällä pitäen. Ohjeet Express Editionin lataamiseksi löydät osoitteesta essedition. XNA Game Studio 3.1 XNA Game Studio on Microsoftin kehittämä peliohjelmointiin tarkoitettu luokkakirjasto (eli valmiiden ohjelman osasten, kuten olioiden ja aliohjelmien) kokoelma, ja Visual Studion laajennusosa. XNA:lla on pyritty houkuttelemaan nimenomaan aloittelevia ohjelmoijia tekemällä yksinkertaisten 2D-pelien ohjelmoinnista helppoa. XNA:lla tehdyt pelit toimivat ainakin Windows-tietokoneissa ja XBox 360 -pelikonsolissa sekä Zune-mediasoittimessa. XNA:lla tehdyt pelit eivät toimi tietokoneissa, joihin ei ole asennettu XNA Game Studiota. XNA:n voi ladata osoitteesta Muista, että Visual Studio tulee asentaa ennen XNA:n asentamista. XNA:sta on ilmestynyt keväällä 2010 versio 4.0, mutta siinä on toistaiseksi vielä puutteita, joiden takia sitä ei voi käyttää tällä kurssilla. Huomioi tämä, jos etsit XNA-pakettia esimerkiksi googlettamalla. 10

12 Jypeli-kirjasto ja projektimallit Kun olet asentanut Visual Studion, XNA Game Studion ja TortoiseSVN:n, olet valmis lataamaan koneellesi Jypeli-kirjaston ja kirjastoon liittyvät projektimallit. Ennen Jypeli-kirjaston lataamista on hyvä luoda koneellesi jokin kansio tekemiäsi ohjelmointiprojekteja varten. Luo esimerkiksi kansio: C:\MyTemp ja tämän kansion alle kansio tunnus (eli käyttäjätunnus, jonka sait rekisteröityessäsi kurssille käyttäjäksi). Tämän kansion alle voit sijoittaa sekä Jypeli-kirjaston että omat kooditiedostosi. Lataa nyt Jypeli-kirjasto seuraavasti. 1. Mene osoitteeseen 2. Valitse haluamasi Jypeli-versio a. Mikäli haluat kirjaston uusimman kehitysversion, valitse trunk. Kehitysversiossa on enemmän ominaisuuksia, mutta siinä voi olla myös bugeja. On myös mahdollista, että siihen tehdyt muutokset ovat sellaisia, että kurssin aikana tehdyt pelit eivät toimi sen kanssa ilman muutoksia. b. Jos haluat viimeisimmän vakaan version, klikkaa tags, ja sieltä haluamasi versionumero (yleensä viimeisin). 3. Mene sivun alareunaan, ja klikkaa Download in other formats: Zip Archive. 4. Luo esimerkiksi kansio C:\MyTemp \ Jypeli ja tallenna ladattava tiedosto sinne. 5. Pura Zip-tiedosto. Jos sinulla ei ole Zip-pakettien purkuohjelmaa, niin voit ladata sellaisen ilmaiseksi, esimerkiksi osoitteesta 6. Kaikki kirjastoon liittyvät tiedostot ovat nyt kansiossa C:\MyTemp\ Jypeli\tags\2.0.0 (tai jokin muu versionumero). Esimerkiksi dll-tiedostot löytyvät tuon kansion alta lib-hakemistosta. 7. Voit poistaa lataamasi Zip-tiedoston. HUOMIO Huomaa, että jos haluat myöhemmin ladata uuden Jypeli-version (joka sisältää uusia ominaisuuksia), sinun täytyy uudestaan ladata myös Zip-tiedosto ja purkaa se vastaavasti kuin yllä. TECH STUFF Versionhallinnasta puhuttaessa tagilla tarkoitetaan koodista julkaistua versiota tai vaihetta. Tiettyyn versioon (siis tagiin) on tavallaan jäädytetty jollain tietyllä ajanhetkellä ollut koodin kehitysversio. Projektimalli on koodipohja, joka sisältää "pakolliset" tiedot uudesta Jypeli-pelistä, kuten viitteet Jypeli- ja XNA-kirjastoihin. Jotkin projektimallit sisältävät myös valmiin pelipohjan, jonka päälle voi lähteä rakentamaan omaa peliä. 11

13 Lataa ja asenna Jypeli-projektimallit seuraavasti. Mene osoitteeseen Lataa sivun yläosassa olevat tiedostot ja tallenna ne seuraavasti: 1. Valitse yläreunan alasvetolistasta Oma tietokone (My Computer) 2. Klikkaa kansioita järjestyksessä: Suomenkieliset hakemistot: C: Documents and Settings Oma käyttäjätunnus Omat Tiedostot Visual Studio 2008 Templates Project Templates Visual C# Englanninkieliset hakemistot: C: Documents and Settings Oma käyttäjätunnus My Documents Visual Studio 2008 Templates Project Templates Visual C# 3. Luo tarvittaessa kansio nimeltä "Jypeli" ja avaa se. (Kansion luominen tapahtuu klikkaamalla tyhjää kohtaa hiiren oikealla napilla ja valitsemalla Uusi Kansio. 4. Paina Tallenna. Jos sinulla on Visual Studio auki, sulje se ja käynnistä uudestaan, jotta tallennetut projektimallit ovat käytettävissä. Projektimallien käyttöä esitellään seuraavassa luvussa (Ensimmäisen pelin tekeminen). 12

14 Ensimmäisen pelin tekeminen 13

15 ENSIMMÄISEN PELIN TEKEMINEN Tässä luvussa käydään läpi muutamia ensimmäisen pelin tekemiseen liittyviä asioita. Ensimmäisen pelin tekemisen aikana opit monta tärkeää ohjelmoinnin peruskäsitettä. Visual Studion käynnistäminen Käynnistä Visual Studio 2008 tuplaklikkaamalla työpöydällä olevaa pikakuvaketta tai valitsemalla Start All Programs Microsoft Visual Studio 2008 Microsoft Visual Studio 2008 Ensimmäisen pelin tekemisen aikana opit monta tärkeää ohjelmoinnin peruskäsitettä. Jos käytät Visual Studion Express-versiota, valitse sen sijaan Start All Programs Microsoft Visual C# 2008 Express Edition Jos käynnistät Visual Studion Professional-versiota ensimmäistä kertaa, sinulta kysytään minkä ohjelmointiympäristön asetuksia käytetään oletuksena. Koska kurssilla ohjelmoidaan C#-kielellä, valitse seuraavasti: 1. Valitse listasta Visual C# Development Settings 2. Klikkaa Start Visual Studio. 14

16 Projektin luominen Kun Visual Studio on käynnistynyt, tehdään uusi projekti. Projekti on työtila, jossa käsitellään koodia ja peliin liittyviä grafiikka- ja musiikkitiedostoja. Seuraavaksi kerrotaan, miten luodaan uusi projekti peliä varten. Jatkossa teet projektit muitakin pelejä varten samaan tapaan, mutta nimeksi voit valita mitä tahansa (mielellään kuitenkin vain englanninkielisiä aakkosia sekä numeroita nimessä). Voit tietenkin käyttää muitakin projektimalleja kuin FysiikkaPeliä (projektimalleista lisää hetken päästä). Klikkaa Visual Studiossa File New Project... 15

17 Aukeavassa ikkunassa tee seuraavat vaiheet (Professional-versio). 1. Klikkaa vasemmalla olevasta listasta Visual C#. 2. Klikkaa sitten vasemmalla olevasta listasta Jypeli. 3. Valitse oikealla olevasta listasta kohta FysiikkaPeli. 4. Aseta Name-tekstikenttään pelin nimeksi "Pong" (tai muu valitsemasi nimi) 5. Kirjoita Location-kenttään polku C:\MyTemp \tunnus, missä kirjoitat sanan tunnus tilalle oman hakemistosi (mikä haettiin näiden ohjeiden mukaan). Voit myös painaa Browse... -nappia ja etsiä hakemistosi sitä kautta klikkaamalla järjestyksessä My Computer Local Disk (C:) MyTemp tunnus 6. Ota ruksi pois kohdasta Create directory for solution. 7. Vahvista uuden projektin luominen klikkaamalla OK. 16

18 Mikäli käytät Express-versiota, toimi seuraavasti: 1. Avaa Visual C# -valikosta Jypeli-kohta. 2. Klikkaa FysiikkaPeli. 3. Kirjoita Name-kohtaan Pong. 4. Laita Location-kohtaan oikea kansio, esimerkiksi C:\MyTemp \tunnus. 5. Varmsta, että kohdassa Create directory for solution ei ole ruksia. 6. Kuittaa painamalla OK. Ohjelmoinnin aloittaminen Nyt olet valmis aloittamaan ohjelmakoodin kirjoittamisen. Huomaa, että juuri luodussa uudessa projektissa on paljon tiedostoja. Projektin tiedostot näkyvät Visual Studion oikeassa reunassa Solution Explorer -paneelissa. Mikäli Solution Explorer on syystä tai toisesta näkymättömissä, saat sen esiin klikkaamalla valikosta View Solution Explorer tai käyttämällä näppäinoikotietä Ctrl+W, S (Ctrl-näppäin alas painettuna näppäile W ja sitten S). Lisää näppäinoikoteitä löydät kurssin wiki-sivulta osoitteessa HUOMIO 17

19 Tässä vaiheessa meitä kiinnostaa ainoastaan tiedosto nimeltä Peli.cs, johon tulee C#- ohjelmointikielellä kirjoitettavaa koodia. Tuplaklikkaa tuota tiedostoa, jolloin se aukeaa editoriin muokattavaksi. Voit nyt aloittaa ohjelman kirjoittamisen esimerkiksi kurssin Pong-tutoriaalin mukaan, joka löytyy WWW-osoitteesta Muuttujat ja perustyypit Muuttujat toimivat ohjelmassa tietovarastoina erilaisille asioille. Niihin voidaan tallentaa laskennan välituloksia, tietoa ohjelman käyttäjästä ja paljon muuta. Ilman muuttujia järkevä tiedon käsittely olisi oikeastaan mahdotonta. Muuttujat ovat ohjelmointikielen helpotus. Oikeastihan muuttujien arvot tallennetaan keskusmuistiin tai ns. rekistereihin. Muuttujan nimi onkin ohjelmointikielten helpotus, sillä näin ohjelmoijan ei tarvitse tietää tarvitsemansa tiedon keskusmuisti- tai rekisteriosoitetta, vaan riittää muistaa itse nimeämänsä muuttujan nimi. Muuttuja määritellään seuraavasti. muuttujantietotyyppi muuttujannimi; Esimerkiksi muuttuja, johon tullaan tallentamaan ohi kulkeneiden autojen määrää, voitaisiin esitellä seuraavasti. int autojenmaara; Huomaa, että tässä tapauksessa muuttujaa ei ole pakko alustaa, vaan se voidaan tehdä myöhemmin esimerkiksi seuraavasti. autojenmaara = 5; Muuttujan alustaminen tapahtuu aina käyttämällä = -merkkiä. Mikäli muuttujan arvo on alustettu (kuten edellä on), voidaan arvoa muuttaa myös suhteessa edelliseen arvoon. Jos esimerkiksi nyt kirjoitettaisiin, autojenmaara = autojenmaara + 1; niin paljonko autojen uusi määrä olisi? Vastaus on kuusi. HUOMIO Huomaa, että on yhtä kuin -merkki ilmoittaa sijoituksesta siis, että jokin arvo asetetaan jonkin muuttujan sisällöksi. Tämä ei välttämättä heti tunnu loogiselta, jos asiaa ajattelee matematiikan avulla: miten x voi olla x

20 Alla on esitelty muutamia C#-kielen muuttujien perustyyppejä, sekä esimerkkejä niiden käytöstä. Näitä tietoja tarvitset jo tehdessäsi ensimmäistä pelitutoriaalia, Pongia. LUVUT Nimi C#:ssa Suomennos Selitys Esimerkki int Kokonaisluku (eng. integer) Muuttuja, johon voidaan sijoittaa etumerkillinen kokonaisluku. Inttyypin luvulla ei ole desimaaliosaa. Inttyyppisiin muuttujiin voidaan tallentaa lukuja n. -2 miljardista +2 miljardiin. int luku = 250; int luku = -5; double Liukuluku (eli desimaaliluku) Muuttuja, jolla voi ilmaista desimaalilukuja jopa 15 desimaalin tarkkuudella. Lukualue riittävästi. double d = ; (huomaa piste, ei pilkku) Lukuja varten on olemassa muitakin tyyppejä. Yksi mainitsemisen arvoinen on byte, nimensä mukaisesti tavun kokoinen (8 bittiä) ja arvoalue (ei etumerkkiä). MERKIT JA MERKKIJONOT Nimi C#:ssa Suomennos Selitys Esimerkki char Merkki (eng. character) Char-tyypin muuttujaan voidaan tallentaa (vain) yksi merkki. char c = 'a'; char d = ' '; (yksinkertaiset lainausmerkit) string Merkkijono (eng. string of characters) String-tyyppiseen muuttujaan voidaan tallentaa useita merkkejä kerrallaan, vaikkapa sanoja tai lauseita. string a = "Antti-Jussi"; (kaksinkertaiset lainausmerkit) TOTUUSARVO Nimi C#:ssa Suomennos Selitys bool Totuusarvo, tosi tai epätosi (true tai false) Tarvitaan, kun halutaan esimerkiksi vertailla muuttujien arvoja. Esimerkiksi if(5==6) antaa tulokseksi false. 19

21 Usein muuttujiin täytyy tallentaa erilaisten laskutoimitusten tuloksia. Vertailuoperaattorit palauttavat aina totuusarvon (true tai false). LUKUJEN LASKEMISTA Operaattori Käyttö Selitys = a = b; Sijoitus (b:n arvo sijoitetaan muuttujaan a). + a + b; Lasketaan kaksi lukua, a ja b, yhteen. Muista että + -operaattoria voidaan käyttää myös merkkijonojen yhdistämiseen. - a b; Vähennyslasku (a:n arvosta vähennetään b:n arvo). * a * b; Kertolasku / a / b; Jakolasku. Huom. nollalla ei saa jakaa! % a % b; Jakolaskun jakojäännös, esimerkiksi 9 % 2 tulos on 1, 9 % 3 tulos on 0, 14 % 8 tulos on 6. Lisäksi esimerkiksi sijoitus a = a + b voidaan kirjoittaa lyhyempään muotoon a += b. Sanallisesti ilmaistuna tämä tarkoittaa, että muuttujan a arvoon lisätään b:n arvo. Sama käytäntö pätee myös muille operaattoreille. Kahden muuttujan vertailua voidaan käyttää esimerkiksi if-lauseessa. Muuttujien paikalla voidaan edelleen käyttää operaatiolausekkeita. Tässä yleisimmät vertailuoperaattorit. VERTAILUOPERAATTORIT Operaattori Käyttö Selitys Esimerkki == a == b Yhtäsuuruus // Tutkitaan ovatko sanat samoja String sana1 = Antti-Jussi; String sana2 = antti-jussi; if(sana1 == sana2) { MessageDisplay.Add( Samat ); } else { MessageDisplay.Add( Eivät ihan samoja ); } 20

22 != a!= b Erisuuruus // Tutkitaan lukujen yhtäsuuruutta int a = 5; int b = 50; b /= 10; if((a!=b)) { // Luvut eivät samat } else { // Luvut samat } < a < b Pienempi kuin > a > b Suurempi kuin Muuttujien tyyppimuunnokset Joskus on tarvetta muuttaa vaikkapa kokonaisluku liukuluvuksi tai merkkijonoksi. Se onnistuu tekemällä seuraavien esimerkkien mukaan. Kokonaisluku-tyyppisen (int) muuttujan muuttaminen liukuluku-tyyppiseksi (double). int luku = 7; double luku2 = (double)luku; Muutetaan vielä luku2-muuttuja merkkijonoksi ToString()-aliohjelmalla. Huomaa, että muuttujan merkkijono alustus tapahtuu tässä samalla kertaa. String merkkijono = luku2.tostring(); 21

23 Algoritmit 22

24 ALGORITMINEN AJATTELU JA ALGORITMIN SUUNNITTELU Mikä on algoritmi Algoritmi on ohje tai toimenpidesarja, jolla voidaan ratkaista joku tietty ongelma. täytyy olla yksikäsitteinen, eli se ei saa olla tulkinnanvarainen. Eräänlaisia algoritmeja ovat esimerkiksi keittokirjassa olevat Algoritmi on yksikäsitteinen toimenpidesarja. ruokaohjeet kirjahyllyn mukana tulevat kokoamisohjeet jne. Näiden ohjeiden mukaan tehtynä ruoan ja kirjahyllyn pitäisi valmistua tuossa tuokiossa! Eri asia on sitten se, valmistuuko oikeasti Algoritmin kertoo ainoastaan miten joku asia tehdään, ei miksi. Algoritmi ei siis itsessään ole oikea tai väärä, vaan saman ongelman ratkaisuun voi olla monta erilaista algoritmia, joista jokin voi olla toista parempi. Esimerkiksi mansikkakakun voi tehdä monella tavalla, ja jokaisella meistä on varmaankin oma lempikakku. Niinpä voidaankin olla montaa mieltä siitä, mikä tapa tehdä kakkua (eli mikä algoritmi!) on paras. Jakokulmassa jakaminen on myös eräs alakoulusta tuttu algoritmi. Miksi algoritmeja pitää suunnitella? Tietokone ei ymmärrä mitään siitä, mitä siihen syötetyllä ohjelmalla pyritään tekemään. Koska tietokone ei ymmärrä ihmisten käyttämää kieltä, ei esimerkiksi keittokirjaa sellaisenaan voi naputtaa koneeseen ja tehdä kokkausrobottia. Koska tietokone on "tyhmä", tietokoneohjelmassa algoritmin ohjeet täytyy selittää rautalangasta vääntäen erittäin tarkasti. Suurin osa tietokoneohjelmien virheistä tulee joko siitä, ettei algoritmia ole esitetty tietokoneelle oikein, tai siitä, että koko algoritmi on alkujaankin ollut päin mäntyä. 23

25 Mikä on huono algoritmi? Palataan vielä aikaisempaan esimerkkiin, missä piti selvittää onko kokonaisluku parillinen vai pariton. Voidaan sanoa, että algoritmi, jolla asia selvitettiin aiemmin, toimi hyvin. Myös seuraavanlainen (ns. pseudokielinen eli muka-ohjelmointikielinen ) algoritmi toimisi ainakin johonkin pisteeseen asti. Jos luku on 0, se on parillinen Jos luku on 1, se on pariton (ja niin edelleen johonkin lukuun saakka) Jos luku on -1, se on pariton Jos luku on -2, se on parillinen (ja niin edelleen johonkin lukuun saakka) Jos tutkittava luku olisi vaikkapa -50 miljoonaa, jouduttaisiin tekemään hurjan monta tarkistusta ennen kuin tieto saataisiin selville. Toki se lopulta selviäisi, mutta voidaan varmaankin olla yhtä mieltä siitä, että tämä algoritmi ei ole kovin kummoinen. Tästä huomaamme, että ei ole yhdentekevää, miten ohjelmoinnissa esiintyviä ongelmia ratkaisemme siis millaisia algoritmeja kirjoitamme. Emme tietenkään halua tuhlata tietokoneen voimia turhuuteen, vaan tavoite on saada prosessorista mahdollisimman paljon irti. Niinpä tehokkaat algoritmit tarkoittavat nopeampia ohjelmia ja vähemmän odottamista käyttäjälle. Ei ole yhdentekevää, millaisia algoritmeja kirjoitamme. Esimerkiksi aliohjelmia tehdessämme meidän on mietittävä, miten toteutamme ne mahdollisimman tehokkaasti (ja mielellään myös mahdollisimman vähillä koodiriveillä). Aliohjelmia käsittelemme tarkemmin seuraavassa luvussa. 24

26 Aliohjelmat 25

27 ALIOHJELMAT Aliohjelmat eli funktiot ovat ohjelman osia, joista jokainen hoitaa jotain omaa erityistä tehtäväänsä. Voidaan sanoa, että ohjelmat koostuvat aliohjelmista, eli ne ovat ohjelmien rakennuspalikoita. Kun ohjelma voidaan jakaa pienempiin osiin (aliohjelmiin), sen hallinta helpottuu. Muun muassa virheiden jäljittäminen helpottuu, kun ohjelma on jaettu (tarpeeksi pieniin) aliohjelmiin. Esimerkiksi Pong-pelissä pallo luotiin kentälle, paikkaan ( 200, 0) seuraavalla tavalla. //TODO: Tarkista koodi. PhysicsObject pallo = new PhysicsObject( 10.0, new Vector( 40.0, 40.0 ) ); pallo.shape = Shapes.Circle; pallo.x = ; pallo.y = 0.0; Add( pallo ); Aliohjelmilla on nimi, parametrit ja palautusarvo. Seuraavassa esimerkki aliohjelmasta, joka yhdistää kaksi merkkijonoa. Palautusarvon tyyppi Nimi Parametrit String Yhdista(String jono1, String jono2) { String yhdiste = jono1 + jono2; Runko return yhdiste; } Aliohjelma koostuu näistä osista: Palautusarvon tyyppi: esimerkissä String. Aliohjelman nimi: esimerkissä Yhdista. Parametrit: esimerkissä String jono1, String jono2. Runko: aaltosulkujen väliin kirjoitettava ohjelmakoodi. Aliohjelmat ovat rakennuspalikoita, joiden avulla ohjelman hallinta helpottuu. 26

28 Aliohjelmaa voidaan kutsua pääohjelmasta tähän tapaan. // Alustetaan ensin merkkijonot jono1 ja jono2 String jono1 = Antti- ; String jono2 = Jussi ; // Alustetaan merkkijono jonot1ja2 ja // kutsutaan Yhdista()-aliohjelmaa String jonot1ja2 = Yhdista(jono1, jono2); Käydään seuraavaksi läpi aliohjelman osat yksitellen. Palautusarvo ja sen tyyppi Aliohjelmalta odotettavaa vastausta sanotaan aliohjelman palautusarvoksi. Esimerkiksi aliohjelma SummaaLuvut voisi palauttaa kysyjälle syötetyn kokonaisluvun summan. Palautusarvon tyyppi kirjoitetaan aina ennen aliohjelman nimeä, ja se kertoo, minkä tyyppistä tietoa aliohjelmasta saadaan ulos. Esimerkiksi SummaaLuvut-aliohjelman palautusarvon tyyppinä luonnollinen valinta olisi int, tosin periaatteessa double kävisi myös, ja olisi jopa parempi siinä tapauksessa, että aliohjelmalla pitäisi pystyä laskemaan myös desimaalilukuja. Palautusarvoksi on myös mahdollista asettaa erityistyyppi void, jolloin aliohjelma ei palauta mitään. Parametrit Aliohjelman nimen perään sulkujen sisällä kirjoitettu lista kertoo sen parametrit, eli mitä aliohjelmalle syötetään. Jokainen parametri koostuu tyypistä ja nimestä. Nämä parametrit ovat käytettävissä aliohjelmassa samaan tapaan kuin tavalliset muuttujat. Jos aliohjelmalle ei halua määrittää parametreja, voi listan jättää tyhjäksi. Sulut on silti jätettävä: String EiParametreja() { } Aliohjelman runko Merkityksellisin osa aliohjelmassa on sen runko, joka kirjoitetaan aaltosulkujen väliin. Runko voi sisältää mitä tahansa ohjelmointikielen lauseita. 27

29 Return-lause Jos palautusarvon tyypiksi on määritetty jotain muuta kuin void, on itse palautusarvo palautettava aliohjelmasta erityisellä return-lauseella. Return-lauseen käyttö on yksinkertaista: kirjoita vain return ja palautusarvon tyypin kanssa samaa tyyppiä oleva muuttuja tai lauseke. int Summaa( int a, int b ) { return a + b; } Aliohjelma voi palauttaa muuttujan (kuten yllä olevassa esimerkissä) tai suoraan jonkin arvon, esimerkiksi arvon 2, kun palautusarvon tyyppinä on kokonaisluku (int). int Kakkonen() { return 2; } 28

30 Ehtolause ja silmukka 29

31 EHTOLAUSE JA SILMUKKA Yksinkertaisessa ohjelmassa koodirivit käydään läpi yksitellen, suoritetaan toistensa jälkeen, kunnes ohjelma päättyy. Monimutkaisemmissa ohjelmissa tullaan tilanteeseen, missä jokin asia täytyy toistaa useita kertoja esimerkiksi jos haluamme tehdä tuhat palloa yhden sijaan. Tässä meitä auttavat silmukat eli toistolauseet. Toisaalta ohjelma voi olla sellainen, ettei se joka kerralla mene samaa rataa, vaan joissakin tilanteissa voi tulla eteen valintoja. Se, millä tavalla ohjelma etenee, riippuu valinnan tuloksesta. Yksi esimerkkinä valintatilanteesta voisi olla tällainen: Jos pelaaja liikkuu pelikentän rajojen sisäpuolella, hahmo liikkuu vapaasti, mutta seinään törmätessään hahmo pysähtyy. Ehtolause ja sen käyttäminen If-lause on siis rakenne, jonka avulla voidaan tehdä jotakin, mikäli jokin ehto on totta. Vastaavasti jos tämä jokin ehto ei ole totta, tehdään jotain muuta. Esimerkiksi ehto voi olla ulkona sataa (vastaus on aina kyllä tai ei). Jos ulkona sataa ollaan sisällä Muuten mennään ulos pelaamaan jalkapalloa Ehtolausetta tarvitaan esimerkiksi seuraavanlaisessa tilanteessa. Tehtävä: Tee aliohjelma, joka saa parametrina kokonaisluvun. Aliohjelman tulee palauttaa true (tosi), mikäli luku on parillinen, ja vastaavasti false (epätosi), mikäli luku on pariton. Ilman ehtolausetta (jota sanotaan myös valintalauseeksi) pystymme kyllä selvittämään onko luku parillinen vai pariton. Emme kuitenkaan pysty muuttamaan paluuarvoa true:ksi tai false:ksi parillisuuden mukaan. Kun ohjelmassa haluamme tehdä eri asioita riippuen esimerkiksi käyttäjän syötteistä tai aliohjelmien parametreista, tarvitsemme ehtolauseita. Käännetään vielä aiemmin mainittu kokonaislukuesimerkki C#-ohjelmointikielelle. Siis, tehdään aliohjelma, joka palauttaa true tai false sen mukaan, onko luku parillinen vai ei. public bool OnkoLukuParillinen(int luku) { if ( (luku % 2) == 0 ) return true; else return false; } Ensimmäisellä rivillä esitellään aliohjelma, ja suluissa kerrotaan, millaisia parametreja aliohjelma ottaa vastaan. Toisella rivillä otetaan muuttujan luku ja luvun 2 jakojäännös. Jos jakojäännös on 0, niin silloin luku on parillinen, eli palautetaan true. Jos jakojäännös ei mennyt tasan, niin silloin luvun on pakko olla pariton eli palautetaan false. 30

32 Itse asiassa, koska aliohjelman suoritus päättyy return lauseeseen, voitaisiin else sana jättää kokonaan pois. Else lauseeseenhan mennään ohjelmassa nyt vain siinä tapauksessa, että if ehto ei ollut tosi. Voisimmekin kirjoittaa aliohjelman hieman lyhyemmin seuraavasti: public static bool OnkoLukuParillinen(int luku) { if ( (luku % 2) == 0 ) return true; return false; // Huom! Ei tarvita else-lausetta } Usein if lauseita käytetään aivan liikaa. Tämänkin esimerkin voisi yhtä hyvin kirjoittaa vieläkin lyhyemmin (ei aina selkeämmin kaikkien mielestä) seuraavasti: public bool OnkoLukuParillinen(int luku) { return ( (luku % 2) == 0 ); } Tämä johtuu siitä, että lauseke ( (luku % 2) == 0 ) on true jos luku on parillinen ja muuten false. Saman tien voimme siis palauttaa suoraan tuon lausekkeen arvon ja aliohjelma toimii täysin samalla tavalla. Usein if-lauseita käytetään aivan liikaa. Silmukat Ohjelmoinnissa tulee usein tilanteita, joissa samaa tai lähes samaa asiaa täytyy toistaa ohjelmassa useampia kertoja. Jos haluaisimme esimerkiksi tulostaa MessageDisplayoliolle luvut 1 10, onnistuisi se seuraavasti. MessageDisplay.Add( 1 ); MessageDisplay.Add( 2 ); MessageDisplay.Add( 3 ); MessageDisplay.Add( 4 ); MessageDisplay.Add( 5 ); MessageDisplay.Add( 6 ); MessageDisplay.Add( 7 ); MessageDisplay.Add( 8 ); MessageDisplay.Add( 9 ); MessageDisplay.Add( 10 ); Tuntuu kuitenkin tyhmältä toistaa lähes samanlaista koodia useaan kertaan. Tällöin on järkevämpää käyttää jotain toistorakennetta. Toistorakenteista käytetään usein myös nimitystä silmukat. Esitellään seuraavaksi tärkeimmät toistorakenteet ja otetaan muutama käyttöesimerkki. 31

33 SILMUKAT Nimi C#:ssa Selitys Käyttöesimerkki while Silmukka, jota toistetaan niin kauan kuin jokin ehto on voimassa. Käytetään, kun ei tarkasti tiedetä etukäteen, montako kertaa silmukkaa toistetaan (tai toistetaanko yhtään kertaa!). while(sana!= ) { } sana = PyydaSanaKayttajalta(); Tulosta(sana); for Silmukka, jota käytetään, kun suoritusten lukumäärä on tiedossa ennakkoon, esimerkiksi tulostetaan kymmenen kertaa Moi for (int i = 0; i < 10; i++) { MessageDisplay.Add( Moi ); } EHTOLAUSE Nimi C#:ssa Selitys Käyttöesimerkki if/else Rakenne, jonka avulla voidaan tehdä jotakin, mikäli jokin ehto on totta. Vastaavasti jos ehto ei ole totta, tehdään jotain muuta. Esimerkiksi ehto voi olla ulkona sataa (vastaus on aina kyllä tai ei) Jos ulkona sataa ollaan sisällä Muuten mennään ulos pelaamaan jalkapalloa // Kysytään luku käyttäjältä, ja tulostetaan sitten viesti int i; i = KysyLukuKayttajalta(); if(i<50) { } Tulosta( Antamasi luku + i + on pienempi kuin 50 ); else { } Tulosta( Antamasi luku + i + on suurempi tai yhtä suuri kuin 50 ); 32

34 Esimerkki silmukan käytöstä: monta palloa Tehdään aliohjelma, joka luo halutun kokoisen pallon haluttuun paikkaan, ja vielä haluamalla värillä. // TODO: Tarkista koodi. protected override void Begin() { Level.CreateBorder(1.0, true); Gravity = new Vector2D(0, -500); // Painovoiman asettaminen Camera.ZoomToLevel(Level, this); } int i=0; while(i < 100) { int sade = RandomGen.NextInt(5, 20); PhysicsObject pallo = LuoPallo( RandomGen.NextDouble( Level.Left + sade, Level.Right sade ), RandomGen.NextDouble( Level.Bottom + sade, Level.Top sade ), RandomGen.NextColor(), sade ); Add(pallo); i++; } // Luo yksittäisen pallon ja palauttaa sen. PhysicsObject LuoPallo(double x, double y, Color vari, double sade) { PhysicsObject pallo = new PhysicsObject(10, Shapes.CreateCircle(sade)); pallo.color = vari; pallo.x = x; pallo.y = y; return pallo; } 33

35 Pelin suunnittelu 34

36 PELIN SUUNNITTELU Suunnittelu on kannattavaa, koska se helpottaa ohjelmointia. Pelin koodaaminen on helppoa, kun tietää, mitä haluaa. Kaikki pelit (ja muut ohjelmat) pitää suunnitella hyvin ennen niiden toteutusta, ettei sitten jälkikäteen tarvi ihmetellä että kuinkas tämä näin huonosti tulikaan tehtyä. Suunnittelun lisäksi myös pelien testaaminen ja kokeileminen on tärkeää. Kokeilemalla selviää, mikä toimii ja suunnitelmiin voi siis tehdä muutoksia. Millainen on mielenkiintoinen peli? Mieti, millaiset pelit ovat hyviä. Miksi ihmiset pelaavat pelejä? Pelien yhteydessä puhutaan usein pelattavuudesta, jonka halutaan olevan mahdollisimman hyvä. Tärkeää on myös pelikokemus. Hyvä peli huomioi seuraavat: Pelin pelaaminen (esim. ongelmat ja haasteet, jotka pelaajan täytyy kohdata voittaakseen) Tarina (esim. juoni ja hahmonkehitys) Pelimekaniikka (esim. pelissä olevien olioiden vuorovaikutus ympäristön kanssa) Käytettävyys (esim. käyttöliittymän ja kontrollien toimivuus) Rajoitukset tällä kurssilla Rajoitukset Jypelin puolesta. Lyhyesti sanottuna 2D (eli 2-ulotteisuus) tarkoittaa sitä, että voi liikkua ylös, alas ja sivuille, mutta ei syvyyssuunnassa. Pelin pitää olla siis 2D-peli, joko sivustapäin kuvattu tai ylhäältäpäin kuvattu peli Samalla koneella pelattava peli (ei verkkopeli) Muita huomioitavia tekijöitä. Kurssilla oman pelin tekemiseen on aikaa varattu n. 12 tuntia. Ajassa ei ehdi kovin paljoa, mutta tietysti kotona voi jatkaa omaa tuotostaan. Kaikki kurssilla käytettävät ohjelmat on ladattavissa netistä kurssin jälkeen. Oma kokemus ohjelmoinnista. Jos on aiemmin ohjelmoinut, niin voi tehdä vaikeampia juttuja. Kannattaa myös huomioida, että jotkin pelit ovat helpompia toteuttaa Jypelin avulla. Esimerkiksi tasohyppelypeli on helpompi tehdä kuin muistipeli. Fysiikka on valmiiksi rakennettu Jypeliin, eli fysiikkapelien tekeminen on helppoa. 35

37 Millaisia pelejä voin tehdä? Jypelillä voi tehdä joitain pelityyppejä helpommin, kuin toisia. Helppoja pelejä ovat erityisesti valmista fysiikkamoottoria käyttävät pelit. Pelit ovat kaksiulotteisia Windows- ja/tai Xbox 360 -pelejä. Helposti onnistuvat esimerkiksi: Tasohyppely Avaruuslentely Tykki- tai tankkipeli Myös nämä onnistuvat kohtuullisen helposti: Autopeli Taistelupeli Biljardi tai minigolf Matopeli Vaikeampia pelejä ovat: Muistipeli (tarvitaan tietorakenteita) Strategiapelit, kuten tornipuolustus (tekoäly, reitinhaku, pelilogiikka) Riippuu kuitenkin myös aina pelistä ja tekijästä, kuinka vaikeaa tekeminen on. Muista myös, että Jypelin alla oleva XNA mahdollistaa kaikenlaisten pelien tekemisen. Hahmotelma Omassa suunnitelmassa pitää olla vähintään Tekijöiden nimet Pelin nimi Pelialusta: onko peli Windowsille vai Xbox 360:lle (vai molemmille) Pelaajien lukumäärä Pelin taustatarina tai kuvaus pelin teemasta Pelin idea ja tavoitteet Hahmotelma pelistä (kuva tai kuvia paperilla) Toteutuksen suunnitelma: mitä tekisin ja missä järjestyksessä? Millä aikataululla? Lisäksi suunnitelmassa voi esimerkiksi olla (ei pakollisia) Mikä tekee pelistä mielenkiintoisen pelata? Tarvittavat kirjaston osat Näppäimet ja mitä niistä tapahtuu Grafiikka, äänet ja musiikki: millaisia ovat, teenkö itse vai mistä saan? Kenttien hahmotelmia 36

38 Esimerkkisuunnitelma Avaruuslaskeutuja (LunarLander) -pelistä Tekijä: Janne N. Tietoja pelistä Pelin nimi: Avaruuslaskeutuja Pelialusta: Windows ja Xbox 360 Pelaajien lukumäärä: 1 pelaaja Pelin tarina Ihmiset kartoittavat asutettavia planeettoja. Avaruuslaskeutujan tehtävänä on laskeutua turvallisesti planeetalle, jotta sitä voidaan tutkia. Aluksessa on herkkiä osia, jotka eivät kestä nopeaa vauhtia. Polttoainekin uhkaa nopeasti loppua. Tarvitaan siis tarkkaa aluksen ohjaajaa. Pelin idea ja tavoitteet Pelissä laskeudutaan avaruusaluksella planeetaan pinnalle. Planettan pinta on rosoinen, eikä hyviä laskeutumispaikkoja välttämättä aina ole. Tavoitteena on laskeutua mahdollisimman vähän polttoainetta käyttäen ja hyvässä asennossa planeetan pinnalle. Jos vauhti on liian nopea tai alus on huonossa kulmassa, niin alus räjähtää. Pelissä arvotaan aina uusi planeetan pinta, johon laskeudutaan. 37

39 Hahmotelma pelistä Toteutuksen suunnitelma Keskiviikko Tekisin ensin kentän, jossa on littana planeetan pinta ja alus. Lisään alukseen ohjauksen. Alusta voi pyörittää oikealle ja vasemmalle sekä ylöspäin. Aluksen sijainti on kentän yläreunassa. Lisätään polttoainemittari. Kun polttoaine loppuu, niin aluksen moottoria ei voi käyttää. Torstai Lisätään aluksen nopeuden ja kulman näyttävät mittarit. Lisätään pistelaskuri, joka laskee pisteet. Pisteet näytetään myös näytöllä. Aluksen pitää räjähtää, jos törmätään liian suurella nopeudella planeettaan. Perjantai Lisätään satunnaisesti luotava maasto. Viimeistellään peli. Jos on aikaa Värinätehosteet ohjaimeen. Useampi pelaaja peliin. Tehdään kilpailumoodi, kumpi laskeutuu nopeammin. 38

NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010

NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010 NUORTEN PELIOHJELMOINTI Jyväskylän yliopisto Kesä 2010 Antti-Jussi Lakanen, Tero Jäntti, Vesa Lappalainen, Juho Tammela 7.6.2010 DreamSpark-koodi Visual Studio Professional 2008 -ohjelmiston lataamista

Lisätiedot

NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010

NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010 NUORTEN PELIOHJELMOINTI Jyväskylän yliopisto Kesä 2010 Antti-Jussi Lakanen, Tero Jäntti, Vesa Lappalainen, Juho Tammela Versio 1.1, 2.7.2010 DreamSpark-koodi Visual Studio Professional 2008 -ohjelmiston

Lisätiedot

NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010

NUORTEN PELIOHJELMOINTI. Jyväskylän yliopisto. Kesä 2010 NUORTEN PELIOHJELMOINTI Jyväskylän yliopisto Kesä 2010 Antti-Jussi Lakanen, Tero Jäntti, Vesa Lappalainen, Juho Tammela Versio 1.2, 23.7.2010 DreamSpark-koodi Visual Studio Professional 2008 -ohjelmiston

Lisätiedot

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

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

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

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

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

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

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

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

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

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

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

1. Taustatietoa näppäimistönkuuntelusta

1. Taustatietoa näppäimistönkuuntelusta 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

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

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

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

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

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

KODU. Lumijoen peruskoulu

KODU. Lumijoen peruskoulu KODU Lumijoen peruskoulu Sisällysluettelo 1. Aloitus... 2 1.1 Pelin tallennuspaikka... 2 1.2 Kodu Game lab... 3 2 Maan luominen... 4 2.1. Seinän tekeminen... 5 2.2. Vesialueen tekeminen peliin... 6 2.3.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

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

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

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 ==================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

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

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

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

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Tiedostojen lataaminen netistä ja asentaminen

Tiedostojen lataaminen netistä ja asentaminen s. 1/5 Tiedostojen lataaminen netistä ja asentaminen Yleistä Internetissä on paljon hyödyllisiä ilmaisohjelmia, jotka voi ladata ja asentaa omalle koneelle. Osa ohjelmista löytyy suomenkielisiltä sivuilta,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Ennen varmenteen asennusta varmista seuraavat asiat:

Ennen varmenteen asennusta varmista seuraavat asiat: NAPPULA-VARMENTEEN ASENNUSOHJE 1/17 Suosittelemme käyttämään Nappulaa uusimmalla versiolla Firefox- tai Chrome- tai Applen laitteissa Safariselaimesta. Tästä dokumentista löydät varmenteen asennusohjeet

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

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

Fixcom Webmail ohje. Allekirjoitus. Voit lisätä yhden tai useamman allekirjoituksen.

Fixcom Webmail ohje. Allekirjoitus. Voit lisätä yhden tai useamman allekirjoituksen. Webmail on monipuolinen työkalu jolla voi tehdä paljon muutakin kuin lukea sähköpostia. Tässä ohjeessa on lyhyesti esitelty joitakin sen ominaisuuksia. Peruspostilaatikossa ei ole kaikkia ominaisuuksia,

Lisätiedot

Päivitysohje Opus Dental

Päivitysohje Opus Dental Päivitysohje Opus Dental 7.1.460 1. Päivitysohjelman lataaminen Avaa Opus Dental -internetsivu osoitteessa www.opusdental.com. Klikkaa etusivulta Suomen lippua avataksesi suomenkielisen sivuston. Valitse

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

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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

Johdatus ohjelmointiin

Johdatus ohjelmointiin Johdatus ohjelmointiin EXAM tentin liitetiedostojen lataaminen, käyttäminen ja palauttaminen Kerro mahdolliset puutteet tai parannusehdotukset: pietari.heino@tut.fi Tällä sivulla on selitetty lyhyesti

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP2 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 17. toukokuuta 219 Yleistä Tentti 1 oli pistekeskiarvon (14,6) perusteella hieman tavanomaista helpompi. Omasta tehtäväpaperista

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola 26.8.2016 SISÄLLYSLUETTELO 1. Omat asetukset kuntoon (kaikkien tehtävä aluksi) sivut 3-5 2. Tärkeiden sivujen tilaaminen omiin linkkeihin sivut

Lisätiedot

Python-ohjelmointi Harjoitus 5

Python-ohjelmointi Harjoitus 5 Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät

Lisätiedot

Mathcad 14.0 Single User -asennus 12.3.2008

Mathcad 14.0 Single User -asennus 12.3.2008 Mathcad 14.0 Single User -asennus 12.3.2008 Asennuksessa on kaksi vaihetta. Ensin asennetaan ohjelma tietokoneelle (vaiheet 1-3). Sen jälkeen asennetaan lisenssi (vaiheet 4-12). 1. Aseta Mathcad 14 CD-levy

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

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

Lisätiedot

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen Kahoot! Kahoot! on internetselaimessa toimiva sovellus, jonka avulla voit pitää pieniä testejä/kokeita tai kysellä mielipiteitä. Testeihin liittyy myös pelillisyys, sillä eniten pisteitä saanut voittaa.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Skype for Business ohjelman asennus- ja käyttöohje Sisällys Skype for Business ohjelman asennus- ja käyttöohje Sisällys Kirjautuminen Office 365 -palveluun... 2 Skype for Business ohjelman asentaminen... 3 Yhteyshenkilöiden lisääminen Skype for Business ohjelmassa...

Lisätiedot

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Skype for Business ohjelman asennus- ja käyttöohje Sisällys Skype for Business ohjelman asennus- ja käyttöohje Sisällys Kirjautuminen Office 365 -palveluun... 2 Skype for Business ohjelman asentaminen... 3 Yhteyshenkilöiden lisääminen Skype for Business ohjelmassa...

Lisätiedot

Aloittaminen: Miten e-kirja lainataan?

Aloittaminen: Miten e-kirja lainataan? Aloittaminen: Lataa asennusohjelma adoben sivuilta painamalla vasemmalla alareunassa olevaa linkkiä: Download Adobe Digital Editions> Suorita asennusohjelma ja noudata näytön ohjeita> HUOM! Päästäksesi

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat ja operaatiot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat ja operaatiot 3. Muuttujat ja operaatiot Sisällys Muuttujat. Nimi ja arvo. Algoritmin tila. Muuttujan nimeäminen. Muuttujan tyyppi. Muuttuja ja tietokone. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeetiikka.

Lisätiedot

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013 Tehtävä 2.2. Tehtävä-työkalun avulla opiskelijat voivat palauttaa tehtäviä Moodleen opettajan arvioitaviksi. Palautettu tehtävä näkyy ainoastaan opettajalle, ei toisille opiskelijoille. Tehtävä-työkalun

Lisätiedot

Microsoft Security Essentials (MSE) asennuspaketin lataaminen verkosta

Microsoft Security Essentials (MSE) asennuspaketin lataaminen verkosta Etusivu > Tietohallintokeskus > Ohjeet > Tutoriaalit > Virustorjunta (Microsoft Security Essentials) Virustorjunta (Microsoft Security Essentials) Ohjeet Microsoft Security Essentials -virustorjuntaohjelman

Lisätiedot

YH1b: Office365 II, verkko-opiskelu

YH1b: Office365 II, verkko-opiskelu YH1b: Office365 II, verkko-opiskelu Huom. Suosittelemme tämän harjoituksen 1b tekemistä mikroluokassa, jotta yliopiston mikroluokat tulevat edes hieman tutuiksi. Harjoituksen tavoitteet Harjoituksessa

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

ohjeita kirjautumiseen ja käyttöön

ohjeita kirjautumiseen ja käyttöön ohjeita kirjautumiseen ja käyttöön Kirjautumisesta Opiskelijat: kirjaudu aina tietokoneelle wilmatunnuksella etunimi.sukunimi@edu.ekami.fi + wilman salasana Opettajat: kirjaudu luokan opekoneelle @edu.ekami.fi

Lisätiedot

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6 1 INTERBASE 5.0 PÄIVITYS VERSIOON 5.6 HUOM: Tämä ohje on tarkoitettu yksittäisen koneen päivittämiseen, mikäli InterBase on asennettu serverille ota yhteys DL Software Tukeen. HUOM: Mikäli koneessasi on

Lisätiedot

T&M Autori Versio Series 60 -puhelimiin

T&M Autori Versio Series 60 -puhelimiin T&M Autori Versio 5.0.0 Series 60 -puhelimiin Asennusohje 19. huhtikuuta 2010 TIETOMEKKA T&M Autori asennusohje - 2 SISÄLLYSLUETTELO SISÄLLYSLUETTELO 2 1. YLEISTÄ 3 2. UUDEN MUISTIKORTIN ASENNUS 3 3. T&M

Lisätiedot

HiTechnic -kompassisensorin käyttäminen NXT-G -ympäristössä

HiTechnic -kompassisensorin käyttäminen NXT-G -ympäristössä NXT -kompassisensori NXT -roboteihin on saatavilla kahdenlaisia kompasseja: Wiltronics kompassit (tilaukset: http://www.wiltronics.com.au/) ja HiTechnic kompassit (NMC1034 Compass) (tilaukset: http://www.hitechnic.com/products).

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

Pelaajan tietojen lisääminen

Pelaajan tietojen lisääminen Käytön aloitus Ohjelma käynnistetään tuplaklikkaamalla Jäseri-kuvaketta työpöydältä, tai käynnistä-valikosta. Ohjelmasta aukeaa seuraavanlainen valikko; Jäsenrekisterissä muutetaan jäsentietoja, maksukirjassa

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Kodu Ohjeet. Jos päivityksiä ei löydy niin ohjelma alkaa latautumaan normaalisti.

Kodu Ohjeet. Jos päivityksiä ei löydy niin ohjelma alkaa latautumaan normaalisti. 1 Kodu Ohjeet Kodun käynnistys - Kodu peli kun on asennettu ja hienosäädetty omalle koneelle kohdilleen, niin sitten ei muutakuin pelaamaan / tekemään pelejä. Vihreästä Kodu kuvakkeesta pääset aloittamaan.

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

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

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys

ClassPad fx-cp400 päivitys. + Manager for ClassPad II Subscription päivitys ClassPad fx-cp400 päivitys + Manager for ClassPad II Subscription päivitys Käyttöjärjestelmän ja Add-in sovellusten päivityksestä Casio suosittelee aina viimeisimmän käyttöjärjestelmän asentamista. Tällöin

Lisätiedot

Febdok 6.0 paikallisversion asennus OHJEISTUS

Febdok 6.0 paikallisversion asennus OHJEISTUS Febdok 6.0 paikallisversion asennus OHJEISTUS Sisällys 1 YLEISTÄ 1 2 ASENNUKSEN VALMISTELUT 2 2.1 VARMUUSKOPIOT 2 2.2 ASENNUSTIEDOSTON LATAUS, WWW.FEBDOK.FI 2 2.3 ASENNUSTIEDOSTON LATAUS, FEBDOK:IN SISÄINEN

Lisätiedot

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA

KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA KIITOS RICA OPTIMOINTIOHJELMAN VALITSEMISESTA Asennusohjeiden sisältö 1. RICA optimointiohjelmoinnin periaate isoftloaderilla... 2 2. RICA isoftloader toimituspaketin sisältö... 3 3. isoftloader Sync-ohjelmiston

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot