Tästä on keskusteltu ennenkin, mutta haluaisin nyt tietää, milloin mahdollisesti tulee uusi kilpailu. Minäkin haluaisin osallistua niihin, olen ollut jäsenenä vain putkaviisujen aikana, ja siihen en osallistunut taitojen puutteessa. Olisi kiva tietää myös mihin (mahd.) projekti liittyy!
Joulun tienoilla voisi olla seuraavan kilpailun aika, mutta kysymys kuuluu: mikä olisi kilpailun aihe?
Yksinkertaisesti joku peli- tai demokisa?
Tekoälykisat ovat mielenkiintoisia.
Edit: teki mieli sanoa, että hakkeroi 80 000 salasanaa -kilpailu, mutta jätän sanomatta :)
Edit2: osallistumiskynnys olisi ainakin omasta mielestä hyvä saada matalammaksi kuin aiemmissa kilpailuissa.
Tällaiset "peli- ja demokisat" ovat vähän kuluneita, niitä kun näkee vähän siellä ja täällä. Tosin kisa saattaisi muuttua mielenkiintoisemmaksi, jos siihen lisättäisi näitä putkatyylisiä vivahteita. Etenkin demoa tehdessä huomioon otettavat aiheet olisivat kivoja.
Kyllä se on ihan passeli idea, jos saadaan vain kunnon aihe. Ei mitään "tee paras peli ja voita".
Voisi myös olla hyvä jos tuotoksia arvosteltaisiin monelta eri kantilta, esim lyhyin lähdekoodi verrattuna laatuun tjsp, hienoimmat graffat tai paras juoni ym. Eikä vain yksi lista parhaimmista...
T.M.:n ehdotuksessa on ideaa. "Ohjelmointiputka Software Awards 2007!" :)
ajv kirjoitti:
T.M.:n ehdotuksessa on ideaa. "Ohjelmointiputka Software Awards 2007!" :)
Okei, nimeän itseni ehdokkaaksi "suuruudenhulluin projekti" -kategoriaan :)
Kilpailu, josta olisi monelle hyötyä: Kuka saa kuukaudessa korjattua eniten jonkun tunnetun avoimen lähdekoodin tietoturva-aukkoja.
Jaska kirjoitti:
Kilpailu, josta olisi monelle hyötyä: Kuka saa kuukaudessa korjattua eniten jonkun tunnetun avoimen lähdekoodin tietoturva-aukkoja.
Tuskinpa tulisi monta osallistujaa / ihmisiä ei vaan kiinnosta tuollaiset.
Pienet pelit/ohjelmat lienevät paras tapa ja innostaa niitäkin jotka eivät aivan jokapäiväisesti istu koneella koodaamassa.
Jokin perinteinen "koodaa matopeli" tyyppinen jossa on rajoitettu ohjelman kokoa ja käytettäviä apuja innostaisi.
Toisaalta kaksi kilpailua voisi olla pikemminkin paikallaan. Harrastajille ja niille jotka ihan tosissaan koodailevat?
Itse olen jonkinlaisen pelin tai hyötyohjelman kannalla. Tällöin kilpailussa ratkaisee jokin muukin, kuin pelkkä ohjelmointitaito ja algoritmien tuntemus, joka antaa myös vähemmän ohjelmointikokemusta omaaville realistiset mahdollisuudet pärjätä.
Jokin jouluaiheinen demokilpailu olisi kiva. Toisaalta siinä on gurujen liian helppo loistaa. Jokin peleihin ja jouluun liittyvä voisi myös olla kiva. Tällä kertaa voisi koodata vaikka tetriksen?
Mummielestäki se tetris vois olla hyvä tai sitte joku semmoonen QUIn tapaanen.
Dude kirjoitti:
Mummielestäki se tetris vois olla hyvä tai sitte joku semmoonen QUIn tapaanen.
Minulle käy tetris- peli. =) QUI:n tekoon kovin moni tuskin osallistuu... Vai olenko väärässä? :)
Mikä muuten on QUI? Wikipedia ohjaa mut artikkeliin "Queen's University of Ireland", jonka voin arvata olevan väärä.
Minua kiinnostaisi varmaan eniten jonkunlainen tekoälykilpailu (tai miksei Perl golf, mutta ei taida olla kovin suosittua täällä).
Virhe... GUI, eikä QUI...
GUI = Graphical User Interface (Graafinen käyttöliittymä)
Miten joku ohjelma sitten on graafisen käyttöliittymän tapainen? Jos tuolla QUI:lla GUI:ta tarkoitettiin, tuossa ylemmässä viestissä ei ole mitään järkeä.
EDIT: Jollei sitten ollut tarkoitus koodata jotain yleispätevää GUI-kirjastoa tai sellaista?
Jos jonkinlaisen pelin kannalle ollaan kääntymässä, niin ehdottaisin aiheeksi jonkin kasari-arcade-pelin henkiin herättämistä. Eli voisi valita sydäntään lähinnä olevan arcade-pelin ja tehdä siitä päivitetty/omalaatuinen versio. Valinnanvara voisi tehdä hyvää osallistujamäärälle ja näin myös tuoreemmat putkalaiset voisivat osallistua. Tosin arvostelu voi olla vaikeaa, mutta äänestämällähän tuo yleensä on hoidettu. Mielestäni kilpailujen tavoitteena kuitenkin on saada aikaan paljon erilaisia tuotoksia - ei kisata vain voitosta. Ja antavathan nämä kilpailut ainakin syyn alkaa tekemään jotain.
Ristinollakisa oli oikein mielenkiintonen ainakin, ei turhan työläs mutta silti kukaan tuskin samaa teki.
Ristinollakisa oli hyvä senkin takia, että siihen oli kohtuullisen helppo osallistua vaatimattomammallakin viritelmällä, ja minusta tuolloin vaatimattomatkin tekoälyt olivat sinänsä paljon kiinnostavampia kuin tyypillisen demo- tai pelikilpailun heikoimmat tekeleet.
Tehdään sitten äänestys..
Minkä näistä ideoista valitsette?
1. Ristinolla
2. Tetris
3. Demo
4. Pikkupeli (aihe vapaa)
5. Joku Muu (mikä?)
-----------------------------------------
Sitten vain valitsemaan!
Itse suosin pikkupeliä..
4, pikkupeli :)
1. Ristinolla oli jo.
2. Tetriksestä on vaikea keksiä mitään kovin omalaatuista.
3. & 4. Aihe pitäisi minusta rajata tarkoin. Usein noista tahtoo tulla vähän turhan kirjavia, esimerkiksi Suomipelien saunapelikilpailussa oli joitain pelejä, joiden yhteys saunaan jäi nimeen ja valikon taustakuvaan.
5. Kannatan.
GUI:sta tuli mieleen, että miksei pidä käyttöliittymän suunnittelu kilpailua? Annetaan aihe ohjelmalle, johon kilpailijat suunnittelee ja toteuttaa toimivan käyttöliittymän. Tämä voisi omasta mielestäni olla hyvä oppimisenkin kannalta, koska monia ohjelmia/pelejä katselleena käyttöliittymän syvällisempään suunnitteluun ei juuri aikaa kuluteta. Sekä saataisiin hyvää vaihtelua ainaiseen koodaa peli/demo "kulttuuriin".
Edelleen ehdotan sitä "putkan uusi leiska" -kisaa :) Vaikka ulkoasu juuri uudistuikin, niin kiva silti on katsella muita mahdollisia variaatioita.
Olga kirjoitti:
Edelleen ehdotan sitä "putkan uusi leiska" -kisaa :) Vaikka ulkoasu juuri uudistuikin, niin kiva silti on katsella muita mahdollisia variaatioita.
Minusta tuo kisa ei ole mielekäs, kun Putkan koodi taitaa olla vielä sillä mallilla, ettei niitä leiskoja ihan helpolla saisi tänne käyttöön. Vai pidetäänkö samalla "uusi Putka" -kilpailu? ;)
Joo tuli tosiaan virhe ku kiriootin QUI enkä GUI
Minustakin tuntuisi hölmöltä, jos ohjelmointifoorumilla olisi kisana sellainen, joka olisi suunniteltu lähinnä graafikoille.. :D
Entäs jos pitäisi suunitella joku putkan osa, esimerkiksi keskustelu tai vastaava uudestaan?
Itse pitäisin jostain putkapostin tyylisestä, mutta vain suuremmassa mittakaavassa. Pelejä täältä koodaa moni, mutta pelikisoja on minusta ihan tarpeeksi. Tekoälykisa olisi sellainen, mihin todennäköisimmin osallistuisin. Mutta uudet ideat ovat ehkä parhaita vaihtoehtoja kilpailuiksi. Katsotaan, mitä tapahtuu.
Jospa ei kuitenkaan suljeta peli-kilpailua pois vaihtoehtojen joukosta, sllä olisihan mielekästä saada mahdollisimman plajon osallistujia kilpailuun. Minusta ainakin olisi mukava osallistua peli-kilpailuun tutussa ja arvostetussa putkassa. Jostain syystä ulkomaisten sivujen kilpailut tuntuvat luotaantyöntäviltä(voin hyvinkin olla yksin mielipiteeni kanssa, mutta sitähän tässä ilmaisen ;)
En tietenkään ole automaattisesti uusia ideoita vastaan, mutta kilpailun tulisi olla sellainen johon voisi ottaa osaa kielestä riippumatta. Tällöin esimerkiksi putkan keskustelun uudelleen suunnittelu olisi pois suljettu vaihtoehto. Tai harvemmin olen törmännyt QBasicilla tehtyihin foorumeihin. ^^
Lisää vaihtoehtoja vain tulemaan!
Tekoälykilpailu sopisi parhaiten putkan henkeen.
Miten olisi tetris-tekoälynkehittämiskilpailu (älyttömillä nopeusvaatimuksilla).
Mitä tarkoitat älyttömillä nopeusvaatimuksilla. 10 kellojaksoa per sijoituskohdan valinta?
Itse näkisin, että tetriksen tapauksessa olisi järkevämpää keskittyä älykkyyteen kuin järjettömään tehokkuuteen.
Eli esimerkiksi jos yhden rivin kerrallaan hävittämisestä saisi 1 pisteen, 2 rivistä 3 pistettä, 3 rivistä 9 ja 4 rivistä 27 sekä koko pelialueen tyhjentämisestä pisteet kaksinkertaisina, niin täytyisi saada ohjelma optimoimaan noita palikoiden sijoittelua. Sitten pelattaisiin vaikka 1000 kpl simuloituja eriä joissa kussakin tulisi max. 10000 palikkaa (jos kosahtaa niin vähemmän) ja se ohjelma voittaisi joka saisi eniten pisteitä. Tietysti voitaisiin lisäksi laittaa joku järjellinen aikaraja, esim. 1 GHz Core2Duo prossalla saisi mennä max. 0,001 s per palikka (tai esim. koko systeemiin yhteensä max tunti). Jos kokonaistestausaika tuntuu kohtuuttomalta niin voisi muuttaa niin, että 1000 palikkaa per erä ja 100 erää, jolloin pitäisi mennä alle minuuttiin.
Kahden erän kisa; Koodi joka loisi mahdollisimman hyvän labyrintin (esim: 300*300) . Muut sitten luovat algoritmin joka yrittää päästä sieltä labyrintistä pois.
Näin jokainen siis loisi koodin joka sekä luo että yrittää ratkaista muiden labyrintteja.
Pisteytys vaatii hieman suunnitteluia, koska sekä toisen labyrintin nopeimmasta selvittämisestä että vaikeimman labyrintin suunnittelusta saa eniten pisteitä. Muista sijoista sitten hieman vähemmän niitä pisteitä.
Mitenhän ajattelit tuota labyrintin selvittämisen nopeutta mitata? Eihän tuossa ole järkeä. Käytännössä kisan voisi muotoilla suunnilleen sanoin "implementoi A*-algoritmi". Enintään päästäisiin kilpailemaan siitä, miten hyvin arvaa, millaisia labyrintteja muut luovat. Vai menikö jokin osa tästä ajatuksesta nyt minulta ohi?
Pelikisa vaan eikä mitään labyrinttejä.
Tuossa tetristekoälyssä on ideaa.
Eli kaksi tetrisruudukkoa vierekkäin joihin tulee samat palat.
Toista voisi pelata ihminen ja toista ruutua hoitelisi tekoäly.
Tai sitten joku muu pelikilpailu.
Ja ohjelmointikielenä saisi olla mikä vaan samoin kuin käyttöjärjestelmä.Dos,Linux,Windows ja muut.
Hmm, joku ajopeli (ajoneuvo voi olla mikä tahansa polkupyörästä lentäviin lautasiin ja mukeihin) vaikkapa ideana mahdollisimman pienet laitevaatimukset ja tietysti monipuolisuus.
moptim kirjoitti:
vaikkapa ideana mahdollisimman pienet laitevaatimukset
Eli joku euron mikrokontrollerissa pyörivä olis vahvoilla?
Hmm... ajopeli jossa mahdollisimman pienet laitevaatimukset. Se on kyllä hyvä idea. Mä tekisin sen varmaan 16 megahertzisellä 386SXsälllä(meirän hitain kone).
Johan noita ajopelejä oli Apple II:lle, kuuslankulle, MSX:lle ja 8-bit Nintendolle. En oikeen tosiaan nää ideaa vaan yrittää saada mahdollisimman pieniä laitevaatimuksia, kun ei niissä melkeinpä mitään alarajaa ole (johon yritin vähän viitata edellisessäkin viestissä)
Tai mielenkiintoista olisi nähdä miten 2 bottia "taistelee" keskenään jossain kilpailua varten luodussa pelissä. Visualisoija voisi vaikka sekunnin välein (tai tietysti kilpalaskennassa ilman viivettä) antaa tilanneraportin boteille ja nämä sanovat mitä tehdä. Eli vähän kuten ristinollakisa.
Tässä sallisin pienen muistitiedoston käytön boteille, kuitenkin tilanneraportin ei välttämättä tarvitse lähettää kaikkea tietoa esim jos nämä eivät näe toisiaan.
edit: Pääohjelman vastuulla on poistaa muistitiedosto ennen pelin alkua jos se löytyy.
Peliareena olisi vaikka koko ajan luettavissa kartta.txt tiedostosta, mahdollisesti jopa dynaaminen sellainen...
User137 kirjoitti:
Tai mielenkiintoista olisi nähdä miten 2 bottia "taistelee" keskenään jossain kilpailua varten luodussa pelissä. Visualisoija voisi vaikka sekunnin välein (tai tietysti kilpalaskennassa ilman viivettä) antaa tilanneraportin boteille ja nämä sanovat mitä tehdä. Eli vähän kuten ristinollakisa.
Tässä sallisin pienen muistitiedoston käytön boteille, kuitenkin tilanneraportin ei välttämättä tarvitse lähettää kaikkea tietoa esim jos nämä eivät näe toisiaan.
edit: Pääohjelman vastuulla on poistaa muistitiedosto ennen pelin alkua jos se löytyy.Peliareena olisi vaikka koko ajan luettavissa kartta.txt tiedostosta, mahdollisesti jopa dynaaminen sellainen...
Toi olisi oikeastaa aika kiva idea. Aikoinaan meinasin tutkiskella vastaavan laisia bottitaistelula (esim. http://necrobones.com/atrobots/), mutta silloin ei innostus aivan riittänyt kunnon perehtymiseen. Idea on silti aika mielenkiintoinen. Putkan henkeen toki kuuluu, että taistelun runko tehdään itse (Antti sykkii :) ) eikä valmiita ohjelmia käytetä. Noita robottitaistelurunkoja oli muistaakseni pari muutakin eikä tuollaisen teko olisi varmaan kovin iso homma, jos robottien käskykannan pitää yksinkertaisena.
Oma ideani on edelleen se Texas hold'em pokeriteköälyn koodaaminen, mutta tähän alkaa jo pikkuhiljaa olemaan osittain valmiita ratkaisuja tarjolla.
User137 kirjoitti:
Tai mielenkiintoista olisi nähdä miten 2 bottia "taistelee" keskenään jossain kilpailua varten luodussa pelissä. Visualisoija voisi vaikka sekunnin välein (tai tietysti kilpalaskennassa ilman viivettä) antaa tilanneraportin boteille ja nämä sanovat mitä tehdä. Eli vähän kuten ristinollakisa.
Kannatan.
Mutta missä pelissä? Aapelin tykkipeli olisi hyvä :D
Kannatetaan RobotBattle-tekoälykilpailua!
FooBat kirjoitti:
Oma ideani on edelleen se Texas hold'em pokeriteköälyn koodaaminen, mutta tähän alkaa jo pikkuhiljaa olemaan osittain valmiita ratkaisuja tarjolla.
Kuulostaa mielenkiintoiselta idealta. Ainakin tällä hetkellä (virallisesti olemassaolevat) Hold'em-tekoälyt häviävät pokeriammattilaisille.
Valitettavasti Hold'em jouduttaisiin pelaamaan 1vs.1-muodossa siten, että kukin peli pelataan kahdesti "samalla pakalla" tekoälyjen paikkaa pöydässä vaihtaen jotta älyjen todelliset erot selviävät. (pöytiä tarvitaan n(n-1) - ei mahdotonta (?))
Jos kaikki tekoälyt laitettaisiin samaan pöytään, ne tarvitsisivat n! pöytää jotta sattuma eliminoitaisiin täysin.
User137 kirjoitti:
Tai mielenkiintoista olisi nähdä miten 2 bottia "taistelee" keskenään jossain kilpailua varten luodussa pelissä. Visualisoija voisi vaikka sekunnin välein (tai tietysti kilpalaskennassa ilman viivettä) antaa tilanneraportin boteille ja nämä sanovat mitä tehdä. Eli vähän kuten ristinollakisa.
Jonkinlainen tekoälyjen välinen taistelu kiinnostaisi minuakin. Ristinollahan tosin oli jo tällainen, mutta siitä on toisaalta jo kolme vuotta aikaa ja se ainakin sai aikoinaan ihan mukavasti osallistujia. Pitäisi vain keksiä jälleen jokin sellainen laji, joka ei mene liian monimutkaiseksi ja nosta siten osallistumiskynnystä. Mielessä kävi sellainenkin idea, että kilpaan voisi tuoda hieman variaatiota pakottamalla tekoälyt esim. tekemään jonkin verran yhteistyötä tavoitteidensa saavuttamiseen.
Heh texas holdem idea sai minutkin kiinnostumaan.
Jokainen voisi tehdä oman pelaajansa. Kisan järjestäjä koodaisi jakajan, jonka rajapintaa tottelisi pelaajien mokkulat. Sattumaa ei pidä poistaa 100 %, koska ei taitavinkaan pelaaja hallitse huijaamatta tilannetta 100 %. Pokerissa ei kuitenkaan tuurilla pitkälle pötkitä. Toki turnaus on järjestettävä useaan otteeseen, mutta tämä tuskin tuottaa ongelmia. Finalistit voivat sitten ottaa useamman head to head selvittääkseen todellisen voittajan.
Hittolainen mielenkiintoinen idea.
L2-K2 kirjoitti:
Jos kaikki tekoälyt laitettaisiin samaan pöytään, ne tarvitsisivat n! pöytää jotta sattuma eliminoitaisiin täysin.
Heh, poistetaan sattuma pelistä joka on 99%:sti sattumaa :)
Mää tahon tehä Settlers Serfcity kloonin :3.
Elämä on pettymyksiä täynnä...
Prkl. Ois tietysti pitänyt pienissä laitevaatimuksissa jotakin mainita. Nytpä mainitsen. Meinasin 80x86-yhteensopivia, ja tietysti myös näyttävyys sun muut painaisvat vaakakupissa.
T.M. kirjoitti:
L2-K2 kirjoitti:
Jos kaikki tekoälyt laitettaisiin samaan pöytään, ne tarvitsisivat n! pöytää jotta sattuma eliminoitaisiin täysin.
Heh, poistetaan sattuma pelistä joka on 99%:sti sattumaa :)
Pokeri (poislukien Omahan kaltaiset, etenkin Hold'em) on kaukana 99% tuuripelistä. Ehkä 10-20% tuloksesta on tuuria pokerin pelaamisen hallitsevien välillä.
Jos aiotaan mitata tekoÄLYjen pokeritaitoja, pitää sattuma poistaa.
Esimerkikis kun Vancouverin yliopiston pokeritekoäly haastoi ihmispelaajia, pelattiin pelit niin että oli kaksi toisistaan erillistä pyötää, joista toisessa pokeriammattilainen sai ne kortit mitkä toisessa oli tietokoneen käytössä.
Ihmiset voittivat silti (tosin pienellä marginaalilla).
L2-K2 kirjoitti:
Pokeri (poislukien Omahan kaltaiset, etenkin Hold'em) on kaukana 99% tuuripelistä. Ehkä 10-20% tuloksesta on tuuria pokerin pelaamisen hallitsevien välillä.
Jos aiotaan mitata tekoÄLYjen pokeritaitoja, pitää sattuma poistaa.
Esimerkikis kun Vancouverin yliopiston pokeritekoäly haastoi ihmispelaajia, pelattiin pelit niin että oli kaksi toisistaan erillistä pyötää, joista toisessa pokeriammattilainen sai ne kortit mitkä toisessa oli tietokoneen käytössä.
Ihmiset voittivat silti (tosin pienellä marginaalilla).
Toisaalta, jos ajatellaan todellista pokeriturnausta ihmisten välillä. Turnauksessa on useita pöytiä ja ehkä satoja pelaajia. On hyvinkin mahdollista, että taitavampi pelaaja tippuu pois matkalla, mitä finaalipöytään pääsee. On siis annettava tuurillekkin tilaa, koska siitähän perimmässään on kyse "Game of Change".
Kuitenkin veikkaan, että osallistuja määrä tulisi olemaan pienehkö. Näinollen sattuman 80 % poistaminen ei ole edes ongelma.
Itse olen pitkälti hyödyntänyt sääntöä, että pitkällä aikavälillä tuuripelaaja häviää. Pelaankin pitkälti aina speed turnauksia pienillä pöydillä. Näin tehnyt mukavaa tiliä hitaasti mutta varmasti.
Anyways kun katsoo duunikalenteri, on vaikea nähdä että olisi aikaa oikeasti osallistua ;(
Tietenkin tehdään jokin tekoälykisa! Ei mitään arkipäiväisiä pelejä, joista paras valitaan vallitsevan mielipiteen mukaan.
Ideoita:
a)
Tetris voisi olla hyväkin aihe. Tetristä voisi vähän muokata omaperäisemmäksi. Esimerkiksi antaa ohjelmalle valmiiksi vaikka 1000 ensimmäisen palan tyyppi ja järjestys. Ohjelma joutuisi etsimään parhaita mahdollisia siirtoja pärjätäkseen.
Tämä sopisi myös aloittelijoille, sillä pisteitä kertyisi jo pienellä koodimäärällä. Valitettavasti tekoälyjen kaksintaistoa ei tapahtuisi, mikä on sääli.
b)
Kahdelle ohjelmalle annetaan oma (salainen) sana. Peli aloitetaan generoimalla pitkä sana. Ohjelmat saavat vuorotellen poistaa/lisätä/muokata yhtä kirjainta generoidusta sanasta. Tavoitteena on saada generoitu sana muutettua omaksi (salaiseksi) sanaksi.
kehittelyä ->
Salasana voisi olla arvottu parin tuhannen sanan listasta(ei siitä listasta :D), johon kummallakin ohjelmalla on pääsy suorituksen aikana. Ohjelmat voisivat yrittää taktikoida ja yrittää päätellä vastustajan salasanan ja muokata kirjainta josta on itselle eniten hyötyä, ja vastustajalle eniten haittaa.
Ongelmaksi tulisi pelitilanteen jämähtäminen paikoilleen kun toinen kumoaa toisen siirrot. Ehkä lisäsäännöillä estettävissä?!
Tetristä pelaavaa tekoälyä pitää myös koetella sellaisella kentällä, jossa on joitakin palikoita valmiiksi.
Kyllä tetristä voi pelata 2 ihmistä/konetta vastakkain. Onhan noita pelejä ollu jo aikoinaan nintendolle. Eli 2 pelaajan ruudun välissä on mittari kummallekin joka kertoo montako riviä aikoo nousta. Lukema kasvaa aina kun vastustaja saa suoran ja palaa takaisin alas kun itse saa suoran. Kun oma pala sitten on paikallaan ja suorat laskettu, nousee pohja ylöspäin mittarin osoittaman rivimäärän verran.
Tetris DS:ssä on aika muikea kaksinpelimoodi, jossa pelataan täysin samalla kentällä ja pusketaan toista ulos kentältä. Toinen on ylhäällä ja toinen alhaalla, väärinpäin. Siinä kun tekee 2 riviä, kaikki siirtyy rivin vastustajan suuntaan, tee 3 -> 2 riviä, tee täydet 4 -> 3 riviä. Peli päättyy samalla säännöllä kuin perustetriskin.
Samalla pelikentällä pelaaminen aiheuttaa sen, että ei voi ihan mihin tahansa palikoita viskellä, koska pian kaverin neljän suora tai muuta kivaa lävähtää kehiin. Toista pelaajaa on myös mahdollista kiusata eri tavoin: alussa voi tehdä vaikka kivan reikäjuustoasetelman vastustajan puolelle, jolloin useamman rivin tekeminen on työn ja tuskan takana.
Eikös palikkapelikisaan osallistuttu jo useammallakin tetriksellä? Miks pitäs olla uus kisa melkein samasta aiheesta vaan aiempaa rajatummin?
Itse olisin myös jonkin pienen pelin kannalla. Aloittelijatkin saa paremmin osallistumaan, kun osallistumiseen ei vaadita mitään peruskoulutasoa ylittäviä matemaattisia taitoja kuten parhaimman mahdollisen algoritmin etsimistä.
Miltä tekstiseikkailu kuulostaisi aiheena? Monivalintapelien lisäksi voisi osallistua myös sellaisilla peleillä, jossa pelihahmoa käskytettäisiin kirjotetuilla komennoilla. Aihevaihtoehtona voisi myös olla ASCII-grafiikallinen peli - vaikkapa sitten jollain tietyllä aihepiirillä.
Mielestäni aiheen pitäisi olla tarpeeksi laaja, mutta silti jotenkin rajattu, jotta omaperäisillä ideoilla voisi erottua selkeästi joukosta. Palikkapeli oli juuri tällainen aihe: peliin pystyi osallistumaan tetris-kloonilla, matopelillä, tasohyppelyllä tai vaikka 3D-räiskinnällä, kunhan pelissä esiintyi jossain muodossa palikkamaisuutta.
Palikkapelin vastineeksi pallo-/ympyräpeli? :)
Cornix kirjoitti:
Eikös palikkapelikisaan osallistuttu jo useammallakin tetriksellä? Miks pitäs olla uus kisa melkein samasta aiheesta vaan aiempaa rajatummin?
Pelin ja tekoälyn koodaamisessa on minusta ihan riittävän paljon eroa.
Jos lähdetään tekemään ASCII-peliä, voisin olettaa, että helpohkosti henkilö joka näkee eniten vaivaa tuotoksensa eteen voittaa. Onko jonkun mielestä esim. Nethackin ja ADOMin välillä mitään erikoisia eroja paitsi varsinainen pelisisältö? Tai joidenkin perustekstiseikkailujen. Kaikilla ei oo aikaa/kiinnostusta tehdä jotakin tekstipelisoftaa +20 tuntia ihan vain siksi, että kirjoittaa siihen sujuvan juonen tms...
Minusta pelit ovat aina olleet vähän huono ratkaisu, sillä niissä keskitytään ohjelmoinnin ja "taiteellisuuden" lisäksi taustamaailmaan, grafiikoihin, sujuvaan musiikkiin, pelijuoneen ja pelimekaanisiin seikkoihin (mmh, tekeekö tää monsu 10 vai 12 damaa?)
Tainno, yksinkertaiset arcade-pelit poikkeus, mutta ne on ainakin henk. kohtasesti vähän tylysiä :)
Arcade-klassikko omilla mausteilla?
-Rajattu aihe
-Teema
-Aloittelijaystävällinen
-Antaa mahdollisuuden monenlaisiin tuotoksiin
-Retroilu on aina kivaa
Kiitos monista hyvistä ideoista! Lisääkin saa mielellään ehdottaa.
Tekoälyihin ja muihin algoritmeihin liittyvät kilpailut ovat siinä mielessä Ohjelmointiputkan ominta alaa, että niissä nimenomaan täytyy osata ohjelmoida. Tosin on totta, että näiden kilpailuiden vaikeustaso nousee helposti aika korkeaksi ja algoritmeja saa laatia koko vuoden ajan Putkapostissa. Mutta ainakin tähän mennessä minusta juuri onnistuneimmat kilpailut ovat olleet kolme tekoälykilpailua.
Miten olisi texas hold em tekoäly?
Tai tavallinen pokeri tekoäly
Eli siis tekoäly pelaisi toista tekoälyä vastaan jne...
Tai esim joku muu kasinopeli?
Tuuripelejä pelaavien ohjelmien arvostelu voisi kyllä olla vaikeaa. Kaikki siirrot arpova ohjelma voisi ihan hyvin pärjätä parhaiten muita tekoälyjä vastaan. Voittaisiko eniten pelitaktiikoita sisältävä ohjelma kisan, vaikka yksinkertaisempi ohjelma päihittäisikin sen pelissä? Arvostettaisiinko kisassa enemmän strategiointia vai puhtaasti voittoja?
Mitä järkeä olisi pitää kisa, jota ei voitaisi järkevästi tuomaroida? Mieluummin Mobelin kuvailema arcade-klassikko-kisa, sanon minä.
Demokompokin voisi olla kiva vaihtoehto, mutta sekin olisi aiheena aloittelijoita karsiva.
Miten olisi jonkin oikeasti hyödyllisen apuohjelman ohjelmointi?
No, Antti. Oletkos jo päättänyt kisa- idean? Ideoita on tullut kuin sieniä sateella!
Miten olisi tekoälykisa korttipelistä nimeltä paska alias paskahousu. Pelissä siis lätkitään kortteja kasaan ja ensimmäinen joka pääsee korteistä eroon voittaa. Jokaisella pelaajalla on myös kolme korttia piilossa joita ketään ei tiedä ja kolme korttia jotka on kaikkien nähtävissä. Ensin pelataan kädessä ja nostopakassa olevat kortit ja sittee pla pla plaa...
Lukekaa säännöt loppuun täältä:
http://www.korttipelit.net/Paskahousu
Pelistä on myös useita erilaisia variaatioita joilla pelistä saadaan todella mielenkiintoinen. Taktikointia voi todella helposti tehdä esim. laskemalla mitä kortteja kelläkin on.
Peli ei ole läheskään niin arpaonnea kuin pokerit.
En ole tietoinen putkan aiempien kilpailujen aiheista. Tätä ketjua lukiessa tuli kuitenkin mieleen idea tekoälykisasta, jossa pitäisi luoda tekoäly pelaamaan go -lautapeliä toista tekoälyä vastaan. Pelin säännöthän ovat melko yksinkertaiset, mutta silti ei ole pystytty kehittämään vielä tekoälyä, joka voittaisi ihmispelaajat gossa.
Kilpailu ei vaatisi välttämättä kovin hyviä ohjelmoinnin tai algoritmituntemuksen taitoja, joten aloittelijatkin voisivat osallistua. Tietysti netistä varmasti löytyy tähänkin jonkin näköisiä valmiita algoritmejä, mutta luotettaisiin kilpailijoiden rehellisyyteen ja haluun keksiä oma ratkaisu.
Ainakin itse voisin olla kiinnostunut jostakin tämän tapaisesta.
Tekoäly-kilpailuja on jo ollut muutamiakin. Jokunen peli-aiheinen kilpailu, ja hyvin vähän demo-aiheisia. Ehkä jotain erikoisempaa seuraavaksi?..
-Grey-
Grey kirjoitti:
Tekoäly-kilpailuja on jo ollut muutamiakin. Jokunen peli-aiheinen kilpailu, ja hyvin vähän demo-aiheisia. Ehkä jotain erikoisempaa seuraavaksi?..
-Grey-
Edelleen ehdotan tuota leikkimielistä OP Software Awardsia. Kynnys osallistumiseen olisi ainakin pienempi :)
Joku tietokoneen laitteistontestausohjelma voisi myös olla ihan mielenkiintoinen aihe? Tarkoitan siis ohjelmaa tyyliin 3DMark. Voittaja voisi vaikka olla ohjelma, joka testaa tietokonetta monipuolisimmin ja jossa on helpoin käyttöliittymä.
Päärynämies kirjoitti:
En ole tietoinen putkan aiempien kilpailujen aiheista.
Niihin voit tutustua kilpailusivulla.
petrinm kirjoitti:
Miten olisi tekoälykisa korttipelistä nimeltä paska alias paskahousu.
Miksei saman tien valepaska? :) Siitähän vasta jännää tulisikin.
Metabolix kirjoitti:
petrinm kirjoitti:
Miten olisi tekoälykisa korttipelistä nimeltä paska alias paskahousu.
Miksei saman tien valepaska? :) Siitähän vasta jännää tulisikin.
Hmm... lets see... random win? thats more like boring...
Minusta pitäisi ensin miettiä, että halutaanko järjestää puhtaasti
ohjelmointikilpailu vai liittyisikö kilpailuun jossain muodossa esim.
juonen kehityksellistä, graafista tai musiikillista suoritusta, jotka
vaikuttavat lopputulokseen. Voisin kuvitella, että puhtaasti
ohjelmointiin
painottuvaan kilpailuun useammalla käyttäjällä olisi taidolliset
valmiudet osallistua. Ihmisten kiinnostuksista eri alueita kohtaan en
ainakaan minä osaa sanoa mitään.
Itse kuitenkin suosisin mahdollisimman puhtaasti ohjelmointiin
painottunutta kilpailua, onhan tämä vielä ohjelmointiin keskittynyt
sivusto. Ainakaan itselläni ei ole kiinnostusta minkäänlaisen pelin
kehittelyyn. Mielestäni tekoälykilpailu keskittyy mahdollisimman
puhtaasti ohjelmoinnin osaamiseen. Tässä kontekstissa ohjelmointi-käsite
voidaa laajentaa käsittämään muutakin kuin pelkkä koodin kirjoittaminen.
Se sisältäisi myös ongelman määrittelyn ja ratkaisualgoritmin
miettimisen.
Tehtävä siis keskittyisi enemmän ongelman ratkaisuun. Esimerkiksi
pelintekokilpailu taas jopa keskittyisi suurimmaksi osaksi luovuuteen ja
ohjelmointi vain olisi tapa "kanavoida" tätä luovuutta konkreettisempaan
muotoon (kuinka konkreettisia ohjelmat sitten ovatkaan). Mahdollisia
kaikille yleisiä ohjelmointiin liittyviä ongelmia ei löytyisi, vaan
tähän mennessä edellisten viestin ehdottamat aiherajaukset ja vastaavat
määritykset tai rajoitteet
luovat mahdollisesti vain ongelmia luovuutta edellyttävään osaan
suoritusta (juonen suunnittelu, grafiikan suunnittelu jne.).
Jos taas tulisi luoda ns. hyötyohjelma, niin ohjelmien paremmuutta on
hankala mitata objektiivisesti. Tietysti käyttäjä-äänestyksellä saadaan
laitettua tälläiset ohjelmat subjektiiviseen järjestykseen joukon
mielipiteiden mukaan. Tällöin kuitenkaan arviointi perusteet eivät
kaikilla ole samat. Voidaan tietysti tehdä oletus, että hyötyohjelmat
laitetaan järjestykseen hyödyn mukaan, mutta tällöinkään ei tiedetä
onko käyttäjä ajatellut hyötyä itsensä vai laajemman yhteisön
näkökulmasta. Tällöin ei myöskään voitaisi puhua kilpailun voittaneesta
ohjelmasta parhaana hyötyohjelmana tai hyödyllisimpänä, koska hyöty on
suhteellinen käsite. Edes sen nimeäminen putkalaisten mielestä
hyödyllisemmäksi ohjelmaksi ei olisi oikein, sillä ei tosiaan voida
tietää miltä kannalta on hyötyä ajateltu. Olisi totta kai mahdollista
määrittää äänestysohjeissa miltä kannalta ohjelmaa tulee arvioida, mutta
käyttäjä-äänestyksessä tällainen ei oikein toimisi.
Tekoälykilpailussa siis meillä olisi ongelma, johon tulisi löytää
optimaalinen ratkaisualgoritmi. Tietysti ongelma todennäköisesti koostuu
useammasta osaongelmasta, johon jokaiseen tulee löytää oma
ratkaisualgoritminsa. Ehkä ohjelmointikilpailun sijasta tällöin
tulisikin
puhua ohjelmallisesti ratkaistavissa olevan ongelman optimaalisimman
ratkaisun
löytämiseen tähtäävästä kilpailusta. Esimerkiksi aiemmassa viestissäni
mainitseman go-lautapelia pelaavan tekoälyn kohdalla pitäisi juuri
löytää optimaalisin siirto omalla vuorollaan. Tälläiset tekoälyt
olisi myös helppo laittaa
järjestykseen peluuttamalla niitä toisiaan vastaan.
Tekoälykisassa voitaisiin myös koittaa eliminoida algoritmeihin
liittyviä tiedollisia eroja valitsemalla ongelma, johon valmiita
ratkaisualgoritmejä ei löydy tai niitä on erittäin hankala soveltaa.
Tästä
syystä go olisi hyvä vaihtoehto, sillä kuten jo edellisessä viestissäni
mainitsin, ei ole onnistuttu kehittämään tekoälyä, joka voittaisi
parhaat ihmispelaajat. Ehkä löytyisi jotain go:ta varten kehitettyjä
algoritmejä, mutta kilpailuissa luotettaisiin kilpailijoiden
rehellisyyteen ja haluun ratkaista ongelma itse.
Go-tekoälyn kehittämiseksi kuitenkin
tehdään
paljon tutkimusta ja näin putkalaisetkin olisivat työskentelemässä
ratkaisemattomien tieteen ongelmien kanssa.
Pahoittelen, jos viestissäni tuli joitakin epäselviä ilmaisuja.
Käytettäköön myöhäistä kirjoitusajankohtaa tekosyynä niiden
mahdolliselle esiintymiselle.
EDIT: Rivinvaihdot näköjään ovat miten sattuu, johtuen ehkä siitä että kirjoitin tämän ensin nanolla ja copypastesin tänne. Täytyy katsoa, jos korjaan ne käsin, mutta tekstin ainakin pitäisi luettavaa.
Toisaalta jos ongelmaan ei ole ennestään keksitty kunnon ratkaisua, voi olla perus ohjelmoijalle hankalaa pistää paremmaksi. Oli kisa mikä hyvänsä, valmiita ratkaisuja toivottavasti kaikki kuitenkin välttää käyttämästä. Ehkä senkin vuoksi palkinnon voi jättää hyvin pieneksi, jopa nimelliseksi.
Yksi ehdotus tekoälykilpailun peliksi: arimaa
http://en.wikipedia.org/wiki/Arimaa
*köh köh* Vaikka periaatteessa demokisoja onkin ihan liikaa, niin aloin juuri koodailemaan jotakin hassua ja nyt tuntuu, että kun tuo on valmis, olisi sitä pakko jonnekin tunkea ;)
Ajattelin tässä, että onko muka mahdotonta tehdä KAKSI kisaa? Demojen teko on kuitenkin koodaarin luovuuden, taidon ja omaperäisyyden mitta - siinä on vain mielikuvitus rajana, ja yhdistyy tekninen osaaminen muunlaisen osauksen kanssa. Samalla olisi luontevaa vähän työskennellä muidenkin kanssa; yksi tekee musiikin, yksi kuvia, kaksi koodia tai vastaavaa.
Siispä nyt ehdotankin, että pidetään kaksi kilpailua. Perinteistäkin perinteisempi demokilpailu ja vaikka tekoälykisa.
Tzaeru kirjoitti:
Siispä nyt ehdotankin, että pidetään kaksi kilpailua. Perinteistäkin perinteisempi demokilpailu ja vaikka tekoälykisa.
Just tulin tänne ehdottamaan samaa. Kannatan, tekoälykisa ja demo/pelikilpailu.
Ei mitään turhaa häsläilyä vaan joku pikku peli tietyllä teemalla kisa niin kaikki on tyytyväisiä :)
Minä edelleen olen tekoälykisan kannalla. Tekoälykisassa nimittäin on enemmän kyse ongelman ratkaisusta ja menetelmän luomisesta. Ongelmanratkaisu ja ohjelmointihan kulkevat käsi kädessä. Pelit ja demot ovat taas enemmänkin (taide)teoksia, joten niissä myös tietynlainen taiteellinen tai muunlainen luovuus ratkaisee enemmän. Näissä kahdessa on siis tietynlainen ero, joten niiden vertailu on hankalaa, eikä aina oikein hyödyllistäkään. Tekoälykisassa luodaan menetelmä ja peli- ja demokilpailuissa teos.
Edellisessä viestissäni mainitsemani Go oli vain esimerkki. Se on ehkä turhan hankala aloittelijoille siihen sisältyvien hahmontunnistuksellisten ongelmien takia.
Ketjussa ehdotetut Go ja Arimaa ovat ehkä hiukan liian vaativia tämän tyyppiseen kilpailuun. Tämä lähinnä siksi, että molemmat pelit ovat laskennallisesti todella vaatia ja tekoälyjä voidaan täten parantaa vain todella "ymmärtämällä" peliä ja opettamalla tekoälykin ymmärtämään sitä. Molemmat pelit ovat lisäksi sen verran harvinaisempia, että en usko, että monella putkan käyttäjällä on näistä peleistä vaadittavaa kokemusta, joka toisi riittävän ymmärryksen.
Replay ristinolla - o/ yes!
Edit. Ok, huono idea :( en vaan kerennyt silloista tekoälyäni saamaan valmiiksi ja harmittaa vieläkin.
FooBat kirjoitti:
Ketjussa ehdotetut Go ja Arimaa ovat ehkä hiukan liian vaativia tämän tyyppiseen kilpailuun. Tämä lähinnä siksi, että molemmat pelit ovat laskennallisesti todella vaatia ja tekoälyjä voidaan täten parantaa vain todella "ymmärtämällä" peliä ja opettamalla tekoälykin ymmärtämään sitä. Molemmat pelit ovat lisäksi sen verran harvinaisempia, että en usko, että monella putkan käyttäjällä on näistä peleistä vaadittavaa kokemusta, joka toisi riittävän ymmärryksen.
Tosiaan tuo Go oli vain esimerkki, kuten edellisessä viestissäni mainitsin. Se vain tuli ensimmäisenä mieleen, kun mietin säännöiltään yksinkertaista kaksinpeliä, joka kuitenkin olisi tekoälynkannalta hieman hankalampi. On totta, että hyvän Go-tekoälyn luominen vaatii paljon tuntemusta tekoälyistä ja muista tieteistä eikä ohjelmointitaitoja vaadita niin paljon. Ehkä tosin ohjelmointikilpailusta on huono puhua, kun sinällään siinä ei varsinaisesti ohjelmointitaitoja mitata, vaan kykyä soveltaa ohjelmointi ongelman ratkaisuun. Ohjelmointi on vain väline, eikä itsetarkoitus.
Takaisin aiheeseen sitten. Tuon tekoälypelin pitäisi olla kumminkin sopivan haastava, sillä yksinkertaisiin ja laskennallisesti helppoihin peleihin voi tulla useampia vastauksia, joissa on jokaisessa löydetty optimaalinen ratkaisualgoritmi.
Päärynämies kirjoitti:
Tekoälykisassa nimittäin on enemmän kyse ongelman ratkaisusta ja menetelmän luomisesta. Ongelmanratkaisu ja ohjelmointihan kulkevat käsi kädessä.
Ongelmia kuitenkin saa ratkaista ja menetelmiä luoda koko ajan Putkapostiin (joskin uusia tehtäviä tulee aika harvakseltaan), eli tällaisia kilpailuja on meneillään koko ajan.
No konsensus on ainakin se porukka näyttää jakaantuvan ihan mukavasti peli/demon ja tekoäly/ongelmanratkaisun välillä. Jos Laaksonen haluaa kaikki halukkaat kilpailuun osallistujat mukaan niin sitten kilpailun pitäisi kulkea kultaista keskitietä näiden kahden välillä tai sitten pitäisi olla kaksi kilpailua.
"Huonoimmin toteutettu laskin/muu pieni ohjelma"? Olisi minullakin mahdollisuus voittaa :P
Kannatan kahta kilpailua. Ongelmanratkaisu/peli ja kaikki voisivat osallistua.
Tai sitten peli, jossa tekoälyllä on astetta suurempi osuus. Yleensähän AI on monissa peleissä melko tankeroinen tai sitten loistaa poissaolollaan... tähän voisi sitten tuoda parannusta pelituotoksessa.
Aiheet tuntuvat liian vaikeilta, mutta keksinpä ainakin tätä lukiessani, miten voin parantaa Space Invaders-kloonin bugikorjaustani. :D
Dääm, nyt muistin, että sekin mokoma jäi vanhalle koneelleni.
Jeee, ei tarvinutkaan.
KoodiNoppa kirjoitti:
"Huonoimmin toteutettu laskin/muu pieni ohjelma"? Olisi minullakin mahdollisuus voittaa :P
Tuli tuosta mieleen ASCII-taideteoksilta näyttävät koodinpätkät tyyliin http://www.99-bottles-of-beer.net/language-perl-737.html (PERL:llä kirjoitettu ohjelma 99 Bottles of Beer, joka kirjoittaa ruudulle lorua, jossa luku vähenee aina yhdellä, kunnes se on nollissa.)
Tuollaisia on kyllä ilkeä lukea, jos aikoo ymmärtääkin jotain...
Aihe on jo aika vanha, joten et voi enää vastata siihen.