Pyydä täällä harjoitustehtäviä

Voit pyytää apua ohjelmointiongelmiin täältä.
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Pyydä täällä harjoitustehtäviä

Post by Ozcar »

*******

Tiivistelmä allaolevasta pitkiä tekstejä kammoksuville:

Täällä voit pyytää muita keksimään sinulle harjoitusprojekteja. Voit pyytää käytännössä millaisia projekteja vain, mutta kerro viestissäsi mitä haluat projektilla oppia ja arvioi koodaustaitosi rehellisesti asteikolla 1-10 TAI KÄYTÄ ALLAOLEVAA GALGOMETRIÄ, joka viimeistään arvioi koodaustaitosi. Muista käydä aina ensin CB:n tutoriaalit läpi!

*******

Hyväksi koodaajaksi oppii vain koodaamalla, sehän on meille kaikille selvää. Ei pyörääkään opita ajamaan jos kyseiseen värkkiin ei lainkaan viitsitä koskea. Niinpä myös aloitteleva koodaaja tarvitsee erilaisia projekteja, joiden tarkoitus ei niinkään ole olla hyödyllisiä ohjelmia tai hauskoja pelejä, vaan joiden tarkoitus on lähinnä auttaa koodaajaa oppimaan uusia asioita koodauksesta. Mutta ah, näiden tehtävien keksiminen itse on kovin työlästä, varsinkaan kun ei ole kokemusta, millaiset projektit kehittävät mitäkin osa-aluetta.

Mutta pelko pois ystäväiseni, sillä me gurut olemme täällä auttamassa! Kerroppa tähän ketjuun millaista tehtävää haet, niin viisaampasi oman kokemuksensa turvin räätälöivät sinulle oman harjoitusprojektisi. Mutta työtämme helpottaaksesi ole kiltti ja kerro myös hieman itsestäsi. Arvioi CB-taitosi asteikolla yhdestä kymmeneen, jossa yksi on vasta CB:n omat oppitunnit suorittanut rääpäle ja siitä kahdeksasta ylöspäin osaat jo selättää lähes minkä vain tehtävän, niin emme erehdy antamaan sinulle liian helppoa tai vaikeaa tehtävää. Kerro myös, mitä haluaisit tehtävällä oppia. Mahdollisestiko vain ymmärtää koodauksen perusjuonta, vai kaipaatko tarkempia treenejä esimerkiksi typejen harjoittelussa? Palvelu ei siis ole vain vasta eilen koodauksesta kuulleille, vaan myös konkarit voivat pyytää pikku projekteja, joilla kartoittaa koodaustaitojaan jollain tarkemmalla osa-alueella, esimerkiksi DLL:ien käytössä.

Mutta huomaathan, että tämä on vain projektien pyytämiseen tarkoitettu ketju, eikä projekteissa eteen tulevien ongelmien ratkaisuketju. Tehääpä niille omat aiheenne, jolloin muut voivat sitten auttaa "väärä ketju"-huudoista häiriintymättä. Ja jos haluat esitellä aikaansaannoksesi muille foorumilaisille, ole kiltti ja editoi se alkuperäiseen pyyntöviestiisi. Hyvin kommentoidut harjoitukset voivat myös auttaa muita aloittelijoita eteenpäin!

Siinäpä se, sitten vain kyselemään. Mutta muistakaas nyt ennen postausta, että ne CB:n sisäänrakennetut oppitunnit käydään aina ensin läpi ennen kuin täältä tullaan mitään kyselemään. Muuten kohtalona on saada tehtävä: "Tee ohjelma, joka tulostaa ruudulle Hello World!".

*******

EDIT:
Taitotason arviointia helpottava Galgometri, olkaa hyvä:

* Tyypit (perusteet 0.5 piste, kehittynyt käyttö 1 pistettä)
* Objektit (perusteet 0.5 pistettä, kehittynyt käyttö 0.75 piste)
* Kuvat (perusteet 0.5 pistettä, kehittynyt käyttö 0.75 piste)
* Äänet (0.5 piste)
* Funktiot (perusteet 0.5 pistettä, kehittynyt käyttö 1 piste)
* Taulukot (perusteet 0.5 pistettä, kehittynyt käyttö 1 piste)
* Matemaattiset komennot, kuten sinit ja kosinit (perusteet 0.5 pistettä, kehittynyt käyttö 1 piste)
* Muistipalat (perusteet 1 piste, kehittynyt käyttö 1.5 pistettä)
* CB:n kanssa yhteensopivien DLL-tiedostojen tekeminen (perusteet 0.5 pistettä, kehittynyt käyttö 1 piste)
* CB:n manuaalin tehtävät (helpot 0.5 pistettä, keskivaikeat 1 piste, vaikeat 1.5 pistettä)

Summatkaa yhteen ja vot. Siinä on CB:n käyttöasteenne nätissä paketissa. Muistakaa kuitenkin aina mainita arvoa käyttäessänne, että puhutte juuri GArvosta, jotta ei tarvitse alkaa ihmetellä eri asteikkojen välillä.

Kiitokset mainiosta Galgometristä Galgoneerille
Last edited by Ozcar on Mon Sep 14, 2009 11:01 pm, edited 5 times in total.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
User avatar
Bambi
Member
Posts: 87
Joined: Sat Nov 24, 2007 12:51 pm

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Bambi »

Hmmh.. minä voisinkin olla ensimmäinen potilas. :) Ja numeroksi antaisin kakkosen. Perusrakenteen osaan tehdä, mutta tyyppejä haluaisin osata hyödyntää jollain tavalla. Nyt olen lähinnä tehnyt sellaista hipan tyylistä projektia, josta näkyy taitoni.
Aluksi pelissä on yksi vastustaja, joka on tiukasti kiinni pelaajan perässä pointobject ja moveobject -komennoilla. Jos mönkki (vastustajat ovat siis nimeltään mönkkejä) koskee pelaajaa, lähtee yksi elämä. Kun pelaaja on saanut kerättyä 15 pistettä, ilmestyy uusi mönkki, joka syö niitä (pisteitä). Jos se on saanut syötyä kolme, lähtee elämä. 30 pisteen jälkeen tulee kolmas mönkki, joka on myös pelaajan perässä, mutta vain nopeampana. Peli sisältää myös oman hienohkon valikon kuvilla, oman kursorin ja hyvät musiikit. :P

Elikkä siis seuraavan projektin aikana haluaisin oppia käyttämään ainakin:
[*] tyyppejä
[*] ison vihollis-/minkä tahansa määrän hallintaa
Last edited by Bambi on Thu Jun 25, 2009 9:12 pm, edited 1 time in total.
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Sami345 »

En ole varma saako täälä pyytää C++ harjotuksia, mutta pyydämpä silti. Olen tasolla 1. Jotain perus kirjastojen (iostream, math...) käyttöö.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Koodiapina »

Sami345 wrote:En ole varma saako täälä pyytää C++ harjotuksia, mutta pyydämpä silti. Olen tasolla 1. Jotain perus kirjastojen (iostream, math...) käyttöö.
Täältä löytyy esimerkkien kera ;)
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by koodaaja »

Grandi: Owned. IMHO paras tämän tapaisista. Selkeät koodiexamplet ja parit tutot mukana.

Bambi: Toteuta kuvilla jotain vastaavanlaista. Kuvat pakottavat yleensä käyttämään tyyppejäkin vähän monipuolisemmin, kun yksi fieldi ei enää riitä. Ja sitten se pakollinen, eli lisäät tuohon jonkun pyssykän jolla saa ammuskella. Luotien ja/tai veriefektien tekeminen on myös kovin hyvää oppimismateriaalia.

Varoituksen sana: perustuu omiin kokemuksiin, ja itse opin koodaamaan kantapään kautta.
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Sami345 »

Grandi wrote:
Sami345 wrote:En ole varma saako täälä pyytää C++ harjotuksia, mutta pyydämpä silti. Olen tasolla 1. Jotain perus kirjastojen (iostream, math...) käyttöö.
Täältä löytyy esimerkkien kera ;)
Äkkiä katsottuna tuo näyttää opetukselta. :o Minä en tarvitse oppimateriaalia, vaan tehtävän joka pitäisi tehdä. Haluan testata taitojani ja samalla oppia lisää. :D
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Koodiapina »

CB taso 9. Pitäis oppia partikkeleita ja matikkaa.
Grandi: Owned. IMHO paras tämän tapaisista. Selkeät koodiexamplet ja parit tutot mukana.
Ihan huono, mun oli paras :)
Last edited by Koodiapina on Sat Jul 05, 2008 10:07 pm, edited 1 time in total.
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Ozcar »

Tyyppiharjoitus, tasot 2-5:

Te kaikki, jotka haluatte oppia Typejen jalon taidon. Ottakaapa tehtäväksenne tehdä strategiapeli, jossa voi kehittää talouttaan, tahkota rahaa ja tärkeimpänä luoda armeijaa ja taistella sillä vihollista vastaan. Armeijat toteutatte sitten tyypeillä. Tietysti viholliselle joku simppeli tekoälykin on hyvää harjoitusta. Pelistä voi vallan hyvin tehdä puhtaasti tekstipohjaien, jolloin ei tarvitse myöskään grafiikoiden kanssa kinata.

Suosituksia:
-Tehkääpä mahdollisuus kouluttaa omia sotilaitanne paremmiksi rahaa vastaan, jolloin luotte kaikille sotilaillenne esim. Attack- ja Defence-kentät joita nostatte.
-Tehkää mahdollisuus selata omaa armeijaa läpi, eli sotilas kerrallaan pelaaja voi tutkia armeijansa sotilaiden taitoja.
-Sotilaiden taidot vaikuttavat taistelun lopputulokseen.

Ja siitä sitten opiskelemaan! Tälläiseen projektiin meni itseltä noin 2-3 tuntia aikaa, ja kaikki oli aivan mielettömän kiinnostavaa ongelmanratkontaa. Kannattaa kuitenkin ensin kerrata kaikki tyyppien hallintaan vaikuttavat komennot.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Dibalo »

Erinomainen idea!
C++ - merkkijonot - taso 2

Tee ohjelma, joka kysyy käyttäjältä kaksi merkkijonoa ja tarkistaa ovatko merkkijonot toistensa anagrammeja:
- Merkkijonoissa voi olla myös välilyöntejä, joita ei kuitenkaan huomioida.
- Tietoa anagrammeista: http://fi.wikipedia.org/wiki/Anagrammi
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by Ozcar »

@Grandi:

Partikkeli- ja matikkaharjoitus, taso 6+, (ikäsuositus 15+)=

Teepäs sivultaskrollaava räiskintä (SHMUP), jossa leikittelet partikkeleilla mahdollisimman paljon. Mutta sen sijaan, että liikutat alusta Move- tai TurnObjecteilla, liikutatkin kaikkea pelimaailmasta löytyvää matematiikan keinoin. Yksinkertaisimmillaan vain muutat aluksen koordinaatteja (If DownKey Then y-1), mutta esimerkiksi ympyrää pyörivät madot saa aikaiseksi mm. trigonometrisiä funktioita soveltaen (sini, kosini etc.). Matemaattisten funktioiden (varsinkin graafisen puolen) taitaminen tosin helpottanee urakkaa hieman, täytyy myöntää. Jos ne eivät ole hallussa, niin se koulun penkki on yhä paras paikka oppia tarvittava matematiikka!

Suosituksia:
-Vähintään 4 eri lailla liikkuvaa vihollista + bossi
-Vähintään 2 erilaista asetta
-Power-Upit aseita, kilpiä yms. tehostamaan
-Vihollisia ja varsinkin niitä partikkeleja on oltava koko ajan ruudulla
-Pistekerroin, joka kasvaa mitä kauemmin olet väistellyt osumaa

Aikaahan tähän palaakin sitten jo enemmän riippuen vaivannäöstä, mutta pelkkä pelimoottori muutamalla erilaisella vihollisella vienee aikaa 4 tunnista eteenpäin, riippuen matikan numerosta. Kokonaisen pelin koodaaminen onkin sitten jo isompi urakka, mutta epäilemättä palkitseva. Nauttikaa!
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Äiti, mä en keksi mitään tekemistä! (=harjoituksia tarjolla)

Post by phons »

Minäkin oon opettelemassa C++:aa (vaikka olenkin vasta 11-v). :geek:
Image
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Awaclus »

Tänne eksyin. Haluaisin oppia CoolBasicia ja asteikolla 1-10 sanoisin että ½, koska osaan vähemmän kun en mitään (totta kai olen käynyt ne oppitunnit läpi, en silti osaa mitään), mutta osaan kuitenkin muita BASIC-kieliä (yksikössä). Haluan oppia yksinkertaisia juttuja. Print ja DrawScreen ei oo yksinkertaisia juttuja.

Sitten oikeammanlainen käsitys itsestä:
Osaan käyttää taulukoita ja vastaavia, koska niitä on tullut QBasicissa käyteltyä aika runsaasti. Olisi hauska oppia hyödyntämään jo olemassa olevia kykyjä niiden hienojen objektien kanssa, ja muidenkin CB:n kivojen juttujen kanssa, mitä ei ole QBasicissa. QB:ssa antaisin itselleni viitosen (1-10), CB:ssä kuitenkin vain ykkösen. En nimittäin osaa muuta kun ne oppitunnit. (Ja taulukot!)
Ozcar
Advanced Member
Posts: 439
Joined: Mon Aug 27, 2007 8:43 pm
Location: Helsinki

Re: Pyydä täällä harjoitustehtäviä

Post by Ozcar »

@Chaosworm:

Tähän paras lääke on, aivan, täydellisen perus putkiräiskintä. Liikutat hahmoa, ammut alati lähestyviä vihollisia ja napsit ehkä pisteitäkin. Kokeileppa, purkalla pääsee tässä todella pitkälle.

Vaikeus: 1

Suosituksia:
- Kartan tulisi olla suurempi kuin ruudun koko, ja kameran tulee seurata pelaajaa. Tilekenttien käyttäminen on mahdollista, mutta ensin kannattaa luoda yksinkertainen ruohomatto jolla leikkiä.
- Aseita tarvitsee olla vain yksi (pistooli), mutta muiden teko voi olla opettavaista. Esmes haulikko lienee hyvä opin lähde.
- Vihollisilla tulee olla simppeli tekoäly. Edes niin, että ne kääntyvät jatkuvasti pelaajaa kohden ja rynnistävät päin näköä.
- Opettele heti alkuun käyttämään joko taulukoita tai tyyppejä vihulaumojen hallintaan. Loputtomien vihollisaaltojen luominen uusia muuttujia tekemällä lienee tuskallista, joten taulukointi on erittäin suositeltavaa.

Kokeile toki =) älä kurota kuuseen ihan vielä, vaan aloita askel kerrallaan. Miten saat hahmon liikkumaan miten haluat? Miten saat hahmon ampumaan nappia painettaessa (spawnaamaan luodin ja sen jälkeen liikuttamaan luotia joka loopissa)? Miten luot ensin yhden vihollisen joka seuraa hahmoa? Miten sovellat tätä vihua kunnon lauman luontiin? Miten saat viholliset tapettua. Yksi osa-alue kerrallaan.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.

Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Awaclus »

Kuullostaa tarpeeksi helpolta, nyt kun tajusin, että ne taulukot on ihan samat mitkä QBasicissakin on :)
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

hmm...

Tarttisin jonkin Funktio tehtävän.
(osaan siis funktioita kyllä. Mutta sama kuin joku tuossa aikaisemmin sanoi: tahdon testata taitojani)

Viimeisin huono teokseni on esimerkeissä. (Tyhmät kysymykset -> KlikkiLaatikko2)

EDIT: Taih... Taisi sitä jotain vielä olla että ½% harjoitus kiitos
Last edited by Jani on Thu Dec 11, 2008 9:37 pm, edited 1 time in total.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Koodiapina »

Tee miinaharava-klooni.

Palikoiden haravointi tapahtuu rekursiolla (funktio kutsuu itseään, lisätietoa Wikipediasta). Teet siis funktion Haravoi(...) jolle annetaan parametreiksi se, mistä kohtaa ruvetaan tarkistamaan kenttää ja ehkäpä suuntakin. Funktion sisällä on looppi joka loppuu vain jos törmätään numeroon, jo tarkistettuun kohtaan (nämä olisi helpointa merkitä taulukoilla joka kierroksella) tai ollaan kentän laidassa. Funktion tulisi kutsua itseään loopin jokaisella kierroksella, ja lähetä 4 eri ilmansuuntaan jotta voidaan löytää kaikki mahdolliset polut (Tämän voi optimoida menemään vain niihin ilmansuuntiin joita ei ole merkitty). Ja tietenkin jos löydetään miina niin palataan välittömästi rekursiosta.

En tiedä oliko tuo ymmärrettävä tehtävän anto, mutta toivotaan niin. Onnea yritykseen. Ja se on muuten edelleenkin funktio, ei functio!
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Pyydä täällä harjoitustehtäviä

Post by phons »

Mullekkin voi pistää jotain tehtävää tulemaan, ei juuri mitään väliä millainen(älkää sanoko: sisennysharjoitus :x ), vaikka joku: matemaattinen tai type-harjoitus. Asteikkoni on siellä puolivälissä 4-5.


Edit: Pistetään nyt vielä Janille että: Tiedätkö yhtään mikä on miinaharava?
Last edited by phons on Thu Dec 11, 2008 9:30 pm, edited 2 times in total.
Image
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

Grandi wrote:Tee miinaharava-klooni.

Palikoiden haravointi tapahtuu rekursiolla (funktio kutsuu itseään, lisätietoa Wikipediasta). Teet siis funktion Haravoi(...) jolle annetaan parametreiksi se, mistä kohtaa ruvetaan tarkistamaan kenttää ja ehkäpä suuntakin. Funktion sisällä on looppi joka loppuu vain jos törmätään numeroon, jo tarkistettuun kohtaan (nämä olisi helpointa merkitä taulukoilla joka kierroksella) tai ollaan kentän laidassa. Funktion tulisi kutsua itseään loopin jokaisella kierroksella, ja lähetä 4 eri ilmansuuntaan jotta voidaan löytää kaikki mahdolliset polut (Tämän voi optimoida menemään vain niihin ilmansuuntiin joita ei ole merkitty). Ja tietenkin jos löydetään miina niin palataan välittömästi rekursiosta.

En tiedä oliko tuo ymmärrettävä tehtävän anto, mutta toivotaan niin. Onnea yritykseen. Ja se on muuten edelleenkin funktio, ei functio!
Kursivoitu ja paksunnettu: En ymmärtänyt yhtään. (Wikipediasta katsoin)
paksunnettu: siis... Häh?
alleviivattu: Ei minun mielestä
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Jani »

phons wrote:Mullekkin voi pistää jotain tehtävää tulemaan, ei juuri mitään väliä millainen(älkää sanoko: sisennysharjoitus :x ), vaikka joku: matemaattinen tai type-harjoitus. Asteikkoni on siellä puolivälissä 4-5.


Edit: Pistetään nyt vielä Janille että: Tiedätkö yhtään mikä on miinaharava?
NO TIEDÄN!
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Pyydä täällä harjoitustehtäviä

Post by Awaclus »

Ja sitä varten piti kirjoittaa uusi viesti?
Post Reply