Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009
|
|
- Tuomo Toivonen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Antitammirobotti Antti Meriläinen Martin Pärtel 29. toukokuuta 2009 Helsingin yliopisto Tietojenkäsittelytieteen laitos Robottiohjelmoinnin harjoitustyö (Java) Ohjaaja Mikko Apiola Helsingissä
2 Sisältö 1 Robotin rakenne ja toimintaperiaate 1 2 Toteutus ja sen ongelmat 2 3 Ohjelman osat Pääohjelma Käytösluokat Robotin liikuttelukoodi Valoanturidatan tulkitseminen Peliabstraktio Tekoäly Apuluokkia ja tietorakenteita Sivuttaisliike 5 5 Tarvittuja ohjelmointikurssien taitoja 6 6 Lähdekoodi 6
3 1 Robotin rakenne ja toimintaperiaate Tämän epäonnistuneen projektin tavoite oli toteuttaa tammea pelaava Lego Mindstorms NXT -robotti. Robotti liikkuu pelilaudan yli pyörillä ja liu'uttaa käsivarttaan laudan rivien yli. Käsivarressa on kiinteä valoanturi laudan tilan lukemista varten sekä moottorilla laskettava nappulanliikuttaja. Robotin kanssa pelataan vuorotellen siten, että ihmispelaaja painaa vuoronsa jälkeen robotin nappulaa, jonka jälkeen robotti lukee laudan tilan ja tekee oman siirtonsa. Tavallisen tammen sääntöjen mukaan nappula muuttuu laudan loppuun päätyessään tammeksi. Tammea merkitään yleensä kahdella päällekkäisellä nappulalla. Pelin sääntöjä muutettiin, koska robotti ei kykene helposti merkitsemään eikä tunnistamaan tamminappulaa. Uusissa säännöissä nappulat 1
4 eivät voi edetä päästyään laudan loppuun asti. Myös pelin tavoite käännettiin päinvastaiseksi: ensimmäinen pelaaja, joka ei voi enää tehdä siirtoja, on voittaja. 2 Toteutus ja sen ongelmat Robotin rakenteen kenties suurin ongelma oli käsivarren liu'uttajan liikerata. Liike oli melko epätarkka ja hitailla nopeuksilla nykivä. Moottorin asento ja käsivarren etäisyys moottorista olivat epälineaarisessa riippuvuussuhteessa. Lisäksi moottorin käynnistäminen ja pysäyttäminen vaikutti käsivarren liikkeeseen pienellä viiveellä. Kaikkien näiden tekijöiden huomioiminen ohjelmassa luotettavalla tavalla osoittautui liian vaikeaksi. Legon valosensori erottaa valitettavasti vain harmaasävyjä. Robotin täytyi kyetä erottamaan toisistaan mustat ja valkoiset nappulat sekä laudan musta reuna. Laudan pienen koon, sivuttaisliikeen epätasaisuuden ja muiden epätarkkuustekijöiden takia laudan lukeminen riittävän luotettavasti ei onnistunut. Robotin tekoäly toteutettiin alfa-beeta -karsinnalla tehostetulla minimax -algoritmilla. Pelipuun tutkintaa rajoitettiin vakiosyvyyteen, jossa laudan tila pisteytettiin yksinkertaisella heuristiikalla. Tekoäly toimi kohtalaisen hyvin. 3 Ohjelman osat Kaikki koodi sijaitsee pakkauksessa lego. 3.1 Pääohjelma Pääohjelman lego.main tehtävä on alustaa lejosin käytös rajapinta (behaviour API). lego-pakkauksen juuressa on myös muita pikaisiin kokeiluihin käytettyjä pääohjelmia. 2
5 3.2 Käytösluokat Koska projekti jäi kesken, käytösluokkia toteutettiin vain yksi: lego.behaviors.initialboardscan, jonka tehtävä on lukea laudan tila uudestaan. 3.3 Robotin liikuttelukoodi Robotin liikutteluun tarvittava apukoodi sijaitsee lego.control -pakkauksessa. MotorControl -rajapinta määrittää yhteisiä metodeja, jotka toteutettiin jokaiselle liikesuunnalle (HandControl, SidewaysControl, WheelControl). Sivuttaisliikkeen epälineaarisuuden kompensointi piilotettiin SidewaysControl -luokkaan. RobotControl sisältää em. MotorControl:n toteutukset sekä koodin rivien tai sarakkeiden skannaukseen. 3.4 Valoanturidatan tulkitseminen RobotControl:n skannausmetodit tuottavat taulukon valoanturin arvoja. Näiden arvojen tulkitsemiseen tarvittavat algoritmit sijaitsevat BoardScan- Data -luokassa. Koodi tulkitsee valoanturidataa käyränä ja etsii sieltä riittävän pitkiä tasaisia osia (BoardScanData.Segment). Näistä osista kaksi tumminta tulkitaan laudan reunoiksi ja loput tulkitaan joko laudaksi tai nappuloiksi. 3.5 Peliabstraktio Tammipeliä mallintavat luokat ovat lego.checkers -pakkauksen Board, Simple- Move ja JumpSequence. Laudan koordinaatistossa numeroidaan kaikki kahdeksan riviä (0-7), mutta sarakkeissa numeroidaan vain mustat ruudut (0-4). 3.6 Tekoäly Tekoäly sijaitsee luokassa lego.checkers.ai.minimaxai. Tekoälylle sopivat heuristiikat sijaitsevat lego.checkers.ai.heuristic -pakkauksessa ja to- 3
6 teuttavat PositionEvaluator -rajapinnan. 3.7 Apuluokkia ja tietorakenteita lego.misc -pakkauksessa on sekalaisia apuluokkia sekä joidenkin Lejosista puuttuvien tietorakenteiden toteutuksia. 4
7 4 Sivuttaisliike Sivuttaisliikkeessä täytyi ratkaista moottorin kulmaa ja käsivarren sijaintia yhdistävä kaava. Halutaan siis ratkaista pituus X kulman α funktiona. Voidaan kirjoittaa: X = X 1 + X 2 ja X 1 = H 1 cos(π α) = H 1 cos(α). Pituus X 2 voidaan ratkaista, kun tiedetään: X Y 2 4 = H 2 2 X 2 2 = H 2 2 Y 2 4 X 2 = Lisäksi tiedetään, että: H 2 2 Y 2 4 Y 1 + Y 3 = Y 2 + Y 4 Y 4 = Y 1 + Y 3 Y 2 = Y 1 Y 2 + H 1 sin(π α) = Y 1 Y 2 + H 1 sin(α) Saadaan lopuksi: X = X 1 + X 2 = H 1 cos(α) + H2 2 Y4 2 = H 1 cos(α) + H2 2 (Y 1 Y 2 + H 1 sin(α)) 2 missä Y 1, Y 2, H 1 ja H 2 ovat vakioita. 5
8 5 Tarvittuja ohjelmointikurssien taitoja Välttämättömiä taitoja Algoritmien laatimisen perusteet Algoritmien aika- ja tilavaativuuden arviointi Rekursion käyttö algoritmeissa Olio-ohjelmoinnin perusteet: kapselointi ja perintä Hyödyllisiä taitoja Polymorsmin hyödyntäminen Roskienkerääjän olemassaolon tiedostaminen Säikeet (Rinnakkaisohjelmointi, Ohjelmointitekniikka (Java)) 6 Lähdekoodi Robotin ohjelman lähdekoodi ulkoisine kirjastoineen sijaitsee hakemistossa lego/ ja sen alihakemistoissa. lego-extra/ sisältää joitakin yksikkötestejä sekä käyttöliittymän tekoälylle. Ohjelmaa kehitettiin Eclipse kehitysympäristössä käyttäen lejos-kirjaston Eclipse-liitännäistä. 6
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ätiedotLego Mindstorms NXT robottien etenemissuunnitelma
Lego Mindstorms NXT robottien etenemissuunnitelma Ohjelmointi on yleisesti koettu luokanopettajien keskuudessa erääksi merkittävimmiksi uudistuksiksi, joita OPS 2016 tarjoaa. Tässä oppaassa on meidän koulumme
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS ROBOTIIKKA TEKOÄLYN GRAND CHALLENGE YHDISTÄÄ LÄHES KAIKKI TEKOÄLYN OSA-ALUEET: ROBOTIIKKA TEKOÄLYN GRAND CHALLENGE YHDISTÄÄ LÄHES KAIKKI TEKOÄLYN OSA-ALUEET: AKTUAATTORIT:
LisätiedotSÄÄNNÖT. Language: English / Suomi
Rules of Coerceo by Coerceo Company Finnish translation by Janne Henriksson SÄÄNNÖT Language: English / Suomi Tekijänoikeus Mitään tämän dokumentin osaa ei saa jäljentää, kopioida tai välittää missään
LisätiedotLego NXT Mindstorms -ristinollarobotti
Lego NXT Mindstorms -ristinollarobotti Jouko Strömmer Melissa Kasari jouko.strommer@helsinki.fi melissa.kasari@helsinki.fi Helsinki 20.5.2009 Java Standard Edition 6 lejos NXJ 0.7 beta Helsingin yliopisto
LisätiedotToteutusdokumentti. FuBot
Toteutusdokumentti FuBot Tuomo Tilli Tommi Sankola Robottiohjelmoinnin harjoitustyö Helsingin yliopisto, Tietojenkäsittelytieteen laitos 2.6.2009 Sisällysluettelo 1. Johdanto...3 2. Käyttöohje...3 3. Ohjelman
LisätiedotBL40A1810 Mikroprosessorit, harjoitus 1
BL40A1810 Mikroprosessorit, harjoitus 1 Käytettävä laitteisto Kurssin opetuslaitteistona käytetään Legon MINDSTORMS laitteita, jonka pääosia ovat ohjelmoitava NXT-yksikkö (Atmel ARM7, 64k RAM, 256k Flash),
LisätiedotYlläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
Lisätiedot58131 Tietorakenteet ja algoritmit (syksy 2015)
58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen
LisätiedotMäärittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
LisätiedotSUMO-ROBOTTI. Tehtävä
SUMO-ROBOTTI Tehtävä Rakentaa ja ohjelmoida Lego Mindstorms NXT-sarjalla yksinkertainen Sumorobotti. Robotti ohjelmoidaan liikkumaan autonomisesti (ilman ohjausta) ja tunnistamaan mustan ottelualustan
Lisätiedot8/20: Luokat, oliot ja APIt
Ohjelmointi 1 / syksy 2007 8/20: Luokat, oliot ja APIt Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Kohti
LisätiedotPuzzle SM 2005 15. 25.7.2005. Pistelasku
Puzzle SM 005 5. 5.7.005 Pistelasku Jokaisesta oikein ratkotusta tehtävästä saa yhden () pisteen, minkä lisäksi saa yhden () bonuspisteen jokaisesta muusta ratkojasta, joka ei ole osannut ratkoa tehtävää.
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS ROBOTIIKKA TEKOÄLYN GRAND CHALLENGE YHDISTÄÄ LÄHES KAIKKI TEKOÄLYN OSA-ALUEET: ROBOTIIKKA TEKOÄLYN GRAND CHALLENGE YHDISTÄÄ LÄHES KAIKKI TEKOÄLYN OSA-ALUEET: AIVOT : + KONENÄKÖ
LisätiedotPelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!
Pelivaihtoehtoja Yksinkertaisin vaihtoehto: lfapetia voi pelata monella eri tavalla. Yksinkertaisimmassa vaihtoehdossa käytetään ainoastaan kirjainlaattoja. Pelilaudan miinusruudut ovat tavallisia ruutuja,
LisätiedotOhjelmointi 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ätiedotTarvikkeet: A5-kokoisia papereita, valmiiksi piirrettyjä yksinkertaisia kuvioita, kyniä
LUMATE-tiedekerhokerta, suunnitelma AIHE: OHJELMOINTI 1. Alkupohdinta: Mitä ohjelmointi on? Keskustellaan siitä, mitä ohjelmointi on (käskyjen antamista tietokoneelle). Miten käskyjen antaminen tietokoneelle
LisätiedotOhjeet ovat työn alla ja kirjaan niitä päivittäen ja edes takaisin lukien pari viikkoa.
( 1 ) Hannu Särön lautapelien ohjeita pelaajille - ( 1 ) - Sisältö. ( 2 ) - Jätkänshakki. ( 3 ) - Reversi. ( 4 ) - Tammi. ( 5 ) - Mylly. ( 6 ) - Shakki. ( 7 ) - Shakki, uudet napit ja uudet laudat. Ohjeet
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU ACTIVATOR 1 ACTIVATOR 2 PELIPUU ACTIVATOR 1 ACTIVATOR 2 -1 0 1 PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu)) v = for each Lapsi in
LisätiedotPelaajat siirtävät nappuloitaan vastakkaisiin suuntiin pelilaudalla. Peli alkaa näin. Tuplauskuutio asetetaan yhtä kauas kummastakin pelaajasta.
DVD Backgammon Pelin tavoite Pelin tavoitteena on siirtää kaikki omat pelinappulat omalle sisäkentälle ja sieltä pois laudalta. Se pelaaja, joka ensimmäisenä on poistanut kaikki pelinappulansa pelilaudalta,
LisätiedotKOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET
KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET ROBOGEM_Ohjevihko_148x210mm.indd 1 PELIN TAVOITE Robotit laskeutuvat kaukaiselle planeetalle etsimään timantteja, joista saavat lisää virtaa aluksiinsa. Ohjelmoi
LisätiedotPedacode 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ätiedotHiTechnic -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ätiedotTietokoneshakki. Kari Timonen kari.timonen@cs.helsinki.fi
Tietokoneshakki Kari Timonen kari.timonen@cs.helsinki.fi Tekoäly kortti- ja lautapeleissä Helsingin yliopisto, tietojenkäsittelytieteen laitos Raportti C 2008 16, s. 74 85, joulukuu 2008 Tiivistelmä Tässä
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS PELIPUU -1 0 1 PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU PELIPUU I -ARVO(Solmu) if LOPPUTILA(Solmu) return(arvo(solmu))!
LisätiedotTIEA343 - Robottiohjelmointi 2011
Samuli Rahkonen 6.7.2011 TIEA343 - Robottiohjelmointi 2011 Tämä on Jyväskylän yliopistossa järjestetyn robottiohjelmointikurssin harjoitustyön dokumentaatio. Robotin tarkoitus Robotin tarkoitus on ampua
LisätiedotOhjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015
Ohjelmointi II Erkki Pesonen Luennot ja harjoitukset Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015 1 Johdantoa kurssilla opiskeluun: oppimistavoitteet. 1. Tiedän mitä asioita kurssilla opiskellaan
LisätiedotLego Mindstorms NXT robottien etenemissuunnitelma
Lego Mindstorms NXT robottien etenemissuunnitelma Ohjelmointi on yleisesti koettu luokanopettajien keskuudessa erääksi merkittävimmiksi uudistuksiksi, joita OPS 2016 tarjoaa. Tässä oppaassa on meidän koulumme
Lisätiedot4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
LisätiedotHakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
LisätiedotOHJ-1160 Laaja Ohjelmointi 2
Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ1160 Laaja Ohjelmointi 2 Harjoitustyö Avaruusseikkailu 2001 + 11 Nyyti Kinnunen 222500 kinnune8 nyyti.kinnunen@tut.fi 1 1 Ohjelman rakenne
LisätiedotCODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0
CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved
LisätiedotOhjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia
Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia Tehtävä 1 Tehtävässä 1 mallinnettiin Monopolipeliä. Alla olevassa esimerkissä peliin liittyy aina 2 noppaa, peliä pelataan pelilaudalla,
LisätiedotPRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011
PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan
LisätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
LisätiedotOhjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.
Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta. Vastauksia kysymyksiin Miten hahmon saa hyppäämään? Yksinkertaisen hypyn
LisätiedotImpedanssitomografia-peli
Impedanssitomografia-peli Avainsanat: inversio-ongelmat, päättely, satunnaisuus Luokkataso: 3.-5. luokka, 6.-9. luokka, lukio, yliopisto Välineet: kynä, paperia, 2 pelinappulaa, 4 kolikkoa tai kolikonheittokortit
LisätiedotVoiman momentti M. Liikemäärä, momentti, painopiste. Momentin määritelmä. Laajennettu tasapainon käsite. Osa 4
Osa 4 Liikemäärä, momentti, painopiste Voiman momentti M Voiman vääntövaikutusta mittaava suure on momentti. Esim. automerkkien esitteissä on mainittu moottorin momentti ("vääntö"). Moottorin antama voima
LisätiedotPeilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla
Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka
Lisätiedot13/20: Kierrätys kannattaa koodaamisessakin
Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy
Lisätiedot* Trigonometriset funktiot suorakulmaisessa kolmiossa * Trigonometristen funktioiden kuvaajat
Trigonometria. a) Määrittele trigonometriset funktiot. b) Vertaa trigonometristen funktioiden ominaisuuksia määritys- ja arvojoukko sekä perusjakso). * Trigonometriset funktiot suorakulmaisessa kolmiossa
LisätiedotÄlysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi
Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum
LisätiedotTentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.
Tentti Tentti Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla. Omia koneita ei saa käyttää. Sähköisessä tentissä on paperitentin tapaan osaamisen
LisätiedotOhjelmoinnin 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ätiedotShakkiopas vähemmän pelanneille
Shakkiopas vähemmän pelanneille Sisällysluettelo: 1. Siirtäminen 2. Yleisiä muodollisuuksia 3. Pöytäkirjan pito 4. Avaukset yleensä 5. Siirron miettiminen 6. Vastustajan vuoro 7. Koulumatti ja Preussilainen
LisätiedotPinta-ala- ja tilavuuskäsitteiden oppimispeli
Pinta-ala- ja tilavuuskäsitteiden oppimispeli Kari Mikkola, FM, OSAO, Kaukovainion yksikkö, tekniikka Geometriaa on perinteisesti osattu heikoiten matematiikan osa-alueista peruskoulun päättyessä [1],
LisätiedotOhjelmistoarkkitehtuurit harjoitustyö RobotWarGame RobotFW SimulationFW SimulationGUIFW SWT/Java Kuva 1: Esimerkki arkkitehtuurin kerroskuvasta
Ohjelmistoarkkitehtuurit harjoitustyö 2006 1 Johdanto Harjoitustyönä on toteuttaa kerroksittainen sovelluskehys erilaisten simulaatioon perustuvien pelien tekemiseen. Kehyksestä lisäksi erikoistetaan keskenään
LisätiedotMobiilijärjestelmien ohjelmointi
Mobiilijärjestelmien ohjelmointi 27.1.2004 Sasu Tarkoma sasu.tarkoma@cs.helsinki.fi Sisällys Johdanto Tarvittavat ohjelmat Harjoitustyön esittely Vaatimukset Demo Arvostelu Esimerkkejä Komentorivityökalut
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
LisätiedotUskontojen maailmassa
Uskontojen maailmassa Pelikortit varhaiskasvatukseen JOHDANTO 2 Monikulttuuristuminen on nostanut esille tarpeen uudenlaiseen, käytännönläheiseen uskontodialogiseen keskusteluun ja oman taustansa tuntemiseen.
LisätiedotLUMATE-tiedekerhokerta, suunnitelma AIHE: PELIT JA TAKTIIKAT
LUMATE-tiedekerhokerta, suunnitelma AIHE: PELIT JA TAKTIIKAT 1. Alkupohdintaa Mitä lempipelejä oppilailla on? Ovatko ne pohjimmiltaan matemaattisia? (laskeminen, todennäköisyys ) Mitä taktiikoita esimerkiksi
LisätiedotNeljän alkion kunta, solitaire-peli ja
Neljän alkion kunta, solitaire-peli ja taikaneliöt Kalle Ranto ja Petri Rosendahl Matematiikan laitos, Turun yliopisto Nykyisissä tietoliikennesovelluksissa käytetään paljon tekniikoita, jotka perustuvat
LisätiedotPong-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ätiedotOhjelmoinnin 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ätiedotSuunnitteluvaihe prosessissa
Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet
LisätiedotTietorakenteet (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ätiedotPythonin 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- 4 aloituslaattaa pelaajien väreissä molemmille puolille on kuvattu vesialtaat, joista lähtee eri määrä akvedukteja.
AQUA ROMANA Vesi oli elintärkeä ja keskeinen edellytys Rooman imperiumin kehitykselle. Vedensaannin turvaamiseksi taitavimmat rakennusmestarit rakensivat valtavan pitkiä akvedukteja, joita pidetään antiikin
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 10.10.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 10.10.2018 1 / 20 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten ohjelman toimintaa voi tutkia ja ohjelmassa
LisätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedotOpettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset
Opettajatuutorointi-kurssin syksyn 26 kyselyjen tulokset Opinnot keväällä ja syksyllä 26 Pirjo Moen, 2.1.26 Yleistä Kyselyyn vastasi 2.9.26 mennessä 121 opiskelijaa vanhan tutkintojärjestelmän mukaan etenevistä
LisätiedotMatinteko (1 / 10) Matinteko (2 / 10) Helpointa matin tekeminen on kahdella raskaalla upseerilla (esim. kuningattarella ja tornilla).
Shakkinappuloiden voimasuhteet Matinteko (1 / 10) Kuningas on pelin tärkein nappula, ilman kuningasta peli on hävitty. 1. Kuningas + Daami + Torni vs Kuningas Matinteko (2 / 10) Helpointa matin tekeminen
LisätiedotJohdatus tekoälyyn (T. Roos) Kurssikoe
582216 Johdatus tekoälyyn (T. Roos) Kurssikoe 18.10.2013 Kokeessa saa pitää mukana käsinkirjoitettua A4-kokoista kaksipuolista lunttilappua, joka on palautettava koepaperin mukana. Huomaa että jokaisen
LisätiedotAC Hannes Statistics Tool. Ilkka Hakkarainen
AC Hannes Statistics Tool Ilkka Hakkarainen 24.3.2011 Sisältö 1 Johdanto 2 1.1 Järjestelmän tarkoitus........................ 2 1.2 Toimintaympäristö.......................... 2 1.3 Rajaukset...............................
LisätiedotOhjelmointileirin järjestäminen
Ohjelmointileirin järjestäminen YMCA Finland -koulutus Virpi Sumu Linkki LumA-tiedekasvatuskeskus Matemaattis-luonnontieteellinen tiedekunta Linkki 24-25.3.2017 1 Mitä Linkki tekee? Kerhoja ja leirejä
Lisätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
LisätiedotKenguru 2015 Benjamin (6. ja 7. luokka)
sivu 1 / 8 NIMI LUOKKA Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Väärästä vastauksesta saat miinuspisteitä
LisätiedotLinkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä keskustelualuetta simuloiva olioperustainen ohjelma (Simple Oope Board, S.O.B). Linkitetystä listasta perittyä omaa listaa käytetään muun muassa
LisätiedotJypelin 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ätiedot19/20: Ikkuna olio-ohjelmoinnin maailmaan
Ohjelmointi 1 / syksy 2007 19/20: Ikkuna olio-ohjelmoinnin maailmaan Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
LisätiedotLego Mindstorms NXT. OPH oppimisympäristöjen kehittämishanke 2011-2013. (C) 2012 Oppimiskeskus Innokas! All Rights Reserved 1
Lego Mindstorms NXT OPH oppimisympäristöjen kehittämishanke 2011-2013 (C) 2012 Oppimiskeskus Innokas! All Rights Reserved 1 Anturi- ja moottoriportit A B C 1 2 3 4 (C) 2012 Oppimiskeskus Innokas! All Rights
LisätiedotAlgoritmit 2. Luento 14 Ke Timo Männikkö
Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan
LisätiedotBlueJ 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ätiedotTT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu
LisätiedotYksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
Lisätiedot75059 Suuri lajittelusarja
75059 Suuri lajittelusarja Peliohjeet Tämä sarjan sisältö: 632 kpl lajitteluesineitä 3 kpl onnenpyörää 6 kpl lajittelukulhoa 1 kpl muovinen lajittelualusta 1 kpl numeromerkitty arpakuutio Lajittelusarja
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LisätiedotTrigonometriaa ja solve-komento GeoGebralla
Trigonometriaa ja solve-komento GeoGebralla Valitse yläreunasta Näytä-valikosta CAS ja Piirtoalue. CAS-on laskinohjelma, piirtoalueen avulla saat kuviot näkyville tarvittaessa. Harjoitellaan ensiksi CAS-ikkunan
LisätiedotVIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN
VIRUSKAAPPARI-PELI - KURKISTUS OHJELMOINNILLISEEN AJATTELUUN Tämä teos on lisensoitu Creative Commons CC BY 4.0 Kansainvälinen -käyttöluvalla. Tarkastele käyttölupaa osoitteessa http://creativecommons.org/licenses/by/4.0/.
LisätiedotOhjelmoinnin 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ätiedotSisällysluettelo. 1. Johdanto
Säännöt Sisällysluettelo 1. Johdanto 3 2. Sisältö 4 3. Alkuvalmistelut 5 4. Pelin aloitus ja kulku 6 5. Pelin lopetus 9 6. Vaikea peli ja muut pelimuunnelmat 10 1. Johdanto Pelilauta on 25 ruudusta muodostuva
LisätiedotSolidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi
Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on
LisätiedotTietorakenteet 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ätiedotToinen harjoitustyö. ASCII-grafiikkaa
Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotTarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen
Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 21.3.2011 1 / 42 Listan alkiona viiteitä olioihin Halutaan tehdä ohjelma ohjelmointikurssien opiskelijoiden käsittelyyn.
Lisätiedot15. 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ätiedotAvaruuden muoto. Kuvaus: Tehtävässä pohditaan avaruuden muotoa ja pelataan ristinollaa erilaisilla pinnoilla.
Avaruuden muoto Avainsanat: torus, Kleinin pullo, topologia Luokkataso: 6.-9. luokka, lukio Välineet: kyniä, pelilaudat (liitteenä) Kuvaus: Tehtävässä pohditaan avaruuden muotoa ja pelataan ristinollaa
LisätiedotJohdatus go-peliin. 25. joulukuuta 2011
Johdatus go-peliin 25. joulukuuta 2011 Tämän dokumentin tarkoitus on toimia johdatuksena go-lautapeliin. Lähestymistapamme poikkeaa tavallisista go-johdatuksista, koska tässä dokumentissa neuvotaan ensin
LisätiedotMerkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.
A Palindromi Sinulle annetaan merkkijono, ja tehtäväsi on poistaa siitä tarkalleen yksi merkki, minkä jälkeen merkkijonon tulisi olla palindromi. Onko tehtäväsi mahdollinen? Merkkijono on palindromi, jos
Lisätiedota b c d
.. ÄÙ ÓÒ Ñ Ø Ñ Ø ÐÔ ÐÙÒ Ð Ù ÐÔ ÐÙÒ Ö Ø ÙØ 202 È ÖÙ Ö Ò ÑÓÒ Ú Ð ÒØ Ø ØĐ ÚĐ Ø a b c d. + + 2.. 4. 5. 6. + + + + + + + + + + P. Koska massojen suhteet (alkuperäinen timantti mukaan lukien) ovat : 4 : 7, niin
LisätiedotSuorat ja tasot, L6. Suuntajana. Suora xy-tasossa. Suora xyzkoordinaatistossa. Taso xyzkoordinaatistossa. Tason koordinaattimuotoinen yhtälö.
Suorat ja tasot, L6 Suora xyz-koordinaatistossa Taso xyz-koordinaatistossa stä stä 1 Näillä kalvoilla käsittelemme kolmen laisia olioita. Suora xyz-avaruudessa. Taso xyz-avaruudessa. Emme nyt ryhdy pohtimaan,
LisätiedotNosturirobotti. robotin tarkoitus. mikä on robotin tehtävä. Kurssin robottiohjelmointi, kesä 2011 harjoitustyö
Kurssin robottiohjelmointi, kesä 2011 harjoitustyö Juha Hämäläinen (juha.h.hamalainen@jyu.fi) Jussi Jokinen (jussi.p.p.jokinen@jyu.fi) Videoita robotin toiminnasta: http://www.youtube.com/user/hamismies
LisätiedotJohdatus verkkoteoriaan luento Netspace
Johdatus verkkoteoriaan luento 3.4.18 Netspace Matriisioperaatio suunnatuissa verkoissa Taustoitusta verkkoteorian ulkopuolelta ennen kuljetusalgoritmia LP-ongelma yleisesti LP = linear programming =
LisätiedotPong-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ätiedotSisä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