Permalänk
Medlem

Programmeringstävling?

Satt och tänkte tillbaks lite och hittade den gamla programmeringstävlingen i Februari -07 och kom fram till att det var väldigt intressant. Båda försöken som gjordes då dog ganska fort, vilket var synd. Finns det något intresse för en liknande tävling nu?

Permalänk
Medlem

Det skulle vara superkul men vad för sorts tävling ska man egentligen ha?
Något liknande den förra med en bot som spelar ett spel eller ja, vad mer kan man göra?

Visa signatur

I'm Winston Wolfe. I solve problems.

Permalänk
Medlem
Permalänk
Medlem

Re: Programmeringstävling?

Citat:

Ursprungligen inskrivet av You
Finns det något intresse för en liknande tävling nu?

Intresse? ja, kanske. Idé? nej, tyvärr.

Känner dock ej för någon jultävling.

Permalänk
Medlem

Hittar man något liknande http://en.wikipedia.org/wiki/Robocode fast som är gjort för flera programspråk så skulle det vara grymt. (Personligen så tycker jag att Java skulle vara skitbra men det är säkert svårt att få tillräckligt med folk)

Visa signatur

I'm Winston Wolfe. I solve problems.

Permalänk

Använde robocode någon gång och tycker det skulle vara grymt för det här! Nån måste ju ha en server som vi kör emot så kör vi en turnering? Jag är på!

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av matti4s
Hittar man något liknande http://en.wikipedia.org/wiki/Robocode fast som är gjort för flera programspråk så skulle det vara grymt. (Personligen så tycker jag att Java skulle vara skitbra men det är säkert svårt att få tillräckligt med folk)

http://realtimebattle.sourceforge.net/
Funkar med i stort sett alla språk! Dock är jag lite tveksam till om det funkar som en tävling här, frågan är om det inte är lite stort o komplicerat att bygga en robot som göra något vettigt. Iaf verkar det vara en del options att ta hänsyn till, men jag kanske har fel, har bara tagit en snabbkoll på sidan. Råkade hitta den när jag sökte efter en helt annan grej i ubuntu-hjälpen lustigt nog.

I vilket fall tycker jag att en lämplig storlek/komplexitet på vad det nu blir för uppgift inte är större än att källkoden kan klippas in direkt i ett inlägg, dvs ~1 sida med kod.

Permalänk
Medlem

Tror de flesta tävlingar lätt blir för omfattande för att locka många tävlande.
Så vad det än blir måste det finnas tydliga ramar och en ytterst begränsad uppgift.

Sen hjälper det alltid att ha möjlighet att bedöma resultatet någorlunda objektivt. T.ex. snabbast exekvering, minst antal rader etc.

Tycker t.ex. bottar som kan spela spel mot varandra är kul och bra om man gör det rätt. Kan man eliminera massor runt omkring (T.ex. nätverksprogrammering) blir det ännu mera rimligt.

Ett enkelt protokoll kan gå ut på att via t.ex. stdin få en spelplan och vilken spelare man är och via stdout så svarar man vilket drag man vill göra. En enkel klient behöver då bara läsa input, göra ett drag och skriva ut det. En mer avancerad kan bygga upp ett internt tillstånd och hålla reda på spelet över tiden.

Sedan har man ett spelledarprogram som tar två bottar och kör en spelomgång. Om protokollet tydligt säger vad bottarna skall göra om de inte kan göra drag etc så kan spelledarprogrammet antagligen enkelt avgöra en vinnare.

Exempel på "färdiga" spel som skulle kunna lämpa sig för sådant:
- Othello
- Fyra i rad
- Sänka skepp
- Kalaha

Fördelen är att vi då har färdiga regler, endast IO i form av att parsa text samt enkla spel med spelplaner som är lätta att hålla rätt på. Man kan dessutom fritt välja språk. Nackdelen är förstås att det måste specas ett visst OS eftersom spelledarprogrammet måste köras på något.

Visa signatur

Crap.

Permalänk
Medlem

Tar en annan klassiker från mitt förflutna: raytracing.

Specen kan då bara hålla reda på hur en scenbeskrivningsfil skall se ut, vi kan lätt begränsa vad som kan rendreras (t.ex. bara sfärer och enkla punktformade ljuskällor). Att spara bild kan vara bra, men bara för att kunna se resultatet - det behöver inte vara med i tävlingsmomentet.

Sedan kan man tävla i att snabbast rendrera en viss bild som spelledningen har, men kanske även i fristyleklass där man får möjlighet att imponera med effekter och annat.

Visa signatur

Crap.

Permalänk
Medlem

Det känns som om bottar har vi gjort förut.

Mitt förslag är därför följande:

Vi gör det till en öppen klass, inga begränsningar angående språk, plattform, storlek och prestanda. En liten tävling där alla är välkomna. Om man använder en liten udda plattform kan man alltid komplettera med en video på bidraget.

Ett litet enkelt Julspel är det som gäller!
Där alla bidrag skall vara till klara innan Julen.
Alla bidrag skall vara öppen källkod, med undantaget att man inte får ta kod från andras bidrag, utan tillstånd, till sitt eget bidrag.

Blir intresset stort inför vi flera vinstkategorier , t.ex. mest underhållande spel, bästa tekniska spel, mest nytänkande spel, bästa bild, bästa ljud o.s.v. Det innebär att även ljud/bild kunniga får vara med och tävla.

Vinnaren utses demokratiskt av etablissemanget.

Låt tävlingen börja?

Visa signatur

citera!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Dosshell
Det känns som om bottar har vi gjort förut.

...och speltävlingar finns det också gott om.

Det beror på vad man vill att tävlingen ska handla om; ska man göra ett spel kommer en stor del av tävlingen ligga i att ha en bra spelidé, om man gör en bot kommer det ligga i att kunna skriva en bra AI. Personligen tycker jag att det senare är mycket mer intressant.

Permalänk
Medlem

Precis, du har helt rätt att det finns gott om speltävlingar, därför att dessa fungerar. Precis som du själv skriver har det gjorts försök tidigare men dessa har dött av flera liknande anledningar och det finns inget som säger att detta inte kommer göra det nu också.
Är det inte dags att lära sig av gamla misstag?

Sedan skriver du att det är spelidén som skulle vara avgörande vilket inte stämmer om vi har flera vinstkategorier. Dessutom skulle det vara kul för även icke deltagare att få spela lite julspel (hade hoppats på SC gubben som jultomte). Men nu verkar det som att vi kommer att diskutera det här ända fram till Jul(tm).

Är jag ensam om att tycka så här? Vill ni andra göra ett bot försök till?

Visa signatur

citera!

Permalänk
Medlem

Läste igenom tråden och mindes ett av mina gamla projekt. Tanken var att man hade en server och ett antal klienter som kände till ett antal spel som var definierade i form av dll-filer som innehöll lite textprotokoll. Sen kopplade man till en körbar fil som kommunicerade genom vanlig stdio genom att först läsa av ett drag sen svara med ett eget osv. Tanken var att göra en enkel plattform så vilken "hello world!" person som helst skulle kunna skapa en enkel AI till olika spel.(Att testa sin AI var också simpelt då det bara var att starta programmet och skriva in sina drag)

Fungerade hjälpligt, men det var skrivet i C#(plattformsberoende) och koden såg lite tafflig ut(learning by doing ). Kanske dags att damma av det gamla projektet igen? Skulle förenkla ganska mycket för bottävlingar iaf.

Låter det vettigt, eller mumlar jag bara i nattmössan som vanligt?

Problemet med speltävlingar är att det tråkigt nog är ett ganska stort projekt. Många påbörjar något som de inte har en chans att avsluta. När det gäller AI till enkla spel så är det rent logiskt tänkande som gäller, och med en enkel plattform att arbeta med så har man nästan resultat innan man börjat

Permalänk
Medlem

Vet att Matricks ordnade 3 helt okej (och lyckade) tävlingar för ganska länge sen. Alla tre var ganska okej uppgifter även om nummer 2 och 3 var lite för kämpiga för mig att lösa i c++ då. (2004 ser det ut att ha varit)

tävlign 1 den skrev jag nog ett bidrag till men skickade aldrig in.
Veckans problem nr2 - 1bit bitmap to vector
Veckansproblem Nr.3 - "No turn point"

Permalänk
Medlem

Programmerings tävlingsserie.

Gör en programmeringstävlings-serie där tävlingsdeltagandet är öppet för egna förslag.

Sen kan delar från alla bidrag användas som OpenSource för kommande tävlingar. På så sätt slipper man orimligt svåra uppgifter och redan lösta problem kan återanvändas. SweClockers kan stå för server plats tycker jag.

När väl ett litet bibliotek av smådelar är skapat kan tävlingarna bli mer avancerade också, ifall några så önskar.

Exempel:
Man får in tävlingsbidrag på ett litet modulprogram som skickar små meddelanden mellan datorer/över internet.
Ett tävlingsbidrag är ett litet enkelt windows spel typ minröj.
Ett annat är ett litet ljudprogram som spelar upp ljud från bokstäverna som noter i en textfil (c,d,e,f,g,a,b).

När tävlingstiden går ut bedömmer en panel/forumdeltagare vilket bidrag som vinner/var mest användbart/tuffast genom en enkel poll.

Alla bidrag sparas som ett litet bibliotek med OpenSource som andra användare kan använda som utgångspunkt för kommande tävlingar.

Exempel 2:
3 olika bidrag har använt föregående tävlingsbidrag och kombinerat dem för ett boardgame liknande spel (Archon clone?) över internet mot andra spelare, med ljudeffekter! Utan att det blivit för svårt eller komplicerat.

-----

Även om bidragen är vilt varierande och ställs mot varandra kan ett väldigt litet enkelt program vinna över mer komplicerade om de är smarta lösningar.
Man får även bonuspoäng ifall sourcen man släpper är mycket användbar för andra användare i kommande tävlingar.

Tävlingarna kan vara helt öppna också där bidrag kan komma in närsomhelst under tävlingstiden. De bidrag som kommer in efter tävlingstidens slut kommer med i nästa tävling automagiskt.

En liten Hall of Fame över bidragsgivare där poäng ges beroende på positioner i föregående tävlingar vore också lite roligt som överkurs.

-----

När man hållit tävlingar i några år kommer biblioteket vara rätt imponerande, med betygsättning hur bra varje del varit samt förbättringar som användare gjort över tiden med nya versioner. En riktig inspirationskälla och ett fantastiskt verktyg för vidareutveckling. Man kan även begränsa tävlingar till specifika OS/platformar för att göra det lite enklare, tex Android System.

Visa signatur

"Obi-Wan: Luke, you will find that many of the truths we cling to depend greatly on our own point of view."
— Return of the Jedi
So help spread Dogecoin Many world. Such address: D6wTiKAD9hbVcgRgML687jvj2KiqAbiaUR
So good Much deed! ( Currently: Very few DOGEcoins donated ) even few deeds can be good!

Permalänk

Som ovan talare tyckare jag att vi ska hålla det öppet för att komma in med egna förslag som vi sen kan använda i en tävling! Annars kommer vi aldrig komma till skott :/ Tycker dock att vi borde ha lite grundregler som att funktionerna måste kunna anropas från olika språk etc så att vi vidgar antalet medlemmar som kan delta!

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Konkret förslag: Ascii-art program

Kan i sitt enklaste utförande handla om att göra en direkt mappning av pixelintensiteter till en ascii-skala, typ nått sånt här (pseudokod):

foreach(y in bitmap.rows) { foreach(x in bitmap.cols) { string ramp = "wgti;:-,. " int index = (ramp.length - 1) * (bitmap[x,y] / 255); addToText(ramp[index]); } addToText(newLine); }

Lägger man mer tid på det borde man kunna få riktigt bra resultat. Själva tävlingsmomentet kan gå ut på att köra programmen på tre hemliga bilder och så får man rösta om vilken lösning som ger bäst resultat.

Visa signatur

www.filipsprogram.tk - lite freeware
"Delight, herregud. Talang är bara förnamnet."

Permalänk
Citat:

Ursprungligen inskrivet av Delight
Konkret förslag: Ascii-art program

Bäst hittills!
Inte skitsvårt att sätta sig in i och en massa olika sätt att lösa det på.
Dessutom platformsoberoende.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Delight
Konkret förslag: Ascii-art program

Väldigt intressant förslag... filade lite på en idé men det får nog vänta till efter mina tentor

Permalänk
Medlem

Håller med, ett utmärkt förslag. Någon (delight? you?) kanske skulle skapa en ny tråd med det i första inlägget för att göra det tydligt?

Permalänk

Jag kan ta tag i att försöka få in lite bidrag Skapar en tråd så försöker vi driva detta, sen skapar vi även en omröstning när deadlinen har gått ut. Detta sker den 17:de januari, så börja skriv nu!

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase