Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Kisat ja liigat

Sivun loppuun

Pekka Karjalainen [12.01.2008 15:50:49]

#

Putkan historiassa on kisa tai pari, johon minäkin olisin halunnut osallistua. Ongelmana vain on, etten tiennyt Putkasta silloin, kun ne pidettiin. Katsokaas, on tyhmä pää, eikä kovin fiksu varvaskaan.

Esim. ristinollapelillä on kuitenkin sellainen ominaisuus, että sen kisan voisi uusia säännöllisesti. Silloin halukkaat voisivat kehittää edelleen edelliseen kierrokseen osallistunutta ohjelmaansa tai yrittää kirjoittaa uutta. Jos kisa pidettäisiin säännöllisesti, vaikkapa n kertaa vuodessa, missä n ei ahdista Anttia liikaa, niin kyseessä olisi eräänlainen Putkaliiga.

En välttämättä halua juuri ristinollaa herätettävän henkiin. Mutta tällainen ohjelmointiliiga olisi kiinnostava haaste. Pitäisi sopia putkalaisten kanssa joku haastava ynnä kiinnostava tehtävä, johon tehtyä ohjelmaa olisi tarve sekä varaa ajan myötä parannella. Kun aina säännöllisesti olisi koitos tunnettuja kilpailijaohjelmia vastaan, jännityksellä ei olisi rajaa. Jäisi kyllä formulat toiseksi, eikä MM-kiekkokaan ihan samalle tasolle yltäisi :-)

Luulisi, että suurimman osan liigan järjestelystä voisi automatisoida sopivilla ohjelmilla, joita olisi helppo käyttää aina uudelleen. Ristinollan peluun tasoisia tekoälyhaasteita varmasti keksitään monia ehdolle. Vaihtelun vuoksi välillä soisi tietenkin tulevan ihan uusia kilpailuaiheita, mutta en usko yhden (tai parin?) liigajärjestelyn sitä suinkaan estävän.

Yksi ongelmakin tulee mieleen. Jos kilpailevat ohjelmat julkaistaan säännöllisesti, voi joku laiska ja julkea henkilö kopioida toisen ohjelman osia ja yrittää sillä tavalla saada ansaitsematonta koodigurun mainetta. Asiasta luulisi selviävän miettimällä säännöt ja hyvät tavat tarkasti.

Mitä mieltä?

Mobel [12.01.2008 16:36:11]

#

Itse ainakin olisin tämän idean kannalla. Pitää kuitenkin ottaa huomioon noiden ohjelmien koodaamiseen tarvittava työ, mikä Antille tästä tulisi, mutta eihän tuota "liigaa" heti tarvitsekaan aloittaa. Tietysti olisi hienoa, jos ei-osallistuvillekin voitaisi välittää edes osa jännityksestä, esimerkiksi joidenkin tilastojen ja graafien avulla, jotka vielä mielellään päivittyisivät automaagisesti.

squid [12.01.2008 16:50:34]

#

Liigassa saisi mielestäni olla kenties eri "vaikeustasoja" jotta aloittelijatkin pääsevät osallistumaan.

Pekka Karjalainen [12.01.2008 17:44:56]

#

Eritasoisia sarjoja varmasti syntyisi luonnostaan, jos osallistujia tulisi paljon. Ohjelmien jakaminen sarjoihin tason mukaan säästäisi Antin koneaikaa, mikäli Antti nyt suostuu omalla koneellaan turnauksia aina välillä pitämään.

Jos Antti tykästyy ideaan, hän voisi listata meille asioita, joita pitäisi tehdä liigan eteen. Ehkä muista putkalaisista löytyy vapaaehtoisia tekemään osan hommista? Minä ainakin auttaisin mielelläni esim. sääntöjen ja oppaiden kirjoittamisessa & muokkauksessa (feedbackin pohjalta) tai muussa tarpeellisessa. Kunhan nyt sovitaan joku kisailun aihekin ensin ...

KoodiNoppa [13.01.2008 14:49:04]

#

Kannatan ideaa. Kisassa pitäisi olla yksinkertaiset säännöt, joiden mukaisen ohjelman tekeminen on helppoa, mutta paremmilla taidoilla saisi tietenkin paremmat tulokset. Jos kisa on jonkinlainen peli, siinä voisi olla yksin- ja vastakkainpelaamisen sarja.

Antti Laaksonen [13.01.2008 21:24:31]

#

Jos kiinnostuneita on riittävästi, Putkaliiga voidaan ilman muuta laukaista käyntiin. Kannattaa siis ilmoittautua esim. kirjoittamalla tähän keskusteluun!

Lisäksi kuulisin mielelläni ehdotuksia, missä pelissä tekoälyt kilpailisivat. Aihe saisi olla ensinnäkin kiinnostava ja pelkkä ohjelman laskentanopeus ei saisi ratkaista. Eritasoisia pelejä voi tietysti olla useampiakin.

Minulle tuli jokin aika sitten mieleen Afrikan tähti -peli. Olisihan hauskaa tietää kaikkien vuosien jälkeen, millä tavalla pelissä menestyy parhaiten. Pelin monimutkaisuus voi olla sekä hyvä että huono puoli.

Pekka Karjalainen [13.01.2008 21:44:55]

#

Yltä jo arvaa, että osallistuisin. Pistänpä oman ehdotukseni pelistä kuitenkin tarjolle:

http://en.wikipedia.org/wiki/Connect6

Lyhyesti: Vähän kuin ristinolla, mutta aloittaja saa yhden siirron ja sitten siirrytään kahden peräkkäisen siirron vuorotteluun. Pitää saada kuuden suora. Tuplasiirrot tekevät pelistä ihan erilaisen, ja aloittajan yksittäinen siirto on eräänlainen tasoitus aloitusedusta.

L2-K2 [13.01.2008 23:50:50]

#

Antti Laaksonen kirjoitti:

Jos kiinnostuneita on riittävästi, Putkaliiga voidaan ilman muuta laukaista käyntiin. Kannattaa siis ilmoittautua esim. kirjoittamalla tähän keskusteluun!

Kopeekka kirjoitti:

http://en.wikipedia.org/wiki/Connect6

Putkaliiga kuulostaa hyvältä idealta.

Kannatan Kopeekan ehdotusta pelin valinnaksi. Sitten voisi väittää että ne yli 50 ruutupaperiarkkia jotka pelasin kaverini kanssa täyteen syksyn matematiikan tunneilla eivät olleet turhia...

13*13 tai jopa 11*11 on riittävä pelilaudan koko, peli ei juurikaan pääty tasan näillä(kään) laudan koilla.

Gaxx [14.01.2008 00:17:02]

#

Mielenkiintoinen idea — kannatan!

Pelivaihtoehtoja tosiaan on riittämiin, mutta minusta olisi mukava väsätä äly johonkin aivan erilaiseen peliin, kuin vaikkapa ristinolla, shakki tai ataxx ovat. Kuitenkin mielestäni Antin mainitsema Afrikan Tähti vaikuttaa äkkiä ajateltuna liian satunnaiselta, jolloin tekoälyn merkitys jää turhan pieneksi.

Metabolix [14.01.2008 01:54:53]

#

Minustakin tuollainen jatkuvasti kehittyvä systeemi olisi mukava, ja olen Gaxxin kanssa samaa mieltä siitä, että jokin erilainen peli olisi mukava. Olisi mielenkiintoista pelata jotain, jossa olisi mukana jonkinlaista (teennäistä) reaaliaikaisuutta.

Dude [14.01.2008 18:26:15]

#

Hyvä idea. Mulle tuli mieleen tammiteko(seko)äly.

L2-K2 [14.01.2008 19:06:09]

#

Dude kirjoitti:

Hyvä idea. Mulle tuli mieleen tammiteko(seko)äly.

Tammessa on se vika, että se on jo pelinä ratkaistu. Virheetön peli johtaa aina tasapeliin.

Kray [14.01.2008 19:14:40]

#

L2-K2 kirjoitti:

Tammessa on se vika, että se on jo pelinä ratkaistu. Virheetön peli johtaa aina tasapeliin.

Totta. Oliko tekoälyn nimi chinook vai mikä...? Niin, siis se on matemaattisesti ratkaistu. Kannatan liigaa, ja mielellään eri sarjoja. Näin tehtäisiin niin, että esimerkiksi aina suhteutettuna osallistujamäärään parhaat siirrettäisiin vaikeampaan sarjaan. Profiileihin voisi tehdä oikein integroidut ominaisuudet "liigaa" varten, josta nähdään tulokset, ja tietysti "high scores".

Mobel [14.01.2008 19:47:24]

#

kray kirjoitti:

Profiileihin voisi tehdä oikein integroidut ominaisuudet "liigaa" varten, josta nähdään tulokset, ja tietysti "high scores".

Tästä kun lähtee kehittelemään, niin olisihan hienoa, jos profiilissa näkyisi jonkinlainen ranking-sijoitus(vrt. tenniksen ranking-tilasto) tj. ja esimerkiksi voitetut "palkintomerkit". Merkkejä saisi vaikkapa joka sarjan kolme parasta. Olen myös tuon sarjaidean kannalla ja etenkin tuo parhaiden siirto seuraavaan sarjaan kuulostaa hienolta.

Toteutuessaan tämä liigahan olisi melko omalaatuinen vivahde ohjelmointisivustojen keskuudessa. Osallistuisin mielelläni, mutta tekoälyjen koodailu on jäänyt melko vähälle. Tässähän olisi jollekin hyvä koodivinkin aihe. Jaa... nyt kun katsoin, niin onhan noita. Tosin periaatteet/pseudokoodi kiinnostaa(pieni opas?), mutta kaipa setä Google jälleen auttaa.

Pekka Karjalainen [15.01.2008 13:22:49]

#

<sivuraide>

Tammipelistä on käsittääkseni sen verran eri versioita maailmalla, että niitä kaikkia ei ole ratkaistu. Ei se silti ole kannatettava peli Putkaliigaan mielestäni, mutta esim. eurooppalainen (tai ns. kansainvälinen) 10 x 10 -laudalla pelattava versio taitaa olla vielä ratkeamatta. Chinook-ohjelmahan pelaa amerikkalaista 8 x 8 -tammea, jonka tila-avaruus on kuitenkin aika lailla pienempi näistä kahdesta.

Enkuksi Chinookista: http://www.cs.ualberta.ca/~chinook/

</sivuraide>

vehkis91 [28.01.2008 19:53:26]

#

Minä voisin liittyä, jos ei ole kovin vaikea aihe... Olen nimittäin vasta aloitteleva ohjelmoija...

Päärynämies [29.01.2008 00:53:02]

#

Itsekin voisin tuohon mukaan tulla, jos aikaa vain löytyy. Sopiva peli olisi mielestäni sellainen, jossa pelkällä raa'alla konetehoa hyödyntävällä algoritmilla pärjäisi jo hyvin. Pelkästään raa'alla laskennalla tuota ei siis pitäisi voida ratkaista, ainakaan missään järkevässä ajassa, vaan painottuisi yhä paremman ja "älykkäämmän" algoritmin kehittely.

ByteMan [29.01.2008 01:25:47]

#

jos katsoo noita päärynämiehen kriteereitä, niin väittäsin että kakuro(sudokun seuraaja) täyttää ne aika hyvin.
helpot ristikot saa läpi laskentateholla, mutta vaikeammissa tarvitaan jo aivan oikeaa algoritmia..
vertailukriteeriksi sopisi vaikka ratkaisuaika
en jaksa tähän sääntöjä selostaa, mutta Wikipedia auttaa

vehkis91 [29.01.2008 13:40:53]

#

tuo kuulostaa aika vaikealta....

Jäynis [29.01.2008 14:05:40]

#

Mahtava idea! Kannatan.

HellRazor [29.01.2008 18:34:26]

#

Itse kannatan Connect6 peliä. Olen kuitenkin luultavasti mukana vaikka peli olisi jokin muukin.

ZcMander [29.01.2008 19:12:00]

#

Juh, kannatan, pelinä Go, mutta wiki-sivun mukaan Connect6 taitaa olla melko lähellä tätä peliä ellei sama? En jaksanu lukea läpi ;(

Miksi nimenomaan pitäis joku tietty peli valita? Miksei peli voisi vaihtua esim. 6kk välein, koskaa mahtaa olla melko haastavaa saada inspistä yli 6kk (tai jopa 2kk) kestävään tekoäyyn.

Päärynämies [29.01.2008 20:42:15]

#

Niimpä. Peliä voisi vaihtaa tietyn väliajoin. Yhden pelin aikana järjestettäisiin vaikomäärä "koitoksia". Vaikkapa kolme kuukauden jaksolla olisi 6 koitosta, johon saisivat kaikki osallistua. Kaikkiin ei olisi tietenkään pakko osallistua, mutta pisteet luonnollisesti jäisivät saamatta. Pelkkä osallistuminenkin (vaikka olisitkin viimeinen ja tietysti pelin kannalta "järkevällä" tuotoksella) toisi kumminkin pisteitä.

Tietysti sitten, jos joku peli kiinnostaisi enemmänkin kuin sen määrätyn ajan, niin voitaisiin varsinaisesta liigasta erottaa kyseiselle pelille oma "alaliiga", jossa koitoksia olisi samaan tahtiin silti tai harvemmin, riippuen kiinnostuneiden määrästä ja mielipiteistä sopivasta ajanjaksosta.

jlaire [29.01.2008 20:47:46]

#

ZcMander kirjoitti:

Juh, kannatan, pelinä Go

Minusta tuollainen todella tunnettu peli olisi huono valinta, koska netistä löytyy jo vaikka kuinka paljon tietoa. Ja tekoälyn tasoon vaikuttaisi koodaustaidon lisäksi aika paljon myös se, kuinka hyvin sattuu tuntemaan kyseisen pelin ennestään.

Osallistuisin melko varmasti pelivalinnasta riippumatta, kunhan kielen saa valita vapaasti.

Mobel [29.01.2008 23:42:05]

#

Jos osakilpailuja olisi yhden pelin aikana kolme, voisi tästä ottaa kaksi parasta tulosta tekoälyä kohti, jolloin ei välttämättä jokaiseen osakilpailuun tarvitsisi osallistua. Samaa voisi soveltaa koko "kaudelle", jottei jokaiseen peliin olisi välttämätöntä osallistua. En tietenkään voi varmaksi sanoa, mutta harva täältäkään kerkeää kovin monelle eri pelille tekoälyjä ohjelmoimaan esim. puolessa vuodessa.

Toivottavasti asia lähtee etenemään!

A1A [02.02.2008 11:26:11]

#

Kannatan! Kunhan vaan ei vaadi liikaa tutustumista johonkin monimutkaseen peliin, ja sarjoilla tai muuten tehdään järkeväksi myös tekoälyn teoriaa tuntemattoman osallistuminen.

Harmittaa edelleen kun jätin lähettämättä ristinolla-tekoälyni keskeneräisenä...

Toisinsanoen: mua ei haittaa vaikka pelinä olis sama ristinolla ;)

Kray [02.02.2008 20:36:22]

#

funktio kirjoitti:

ZcMander kirjoitti:

Juh, kannatan, pelinä Go

Minusta tuollainen todella tunnettu peli olisi huono valinta, koska netistä löytyy jo vaikka kuinka paljon tietoa

Jos tekoälyn joka jopa pystyy laskemaan siirron järkevässä ajassa GO:hon, niin huhhuh. Go:hon ei nimittäin ole vielä yleensäkään minkäänlaisia täyden laudan tekoälyjä. Maximi taisi olla 8x8 lauta.

Pekka Karjalainen [02.02.2008 21:10:50]

#

Gohon on useita ohjelmia, jotka antavat aika visaisen vastuksen aloittelijalle täydellä laudalla. Joku 8x8-lautaa pienempi koko on ratkaistu ekshaustiivisella haulla, mutta sellainen menettely toimii vain pienille laudoille.

http://senseis.xmp.net/?GoPlayingPrograms

En nyt menisi sanomaan, ettei minkäänlaisia olisi. Kyllä ne aika huonosti tuntuvat pelaavan, mutta niinhän me useimmat :)

Päärynämies [08.02.2008 23:10:23]

#

Kai tätä hommaa jollain tasolla lähdetään toteuttamaan? Jos ei muuten, niin vaikka putkan ulkopuolella innokkaiden ohjelmointiharrastajien toimesta (jos vaikka putka kumminkin hieman sivutilaa vaikka lainaisi, jos ei muuten). Mielenkiintoinen ja kokeilemisen arvoinen idea. Vastaaviin en ole kauheasti törmännyt (en ole tosin kauheasti ohjelmointifoorumeilla pyörinyt, selittänee ainakin hieman) ja mielelläni lähtisin kokeilemaan. Vinkatkaa toki joku, jos jotain vastaanvanlaisia hyvin toteutettuja on olemassa, voisin katsastaa.

Eikun valitsemaan henkilö(it)ä koordinoimaan hommaa ja homma käyntiin.

Vasta_alkaja [11.02.2008 15:09:05]

#

Sudokuhan olisi tarpeeksi haastava, mutta logiikaltaan ei niin monimutkainen

L2-K2 [11.02.2008 17:27:28]

#

Vasta_alkaja kirjoitti:

Sudokuhan olisi tarpeeksi haastava, mutta logiikaltaan ei niin monimutkainen

Sudokuun on jo olemassa valmiita ratkaisijoita (sekä ihmismäisiä logiikalla että näitä nopeampia brute-forceja). Lyhimmät (täyden toiminnallisuuden) brute-force-toteutukset ovat alle neljä riviä (@80 merkkiä) C:tä.

Seriffi [11.02.2008 17:51:58]

#

Jees, putkaliiga pystyyn ja koodeja kehiin!

Mieluiten vähän tuntemattomampaa peliä, ettei algoritmi löytyisi googlen ensimmäiseltä sivulta.

HellRazor [12.02.2008 14:02:04]

#

funktio kirjoitti:

ZcMander kirjoitti:

Juh, kannatan, pelinä Go

Minusta tuollainen todella tunnettu peli olisi huono valinta, koska netistä löytyy jo vaikka kuinka paljon tietoa. Ja tekoälyn tasoon vaikuttaisi koodaustaidon lisäksi aika paljon myös se, kuinka hyvin sattuu tuntemaan kyseisen pelin ennestään.

Siksi ainakin minä olisin Connect6 pelin kannalla. Jos olen oikein ymmärtänyt Connect6 on jonkin verran yksinkertaisempi ja hyvin lähellä ristinollaa. Käsittääkseni Go pelissä voi syödä nappuloita jollakin hieman omituisella tavalla toisin kuin Connect6 pelissä(?). Koska Connect6 peli on yksinkertaisempi, henkilön aiempi pelikokemus ei ole aivan niin merkittävää.

User137 [12.02.2008 14:19:47]

#

Vasta_alkaja kirjoitti:

Sudokuhan olisi tarpeeksi haastava, mutta logiikaltaan ei niin monimutkainen

Itseasiassa tein jo kauan sitten sudoku algoritmin joka ratkaisee minkä tahansa (25x25 ristikoihin asti) tai jopa luo kokonaan uuden sudoku ristikon sekunnin pienessä murtoosassa :)

Itse ehkä ehdottaisin pelin suunnittelemista ja tekemistä kisaa varten johon sitten olisi tarkoitus tehdä tekoäly.

Kray [12.02.2008 16:29:26]

#

Päärynämies kirjoitti:

Kai tätä hommaa jollain tasolla lähdetään toteuttamaan? Jos ei muuten, niin vaikka putkan ulkopuolella innokkaiden ohjelmointiharrastajien toimesta (jos vaikka putka kumminkin hieman sivutilaa vaikka lainaisi, jos ei muuten). Mielenkiintoinen ja kokeilemisen arvoinen idea. Vastaaviin en ole kauheasti törmännyt (en ole tosin kauheasti ohjelmointifoorumeilla pyörinyt, selittänee ainakin hieman) ja mielelläni lähtisin kokeilemaan. Vinkatkaa toki joku, jos jotain vastaanvanlaisia hyvin toteutettuja on olemassa, voisin katsastaa.

Eikun valitsemaan henkilö(it)ä koordinoimaan hommaa ja homma käyntiin.

Minulla on jonkinlaisia taitoja php:stä ja html:stä, eli voisin aivan hyvin osallistua näihin sivustopuolen asioihin. C/C++ olen ainakin omasta mielestäni varsin osaava, tosin tälläisessä asiassa en vielä erityisemmin ole ollut tekemisissä. Eli minä olisin vapaaehtoinen :).


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta