Offtopic

Muu yhteisön välinen keskustelu.
Locked
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: Offtopic

Post by anttipanda »

iTKEVAnAKKI wrote:Jaksaisko joku kirjottaa pienen selostuksen miten olio-ohjelmointi helpottaa koodaamista? :p Ja sillain että tyhmempiki ymmärtää. Yritin lukee netistä mutta oli sellasta siansaksaa että huhhhuh...
No Jarelta tuli yksi pointti. Joka pohjimmiltaan tarkoitti että oliolla voi olla sekä tietoa että toimintaa - jäsenmuuttujia ja jäsenfunktioita. Tässä yhteydessä tärkeä olio-ohjelmoinnin apuväline on tietojen piilotus. Olio tai luokka voi esim. omistaa tietoa, johon vain sillä itsellään (luokalla) on pääsy. Tätä hyväksikäyttäen voidaan olla varmoja, että olion sisäinen tila pysyy kunnossa, eikä luokkaa käytetä missään vaiheessa koodia väärin. Jäsenten näkyvyyttä ohjataan sanoilla public, private ja protected (unohda kokonaan sana friend, siitä ei tule kuin sanomista).

Yksi tärkein tapa joka olio-ohjelmoinnissa helpottaa koodausta, on perinnöllinen polymorfismi*. Tämä tarkoittaa sitä, että luokat, jotka "päällepäin" näyttävät samoilta, voivat sisältää aivan erilaisen toteutuksen sisäisesti. Käytännössä tämä taas tarkoittaa sitä, että voit tehdä kantaluokan josta perit muita. Otetaan vaikka peliohjelmointiesimerkkinä Pelihahmo. Voit sitten periä tuosta luokasta erilaisia Pelihahmoja, kuten AgressiivinenPelihahmo, Pelaaja, Gargoyle tai vastaavaa. Niin monen tason verran kuin tarvitaan. Tämän jälkeen, voit kuitenkin laittaa nuo kaikki oliot yhteen ja samaan taulukkoon kun taulukon olioiden tyypiksi laitetaan Pelihahmo. Eli voit piirtää ja päivittää kaikkien Pelihahmojesi tilan yksinkertaisessa for-silmukassa, riippumatta siitä minkälainen olio se sattuukaan olemaan.

Pieni koodiesimerkki (ei käänny vaikka kuinka yrittäisi ;)):

Code: Select all


class Pelihahmo
{
public:
    void virtual Update(long gameTime)
    {
    }
    
    void virtual Draw(GraphicsContext graphics)
    {
        graphics.Draw( _texture, _locationAndSize );
    }
    
private:
    Rectangle _locationAndSize;
    Texture2 _texture;
};


class Pelaaja : public Pelihahmo
{
public:
    int GetHitPoints()
    {
        return _hitPoints;
    }
    
private:
    int _hitPoints;
};

class Gargoyle : public Pelihahmo
{
//update the gargoyle like behaviour in the update method...
};

....

Pelihahmo gameObjects[] = new Pelihahmo[5];
gameObjects[0] = new Pelaaja();
gameObjects[1] = new Gargoyle();
gameObjects[2] = new Pelihahmo(); //Some generic character which just stands still :)
gameObjects[3] = new Gargoyle();
gameObjects[4] = new Gargoyle();

...

for(int i=0; i<5; i++)
{
    gameObjects[i].Update(elapsedTicks);
    gameObjects[i].Draw(graphics);
}

...
Nyt nakkaan pallon muille, mikä on se kolmas tärkeä tapa joka helpottaa koodausta? ;)

*Polymorfismi voi tarkoittaa myös sitä, että funktiolle tai metodille (jäsenfunktio) voidaan antaa erilaisia parametreja, ja funktio valitaan niiden perusteella. Mutta tämä ei ole olio-ohjelmoinnin ominaisuus, vaan löytyy monista muunkin tyyppisistä kielistä. Esimerkiksi voidaan esitellä funktiot Print(int number) ja Print(string text). Kun kutsutaan Print(344) ja Print("344"), kutsutaan eri funkioita. Tällä tavalla voidaan erilaisen tiedon käsittely samankaltaistaa. Tavasta esitellä saman nimisiä funkioita eri parametreilla käytetään nimitystä kuormitus.
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Offtopic

Post by Koodiapina »

Jare wrote:Jos olet CB:n tyyppejä käyttänyt, niin olevat varmaankin huomannut, kuinka rajoittuneita ne ovat. Niihin ei esimerkiksi voi tallettaa taulukoita.
Muistaisin nähneeni vanhoilla foorumeilla, kun joku sai ne toimimaan jollakin kierolla tavalla. En ole tosin täysin varma.
Alligaattori
Active Member
Posts: 135
Joined: Fri Mar 07, 2008 8:49 pm

Re: Offtopic

Post by Alligaattori »

En tiedä, saako typpeihin mitenkään talletettua taulukoita, mutta muistipalan osoitteen saa. Muistipala toimii yhtä hyvin (joskin vähän hankalammin) kuin taulukko.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Offtopic

Post by Awaclus »

nevssons wrote:kun maailma pännii mua > mä pännin maailmaa
kuinka monella teistä tuntuu ettei kuulu tähän maailmaan?
Anteeksi jos jotain nyt jää harmittamaan vanhan asian uudelleen esiin nostaminen, mutta tuli vain mieleen, että tällä hetkellä vaihdetaan.netissä on juuri menossa Chaosworm vs. Maailma - sota, jossa valitettavasti Chaosworm tuntuu olevan häviöllä o_O
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: Offtopic

Post by Jare »

Grandi wrote:
Jare wrote:Jos olet CB:n tyyppejä käyttänyt, niin olevat varmaankin huomannut, kuinka rajoittuneita ne ovat. Niihin ei esimerkiksi voi tallettaa taulukoita.
Muistaisin nähneeni vanhoilla foorumeilla, kun joku sai ne toimimaan jollakin kierolla tavalla. En ole tosin täysin varma.
Yksi tapa voisi olla ainakin tällainen:
-Tee tyyppi ja laita sille haluamasi Field:t ja sen jälkeen vaikka "index" -niminen Field.
-Tee funktio, jossa tyyppiin luodaan uusi jäsen ja asetetaan kentille oletuarvoja. "index" saa arvokseen juoksevan numeron väliltä 0 - n, kuitenkin niin, ettei kahdella jäsenellä voi olla samaa index-arvoa.
-Tee haluamasilainen taulukko, mutta tee siihen ylimäärinen ulottuvuus. Esim. jos tarvitset yksiylotteista taulukkoa jokaiselle jäsenelle, tee siitä kaksiulotteinen (Dim taulukko(x,y)). Esimmäinen ulottuvuus on tarkoitettu jäsen-indexille, joten tee siitä niin suuri, että ei ole pelkoa, että jäsenten määrä kasvaisi tätä suuremmaksi.

Noin. Tähän taulukkoon mahtuu kaikkien jäsenten taulukkomuotoisia tietoja, eivätkä ne mene sekaisin, kun muistetaan aina lukea ja kirjoittaa käyttäen kunkin jäsenen omaa index-lukua taulukon ensimmäisessä ulottuvuudessa.
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Offtopic

Post by CCE »

koodaaja wrote:Pitää vähän tarinoida, ettei pienoiset ryhdy ihmettelemään koodaaja-sedän katoamista.

Eli lähden reiluksi viikoksi armottomalle kiertueelle Cumina -nimisen orkesteribändiyhtyeen mukana. Kyseessä on suomen lähetysseuran jokakesäinen musiikkiprojekti, mennään ripareille, pariin randomitapahtumaan ja lähetysjuhlille Ouluun soittelemaan.

(Nyt vain arvailemaan, olenko vielä CB survivorssissa mukana, kun palaan : D Rand(0, 1) = 0. dääm.)

Että jotta näkyillään.

EDIT: 700. posti o/ (miten se määrä noin nousee, tulee postcountinkasvattajan maine vielä D:< )
Jumantsukka äijä, soititko Cuminassa?
Meinaan että veditte aivan älyttömän hyvin Ryttylässä, uskomaton meno, olin siellä juuri riparilla.
Mitä soitinta soitit? Ja haluaisin itsekin joskus mukaan kyseiseen joukkioon.

Voi että maailma on pieni. Suu ammottaa auki vieläkin.

Edit: Ja tuo Bamboo One piirtopöytä on ihan kelpo vehje, ihan riittävän kokoinen ja tuntuma mukavan karhea. Kynästä saa hyvän otteen, mutta nappulat ovat hieman lepsut. Mutta kyllä 50€ arvoinen.
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: Offtopic

Post by Jare »

anttipanda wrote:Nyt nakkaan pallon muille, mikä on se kolmas tärkeä tapa joka helpottaa koodausta? ;)
Olio-ohjelmoinnissa yksi juttu on ainakin nimiavaruudet yleensä. Niitä kun voi olla luonnollisesti enemmän. Eli samannimistä muuttujaa/funktiota voi käyttää toisaalla tietyllä tavalla ja toisessa paikassa se taas toimii ihan toisin. :)

Mutta tuo tuskin oli se "kolmas tärkeä tapa", jota tarkoitit (vai oliko?). Kerrohan, mikä se on?
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: Offtopic

Post by anttipanda »

Jare wrote:Mutta tuo tuskin oli se "kolmas tärkeä tapa", jota tarkoitit (vai oliko?). Kerrohan, mikä se on?
No itse perintä tietysti ;) Peritty luokka perii kantaluokkansa rajapinnat ja toteutuksen, ja voi tarvittaessa laajentaa niitä. Oikein käytettynä tämä vähentää copy-pasten minimiin, ja koodista saa helposti ylläpidettävää ja se voi mallintaa tosimaailman (tai pelisellaisen) olioita helposti ymmärrettävällä tavalla.
Attachments
pedofox download day.png
pedofox download day.png (35.23 KiB) Viewed 10015 times
OoO
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Offtopic

Post by JATothrim »

:lol: :lol: *reps* Ei vitsi, repesin tolle kuvalle. :lol: Miksi juuri eilen otin selvää tuon karhun maineesta ?? :D
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
User avatar
Jare
Devoted Member
Posts: 877
Joined: Mon Aug 27, 2007 10:18 pm
Location: Pori
Contact:

Re: Offtopic

Post by Jare »

Dark Code wrote::lol: :lol: *reps* Ei vitsi, repesin tolle kuvalle. :lol: Miksi juuri eilen otin selvää tuon karhun maineesta ?? :D
Lisää: http://img169.imageshack.us/img169/7570 ... on1ee6.png
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Offtopic

Post by koodaaja »

Kotiuduin juuri, mahtava rundi oli. Nyt voisi nukkua seisaaltaan muutaman päivän :o
CCE wrote:Jumantsukka äijä, soititko Cuminassa?
Meinaan että veditte aivan älyttömän hyvin Ryttylässä, uskomaton meno, olin siellä juuri riparilla.
Mitä soitinta soitit? Ja haluaisin itsekin joskus mukaan kyseiseen joukkioon.

Voi että maailma on pieni. Suu ammottaa auki vieläkin.
Soitinpa hyvinkin : D Sähköbassoa ja laulua. Ryttylässä oli kova meno joskin tyrin vähän, unohdin että toinen basisti vääntää mikit pois päältä vaikka antaisi soittopelin suoraan minulle. Hoya hossa tulitte muuten hyvin mukaan, se oli hieno hetki :p

Ja Cuminaan mukaan vaan, toivottavasti pääsen itsekin vielä ensi vuonna. Ja sitä seuraavana. Jne.
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Offtopic

Post by CCE »

Tehtiinpä tuossa kaverin kanssa illalla biisinriekale, äänitettiin mukaan jopa kitaraa.
Transitional Synergy
2,61Mt
256 kb/s
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Offtopic

Post by Sly_Jack0 »

CCE wrote:Tehtiinpä tuossa kaverin kanssa illalla biisinriekale, äänitettiin mukaan jopa kitaraa.
Transitional Synergy
2,61Mt
256 kb/s
Ihan hyvä... Ei tosin ihan meikäläisen musiikkimakuun. Rummut haiskahti vähän FL Studion default rummuilta.(Niitä ei siis järin paljon ollut muokattu.)
SPuntte
Tech Developer
Tech Developer
Posts: 650
Joined: Mon Aug 27, 2007 9:51 pm
Location: Helsinki, Finland
Contact:

Re: Offtopic

Post by SPuntte »

CCE wrote:Tehtiinpä tuossa kaverin kanssa illalla biisinriekale, äänitettiin mukaan jopa kitaraa.
Transitional Synergy
2,61Mt
256 kb/s
Tällaiseksi CB-fruityloops-tason biisiksi aika huippua! Tosin ei kyllä minuun kolahda musiikkilajillisesti ollenkaan mutta sen verran luulisin ymmärtäväni asiasta, ettei tuo mikään huono ole. Propsit myös tuosta "aidosta musiikista" eli kitararaidasta mutta tottapuhuen se sopii tuohon jumputus + syntikkasawtooth-jouset -yhdistelmään yhtä hyvin kuin nenä niskaan :P Hienoa, että joku jaksaa vääntää omaa musaa, tsemppiä jatkoon!
EDIT:

Hei, tuli idea, miten tota vois ehkä parantaa.. (Muista et tää on mun mielipide :P)
Kokeilkaapas muuttaa toi sähkisosuus niin, et se ei soitakaan noin raskaasti pelkkiä kvinttejä (="powersointuja") vaan tiluttaa nopeemmin jotain tyyliin sopivaa kuitenkin samalla tavalla särjettynä. Tulis paljo raikkaampi soundi. Basso kuitenkin pitää huolta siitä komppipohjasta, et kitaraa ei siihen enää tarvita.

Last edited by SPuntte on Thu Jun 19, 2008 11:38 am, edited 1 time in total.
CoolBasic henkilökuntaa
Tech-kehittäjä
CoolBasic Classic, Cool VES

CoolPhysicsEngine | MissileSystem | Jana-ympyrä -törmäys | cbSimpleTexture | CoolCPLX
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Offtopic

Post by Awaclus »

Tietääkö kukaan hyvää näytönnauhoitusohjelmaa, kuten HypCam ja GameCam? HypCam rasittaa, kun ei saa musiikkeja kuuluville, ja en oikein osannut käyttää GameCamia, ja olisi kiva saada eräs video tehtyä. Joten apua haeskellaan ;[)
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Offtopic

Post by esa94 »

Chaosworm: http://camstudio.org/ , en tosin ole aivan varma, nauhoittiko CamStudio äänet. Muistaakseni kyllä.

Sitten vielä yksi kysymys: Osaisiko joku nevoa, miten DSL-N:ssä saisi avattua näppäimistön avulla Terminalin?
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Offtopic

Post by CCE »

No fraps voisi olla pätevä ratkaisu. Jotain rajoiteitteitahan siinä tietenkin on.
http://www.fraps.com/

Edit:
DSL-N:ssä saisi avattua näppäimistön avulla Terminalin?
Eikös ihan ctrl+alt+f3 toimisi, vai olikohan se joku muu funktionäppäin...
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Offtopic

Post by esa94 »

Siis ajan sitä usb-tikulta QEMUlla (Windows ei tykännyt Virtualboxista -.-) ja Ctrl-alt-jotain poistuu QEMUsta, joten se ei ainakaan toiminut.
Kokeilin myös Alt-F1 - Alt-F4 ja Ctrl-F1 - Ctrl-F4, eikä mikään niistäkään avannut sitä ohjelmienkäynnistyslaatikoa. Ongelmana kun nyt on se, että hiiri ei toimi ja pitäisi saada se toimimaan.(Logitechin langaton USB-jyrsijä + näppis -kombo)
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Offtopic

Post by JATothrim »

Minunkin täytyy kysyä tuosta DSL käyttiksestä. Kun en ole linux käyttiksiä/distroja paljoa kokeillut, niin kunka saan netin toimimaan? ( emulattorilla toimii :( ) Mietin että katotaapa ajureita tai vastaavaa, mutta linuxissahan homma on ihan erillainen. :? Eli kunka saan (boardcomin) langattoman yhteyden toimimaan DSL:tä käsin? ilman toisessa päässä on buffalon langaton reititin.

Vastatkaa, jos on aikaa. Ei ole kiire, käyttiksen sisältävä usb-tikkukin on hukassa... :mrgreen:
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
porzi
Active Member
Posts: 119
Joined: Mon Aug 27, 2007 11:10 pm
Contact:

Re: Offtopic

Post by porzi »

CCE wrote:Tehtiinpä tuossa kaverin kanssa illalla biisinriekale, äänitettiin mukaan jopa kitaraa.
Transitional Synergy
2,61Mt
256 kb/s
Diggasin kyl. (256 on aika paljon nettijakeluun...) Tosi hyvä, ottaen huomioon kokemuksen ja harjoittelun määrän. (p*skat mulla oo hajuakaan, kuinka kauan te tota hinkkasitte)

Jos jotain rakentavaa pitäis sanoa, välistä vähän kuulosti siltä, että ajoitus olisi ollut hivenen pielessä.
Voittoja viikkokisoissa: 3
http://fugufish.dy.fi/ | vanhat cb-pelini: http://porzi.arkku.net/old_games/
Locked