Programming Contest Nieuwe Stijl: Contest 4 *Score-update* Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 11 ... 16 Laatste
Acties:
  • 100.711 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 12-09 21:17

Dricus

ils sont fous, ces tweakers

Ik ben helaas niet verder gekomen dan een eerste opzet van het laden van de files en de datastructuren. Aan een solver ben ik helaas geheel niet toegekomen. Volgende keer lukt het me hopelijk beter om tijd vrij te maken voor de contest. In ieder geval hebben we dan veel minder last van feestdagen en dergelijke :).

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 01:30
Ik ben helaas ook niet verder gekomen dan een FirstMove en BestMove AI. Nu nog maar een methode maken die speelveld en kolommen.txt checkt op de regels uit de startpost, dan is ie in iedergeval nog robuust.

En misschien mijn code (beter) documenteren.

In ieder geval een voordeel voor degene die de inzendingen test: mijn programma is zo klaar.

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Ik heb voor vanavond en morgen andere plannen. Ik heb mijn spel zojuist maar al verzonden :)

Succes!

Acties:
  • 0 Henk 'm!

Verwijderd

Niets over deze contest, maar als de modjes een onderwerp voor de volgende nodig hebben, ik bedacht me zonet iets leuks. :)

Acties:
  • 0 Henk 'm!

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 01:30
Mijn inzending is de deur uit. Vanavond toch nog even een randomAI in elkaar gebokst die het kwartier volmaakt. Niet dat hij echt hoog scoort, maar je weet maar nooit.

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 05-09 23:19
Ook ingestuurd. Succes alle mededingers en jury!

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Hm, het lijkt erop dat ik zowat naar een last-minute toe aan het werken ben. 'De bug' moet er namelijk nog uit. Er is namelijk maar 1 ding wat er mis loopt: de velden herstellen. Dus de mijne blijft nu het speelveld verbouwen totdat er iets kan, in plaats van verbouwen, en als het niet kan terugzetten, dan weer verbouwen etc.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Bah, ik heb de afgelopen paar dagen helemaal geen tijd gehad en ik denk dat ik er vanavond ook weinig aan kan doen :/

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

.oisyn schreef op zondag 11 januari 2009 @ 14:56:
Bah, ik heb de afgelopen paar dagen helemaal geen tijd gehad en ik denk dat ik er vanavond ook weinig aan kan doen :/
Ik heb eigenlijk hetzelfde excuus om niks in te leveren, maar heb natuurlijk niet dit hele draadje door lopen strooien met indrukwekkende highscores. :+

Aangezien mijn programma nog geen zetten terug kan nemen, en nog te traag is om vooruit te kunnen kijken in een wat groter veld, twijfel ik of ik het wel moet inzenden. Het zou me namelijk niet verbazen dat het na 500 zetten opeens einde verhaal is. En da's niet goed voor mijn ego. :>

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
zwippie schreef op zondag 11 januari 2009 @ 16:49:
[...]

Ik heb eigenlijk hetzelfde excuus om niks in te leveren, maar heb natuurlijk niet dit hele draadje door lopen strooien met indrukwekkende highscores. :+

Aangezien mijn programma nog geen zetten terug kan nemen, en nog te traag is om vooruit te kunnen kijken in een wat groter veld, twijfel ik of ik het wel moet inzenden. Het zou me namelijk niet verbazen dat het na 500 zetten opeens einde verhaal is. En da's niet goed voor mijn ego. :>
Ik heb toch ook ingezonden 8)7

Wat een flauwe reacties allemaal, zijn jullie bang voor gezichtsverlies?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Sorry maar waar zeg ik precies dat ik niets inlever?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Was niet echt helemaal serieus bedoelt hoor. ;)

Ik ga er zo een mooi pakketje van maken. :)

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

Verwijderd

Mijn inzending is inmiddels ook onderweg..
kwam goed uit dat de deadline was verplaatst anders was ik te laat geweest :'(

Edit:
kreeg net een mailtje terug dat de mail niet kon worden geleverd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
This is the mail system at host adonis.tweakers.net.
 
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
 
For further assistance, please send mail to postmaster.
 
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
 
                   The mail system
 
<*snip*> (expanded from <prgmods apadinegesenzo tweakers een punt hier en dan nog net>): host
    gmail-smtp-in.l.google.com[209.85.219.187] said: 552-5.7.0 Our system
    detected an illegal attachment on your message. 552-5.7.0 Please visit
    http://mail.google.com/support/bin/answer.py?answer=6590 552 5.7.0 to
    review our attachment guidelines. 12si53825294ewy.54 (in reply to end of
    DATA command)


En ik had het nog zo in een zipje gestopt...

[ Voor 82% gewijzigd door Creepy op 11-01-2009 20:21 . Reden: ff ontdaan van mailadressen voor spyders e.d. ;) ]


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 09:08

Sebazzz

3dp

http://mail.google.com/support/bin/answer.py?answer=6590

Je kan tegenwoordig via GMail geen .exe's meer verzenden of zips met die erin. Wat je het beste kan doen is 7-zippen met een wachtwoord erop, of zippen en dan de extensie van het ingepakte programma én het archief wijzigen. Dat doet Google helemaal om jouw te beschermen. Helaas wordt ik ook beschermd :(

[ Voor 13% gewijzigd door Sebazzz op 11-01-2009 17:40 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Don't worry, prgmods gaat naar elke PRG mod. Bovenstaand e-mail account is die van Janoz, dus hij is de enige die het mailtje dan niet ontvangt :)

Maar behalve op een ingewikkelde manier compressen met wachtwoorden e.d. kun je natuurlijk ook gewoon even de .exe in de zip renamen naar .exe.googlesucks oid ;)

[ Voor 36% gewijzigd door .oisyn op 11-01-2009 17:44 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Of in een rar stoppen :P Deze wordt blijkbaar niet gescanned.

Acties:
  • 0 Henk 'm!

Verwijderd

Had ik nog aan gedacht, maar koos toch voor zip omdat dat meer gebruikt wordt 8)7. Maar aangezien alleen Janoz m'n mail dus niet krijgt hoef ik hem niet nog opnieuw te versturen, toch?

Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 12-09 02:47

bomberboy

BOEM!

Ziezo

ook mijn oplossing is intussen doorgemaild. momenteel met scores rond de 53miljoen voor de officiële testset op mijn laptopje met een T7700@2.4Ghz. Niet de hoogst gemelde score tot nu toe, maar we zien wel waar we uiteindelijk uitkomen :)

De latste week nog mijn efforts gejoined met een collega (neonlamp). Eerst waren we tegen elkaar aan het opboksen, maar onze code bleek redelijk aanvullend en zeer goed te mergen (en zo beter te presteren!)

veel succes iedereen

Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
Ai ai, ik hoop dat ik jullie bij kan blijven. (ik had waarschijnlijk liever gehad dat jullie apart wat ingeleverd hadden)

Ik heb ook mijn inzending ingestuurd. Als laatste nog wat code toegevoegd voor het geval dat moves doodlopen. Op de standaard testset had ik nu gemiddeldd 54.6 miljoen punten (met pieken boven de 55!). Op de set van BalusC ongeveer 12 miljoen punten.

Trwns, ik heb mijn nick veranderd. Pete is dus phsmit van eerder in dit topic.


Ik krijg een error van een emailadres @themindlab.com . Ik ga er vanuit dat het wel aangekomen is!

[ Voor 68% gewijzigd door Pete op 11-01-2009 19:55 ]

petersmit.eu


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 12-09 19:26
Ik heb dit weekend nog geprobeerd nog iets werkends te krijgen, maar die paar uur is simpelweg te weinig. Helaas alweer geen inzending van mij dus... :|

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 09:18

Creepy

Tactical Espionage Splatterer

(jarig!)
.knop: je inzending is ontvangen hoor :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • TweakPino
  • Registratie: September 2005
  • Laatst online: 01:13
Zo, mijn inzending is ook verstuurd. Winnen zal er niet inzitten, "slechts" 41M na 15 minuten op mijn Pentium M 1,4GHz. Helaas heb ik geen tijd meer gehad om mijn inzending multi-threaded te maken. Niet dat dat heel veel zou uitmaken, na een run van 30 minuten is de score ongeveer 45M. Bij de volgende contest zal ik toch harder moeten nadenken over mijn "AI", de al genoemde >50M scores zal ik zo nooit halen :9

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zondag 11 januari 2009 @ 18:22:
Had ik nog aan gedacht, maar koos toch voor zip omdat dat meer gebruikt wordt 8)7. Maar aangezien alleen Janoz m'n mail dus niet krijgt hoef ik hem niet nog opnieuw te versturen, toch?
Ik kan ontvangst bevestigen ;)

/spuit 11 :P

Overigens vind ik de steekpenningen tot op heden maar karig; daar kom ik m'n bed nog niet voor uit :P Dus we verwachten wel wat meer ;)

[ Voor 18% gewijzigd door RobIII op 11-01-2009 20:37 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 12-09 02:47

bomberboy

BOEM!

Pete schreef op zondag 11 januari 2009 @ 19:42:
Ai ai, ik hoop dat ik jullie bij kan blijven. (ik had waarschijnlijk liever gehad dat jullie apart wat ingeleverd hadden)

Ik heb ook mijn inzending ingestuurd. Als laatste nog wat code toegevoegd voor het geval dat moves doodlopen. Op de standaard testset had ik nu gemiddeldd 54.6 miljoen punten (met pieken boven de 55!). Op de set van BalusC ongeveer 12 miljoen punten.
Met zo'n scores denk ik niet dat we concurrentie vormen. Al hangt veel af van de uiteindelijke testset natuurlijk.
Ik kijk in ieder geval uit naar de uitslag :)

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 05-09 23:19
Wat ik wel grappig vind is dat er blijkbaar bepaalde drempels in de score zitten. Ergens ronde de 23m, rond de 40m en net boven de 52m. Tenminste, de meeste scores heb ik daar wel gezien, of is dat mijn menselijke patroonherkenning die doorschiet?

53m en 55m is trouwens wel erg indrukwekkend! Ik moet mijn verwachting iets temperen, op mijn originele hardware blijkt dat ik ondanks alle optimalizaties niet heel veel verder ben gekomen dan ik al was, op de X2 4600+ bleef ik steken op iets boven de 50m.

Ik ben heel benieuwd, toch aardig wat inzendingen tot nu toe!

Acties:
  • 0 Henk 'm!

  • veldsla
  • Registratie: April 2000
  • Laatst online: 12-09 14:18
Mijne is ook weg

Single threaded. Nu zelfs minder dan 40M punten op een X2 4400+, maar geen memory leaks meer en een ervaring rijker :)

Misschien gebruik ik de code nog wel om een keertje pthreads te leren.

Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Zo, de mijne is ook de deur uit.

Ik verwacht er niet veel van. Er zitten denk ik toch nog een paar bugs in, en wegens gebrek aan 'raw speed' heb ik de lookAhead maar helemaal uitgezet... Heerlijk toch, dat klagen over tijdgebrek. 8)7

Ik vond het wel leuk verzonnen deze keer. Niet te moeilijk, niet te makkelijk. Ik denk dat iedereen aardig snel een basis implementatie klaar had die de eerste of de beste move kon doen. Daarna is het zoeken naar slimmigheden om het veel en veel sneller te krijgen zodat je vooruit kan gaan kijken.
En dan krijg je op de eerste testset inderdaad de scores die DaCoTa noemt.

Misschien heb ik toch ook iets teveel met steeds diezelfde testset zitten spelen. Bij de testset van bolukan en de 50x50 set van balus_c kwam ik toch opeens bugs tegen, of bleek ik al snel op een dood spoor te komen.

Ik ben benieuwd wiens programma uiteindelijk het meest robuust is op nog meer verschillende sets. :)

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
RobIII schreef op zondag 11 januari 2009 @ 20:36:
[...]

Ik kan ontvangst bevestigen ;)

/spuit 11 :P

Overigens vind ik de steekpenningen tot op heden maar karig; daar kom ik m'n bed nog niet voor uit :P Dus we verwachten wel wat meer ;)
Kun je die van mij ook bevestigen?

petersmit.eu


Acties:
  • 0 Henk 'm!

Verwijderd

NMe schreef op dinsdag 28 oktober 2008 @ 23:44:
[...]

Ondanks dat het wat lang heeft geduurd tussen contest 3 en 4 was het niet de bedoeling om hier maar een jaarlijks event van te maken. :+ Contest 5 zou rond februari/maart van start moeten kunnen gaan. :)

[...]

De deadline is op 2 januari, niet februari. :)

Overigens ga ik, als ik wat tijd vrij kan maken, ook zelf wat proberen in elkaar te knutselen. Eens zien hoe ik opmeet tegen jullie allemaal; ik ga vast mateloos af. :D
Hoe is het nu met de deadline?

Acties:
  • 0 Henk 'm!

  • compufreak88
  • Registratie: November 2001
  • Laatst online: 02-05 17:51
Ik krijg bij .oisyns validator steeds de melding invalid move parameter, maar ik heb geen flauw idee waar hij vandaan komt.

Maar ik krijg ook een aantal invalid moves, dus ik ben bang dat die van mij geen geldige output gaat geven. Ik denk wel dat ik hem nog ga opsturen.

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Volgens de startpost is de deadline over een krappe 2 uurtjes. Dat houd in dat ik nog heel erg snel even wat optimalisaties in mn code van al bijna 2 maanden oud ga duwen om m in ieder geval het kwartier vol te krijgen. Althans, dat probeer ik dan... Even snel on-the-fly een constante aanpassen aan de snelheid van de computer (die constante waardeer ik dus op naar een variabele). K ben benieuwd of het lukt... Ook eens zien of ik de CLI er ook nog aan kan krijgen ipv een logge VCL.

@compufreak88: Die melding kreeg ik toen ik muren wou verplaatsen...

[ Voor 6% gewijzigd door dcm360 op 11-01-2009 22:06 ]


Acties:
  • 0 Henk 'm!

  • compufreak88
  • Registratie: November 2001
  • Laatst online: 02-05 17:51
@dcm360: Hij geeft dat bij zo'n beetje elke move weer. Dus ik denk dat er wat anders aan de hand is.

Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

compufreak88 schreef op zondag 11 januari 2009 @ 22:04:
Ik krijg bij .oisyns validator steeds de melding invalid move parameter, maar ik heb geen flauw idee waar hij vandaan komt.

Maar ik krijg ook een aantal invalid moves, dus ik ben bang dat die van mij geen geldige output gaat geven. Ik denk wel dat ik hem nog ga opsturen.
Per ongeluk engelse windrichtingen gebruikt? NESW ipv NOZW?

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat zou een syntax error opleveren, geen invalid move.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verdomme, zit ik m'n code submitbaar te maken, zit er ineens een bug in de output code. Als ik deze niet binnen een half uur fix heb ik compleet niets aan m'n entry :(

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Zo, mn probeersel is nu ook losgelaten. (Maar wees gerust, hij bijt als het goed is niet ;))

In de laatste minuten heb ik er nog snel een controle in weten te bouwen die de tijd en de 100.000 zetten vol probeert te krijgen, dus het zou nog wel een beetje mee moeten komen met de andere inzendingen. Er zit ook nog een klein probleempje in dat optreed op processors met een kloksnelheid een eindje lager dan de 1GHz, maar dat lijkt mij niet echt een groot probleem.

Op naar de uitslag! (hoeft niet direct, maar ik kijk er wel naar uit)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

En dat was de deadline :(
Nou ja, ik probeer de bug er nog uit te halen en dan post ik 'm hier wel, en dan doe ik maar voor spek en bonen mee.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Ik heb m'n multithreading moeten schrappen om nog iets in te kunnen leveren, maarja, dat krijg je als je er geen tijd meer insteekt tot +/- 4 uur voor inlever datum :+

Ik kreeg trouwens ook een shitload aan problem-messages terug, als ik het nog een keer moet inpakken als 7z ofzo moeten jullie dat even laten horen (en ik 7z instaleren)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
.oisyn schreef op maandag 12 januari 2009 @ 00:02:
En dat was de deadline :(
Nou ja, ik probeer de bug er nog uit te halen en dan post ik 'm hier wel, en dan doe ik maar voor spek en bonen mee.
En je had geen oudere versie om op te sturen? Mijn laatste versie was ook niet veel waard, maar mijn voorlaatste was wel geschikt, niet dat ie een topscoorder gaat worden, maar hij werkt prima. En voor iemand met mijn programmeerervaring vind ik dat al heel wat :)

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
.oisyn schreef op maandag 12 januari 2009 @ 00:02:
En dat was de deadline :(
Nou ja, ik probeer de bug er nog uit te halen en dan post ik 'm hier wel, en dan doe ik maar voor spek en bonen mee.
Als je het alsnog opstuurt runnen we hem wel voor spek en bonen, krijg je er gewoon een vermelding bij dat je te laat hebt ingeleverd. Er valt toch niks te winnen ofzo. :+

21 inzendingen trouwens, netjes! :o

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

@DirkW: Jawel, maar die was kut :P. Dat was er nog een van een score van voordat we de 50M grens passeerden.

Maar sinds ik m'n algoritme drastisch had gewijzigd had ik geen score output meer. Dat komt omdat m'n vorige algoritme puur recursief zocht, en uiteindelijk een move koos. Oftewel, alle moves van voor m'n huidige zoekpositie stonden vast (tenzij er gebacktracked moest worden). Maar mijn aanpassing was dat ik meerdere branches bij ging houden, en steeds verder ging met de beste branches. Daardoor was er geen vaste serie moves die al gedaan waren, en kon ik in feite pas aan het eind de daadwerkelijke serie moves bepalen. Die logic had ik echter nooit ingebouwd en daar was ik vanavond dus mee bezig.

Maar ja, 't is verder m'n eigen schuld, 't is niet dat we niet voldoende tijd hebben gehad :). Ik had alleen gerekend op het feit dat ik deze week nog wel wat tijd zou hebben, maar dat liep allemaal wat anders dan gepland.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:53

crisp

Devver

Pixelated

Hier een random UI om U allen mee te vermaeken: http://therealcrisp.xs4all.nl/bejeweled/ :P

Serverside is niet meer dan:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function map_split($row)
{
    return array_map('intval', str_split($row));
}

$field = array_map(
    'map_split',
    preg_split(
        '/[\r\n]+/',
        file_get_contents('./speelveld.txt'),
        -1,
        PREG_SPLIT_NO_EMPTY
    )
);
echo 'var playfield=' . json_encode($field) . ";\n";

$jewels = array_map(
    'map_split',
    preg_split(
        '/[\r\n]+/',
        file_get_contents('./kolommen.txt'),
        -1,
        PREG_SPLIT_NO_EMPTY
    )
);
echo 'var jewelorder=' . json_encode($jewels) . ";\n";
;)

[ Voor 74% gewijzigd door crisp op 12-01-2009 00:47 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

.oisyn schreef op maandag 12 januari 2009 @ 00:30:
[...]
zoekpositie stonden vast (tenzij er gebacktracked moest worden). Maar mijn aanpassing was dat ik meerdere branches bij ging houden, en steeds verder ging met de beste branches. Daardoor was er geen vaste serie moves die al gedaan waren, en kon ik in feite pas aan het eind de daadwerkelijke serie moves bepalen. Die logic had ik echter nooit ingebouwd en daar was ik vanavond dus mee bezig.
[...]
haha, dat heb ik dus ook vanavond zitten schrijven :D
Het is ten koste gegaan van documentatie en code robuustheid, daar heb ik echt heel weinig aandacht aan besteed..

Ik heb het probleem van de moves kunnen omzeilen door in elk field een array met moves bij te houden sinds de laatste flush naar de output, op die manier hoef ik geen enorme arrays te kopieren en heb ik toch een soort van move-history :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

De mijne stamt zelfs nog van 15 november als ik me niet vergis...
Ik heb nog wel backups van eerder, alleen dit was de eerste die echt werkt De tweede versie is volledig op de eerste gebouwd, maar geeft in het gunstigste geval Acces Violations en als je het wat minder treft een blauw scherm. Deze week was ik ook nog aan een derde begonnen, maar heowel die kwa snelheid veelbelovend was zaten er enkele vervelende geheugenfouten in. Zo zou het geheugngebruik op de testset aan het begin 90MB moeten zijn en aan het einde tussen 2 en 3 keer zoveel. 2 keer zoveel was het minimum om goed te kunnen werken. maar dat ding bleef vanaf het begin netjes op de 90MB steken. Dus ik heb de eerste nog even snel ergens op de laptop weten te vinden en die een klein beetje aangepast zodat het in te leveren was...

Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 05-09 23:19
Voor de liefhebbers: mijn source. Heeft GNU Trove nodig als lib.

Met mijn begeleidend schrijven, heb geen zin om het nog een keer op te typen :)
Mijn gekozen algoritme is vrij eenvoudig, gemaakt met een producer/consumer patroon. Alle mogelijk zetten vinden, deze allemaal doorrekenen en alle nieuwe velden testen op een aantal criteria, waarvan verrweg de belangrijkste is, is dat de score van het nieuwe veld in ieder geval hoger moet zijn dan het huidige veld. Oftewel, onder normale omstandigheden is de score van de volgende zet altijd hoger dan de beste score van deze zet. Bij de 1e testset werkt dit vrijwel altijd, er is genoeg score te behalen. Bij de grote 50x50 testset was dit al wat lastiger. Mocht er geen veld te vinden zijn, dan gaat het algoritme een stap terug, dit is te zien aan het backtrack aantal in de uitvoer. Dit algoritme werkt wel tegen zichzelf op snellere hardware, aangezien het dan steeds lastiger is om een veld te vinden dat een hoge score heeft. Als ik het algoritme 10x zoveel tijd geef, crashed get omdat er dan geen goede paden meer te vinden zijn.

Qua workload is er een timer die iedere ms triggered en kijkt waar het programma, gezien de looptijd, mee bezig zou moeten zijn. Met deze theoretische stappenteller regelt de producer van welke stap nieuwe velden doorgerekend gaan worden, uiteraard pas als er velden aanwezig zijn. Mocht dit niet zo zijn, dan geeft het algoritme dit aan met de backlog. Alle consumers komen zelf velden afhalen van de producer en als de consumer klaar is met een veld, worden alle nieuwe velden teruggestuurd.

Het algoritme geeft per 1000 stappen de score, de stap, gemiddelde score per stap, aantal doorgerekende zetten per seconde, aantal doorgerekende velden per stap, hoe vaak er is gebacktracked en het aantal stappen dat de backlog op dat moment is.

Verder maak ik gebruik van GNU Trove, deze zit meegepackaged. Ik had even geen zin om er de bijbehorende LGPL licence bij te plakken. Foei. :)

Graag draaien met de meest recente java6 jdk, in server mode met een max heap van 1gb:

java -server -Xmx1024m -jar DaCoTa.jar

Bij voorkeur op linux, ik heb gemerkt dat de timing en scheduling van threads een stuk soepeler werkt vergeleken met windows.

Tot slot: de coding style is zoals ik die inmiddels gewend ben van mijn werk, deze wijkt op een aantal punten af van de common java coding standards. Vooral de naamgeving van variabelen en bepaalde indenting is anders.
@.oisyn: :o Zonde! Heb je de bug inmiddels gevonden?
@crisp: d:)b

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Crisp: vet cool :D
DaCoTa: erg rauwe code, zie ik. Wel erg efficient tho :)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

DaCoTa schreef op maandag 12 januari 2009 @ 00:57:
@.oisyn: :o Zonde! Heb je de bug inmiddels gevonden?
Ja, maar aangezien de deadline toch al is verstreken ben ik nu wat dingetjes die ik nog wilde veranderen aan het algoritme aan het doorvoeren. Jammer dat je je code al gepost hebt, maar je moet er maar op vertrouwen dat ik voor de eerlijkheid iig niet je code ga doorspitten of de beschrijving van je algo ga doorlezen voordat ik 'm gesubmit heb :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zo, ingeleverd voor spek en bonen.
Hey, wat is het laat, laat ik eens naar bed gaan :Y)

[ Voor 12% gewijzigd door .oisyn op 12-01-2009 04:49 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
Hier mijn source en self-executable jar.

Uit mijn email:
Hoi,

Hierbij stuur ik mijn inzending voor Programming Contest 4 genaamd JewelSmit. Mijn oplossing is geschreven in Java. Ik ga er vanuit dat een bovengemiddelde pc 4GB of meer aan werkgeheugen heeft, dus ik wil graag dat mijn oplossing wordt gerund op de volgende manier:

java -Xms128m -Xmx2500m -server -jar jewelsmit.jar

Waarbij java de sun server virtual machine is. Hoewel java platformonafhankelijk is, heb ik een voorkeur dat JewelSmit gerund word onder linux (maar geen liveCD). Dit omdat ik niet op windows heb kunnen testen (en het misschien wel eens slechter zou kunnen werken)

Mijn oplossing is verders erg simpel. Er wordt een boom opgebouwd van moves, en er word een collectie bijgehouden van de knooppunten in het laagste niveau. Hiervan worden telkens de n beste uitgebreid met alle mogelijke stappen. Deze n (searchwidth) word iedere 20 seconden aangepast. Bij deze aanpassing wordt ook de huidige status en score even geprint.
Als het goed is stopt de code automatisch na 15 minuten (waarbij ik opstarttijd voor de java vm heb meegerekend, dus "date && java -Xms128m -Xmx2500m -server -jar jewelsmit.jar && date" geeft als het goed is exact 15 minuten verschil tussen de twee geprinte tijden)
De sourcecode is mijns inziens redelijk gedocumenteerd, dus de rest van mijn toegepaste ideeën kun je daar bekijken.

Veel plezier met runnen en jureren,

Groeten,

Peter Smit
Pete (voorheen phsmit)
Heel simpel dus eigenlijk :)

petersmit.eu


Acties:
  • 0 Henk 'm!

  • compufreak88
  • Registratie: November 2001
  • Laatst online: 02-05 17:51
zwippie schreef op zondag 11 januari 2009 @ 22:42:
[...]

Per ongeluk engelse windrichtingen gebruikt? NESW ipv NOZW?
Eerst wel, maar dat had ik al aangepast.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Mmm.. ik was het eerlijk gezegd helemaal vergeten, maar ik was er ook niet echt ver mee. Ik had alleen een zeer naieve implementatie, en later had ik nog geprobeerd wat te optimaliseren, op sommige punten leverde dat uiteindelijk wat performance op, maar het was nog lang niet genoeg ( En er zaten nog veel bugs in ). Ik zal vanavond de code van mijn "werkende" versie nog wel even posten. Maar het was ieder geval niet genoeg om serieus mee te doen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Foutje, bedankt!

Ik dacht dat de deadline op de 15e was, volgende keer beter lezen. Nu moet ik eerlijkheidshalve nog wel zeggen dat ik mijn implementatie nog niet zover had dat hij ook (geldige) uitvoer genereerde dus de kans dat ik hem voor de 15e had ingeleverd was ook niet bijzonder groot.

Volgende keer beter dan maar.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • DaCoTa
  • Registratie: April 2002
  • Laatst online: 05-09 23:19
BalusC schreef op maandag 12 januari 2009 @ 01:38:
erg rauwe code, zie ik. Wel erg efficient tho :)
Ja, ik heb eigenlijk vanaf het moment dat ik een oplossing gevalideerd kreeg, niks meer aan het algoritme gedaan maar alleen nog maar optimalizaties. In dit probleem is er niet 1 optimale oplossing, er zijn er heel erg veel, waardoor ik het niet nuttig vond om in de toekomst te kijken. Dat vond ik a) te tijdrovend en b) te moeilijk :) Er zijn namelijk bijna altijd wel zetten te vinden die een goede (maar geen perfecte) score weten te halen. En als je daar maar zo snel mogelijk naar op zoek gaat, doet het gemiddelde over 10.000 zetten de rest.

Het grootste ding dat ik nog verbouwd heb na de initiele werkende code is de representatie van een veld. Ik had in eerste instantie een 2d array, maar dat was veel te duur om die de hele tijd of weg te gooien, of weer te wissen, aangezien het grootste deel van die array niet veranderd binnen 1 zet. Die representatie heb ik omgezet in een array van losse kolommen. Op deze manier hoef ik voor een nieuw veld alleen 1 array met verwijzingen naar kolommen over te zetten. Op het moment dat ik iets in een veld moest veranderen, keek ik pas of deze kolom echt van dit veld is, of dat dit veld nog met een kopie van een oud veld aan het werk was. In dat tweede geval maakte ik pas een kopie aan.

Ik ben wel benieuwd naar veldrepresentaties van anderen, dat is toch een belangrijke keuze die een boel mogelijk of onmogelijk maakt.

@Pete: ik ga vanavond even met je code spelen (en met anderen, mochten er meerdere java deelnemers sources posten). Vind het wel leerzaam om te bestuderen.
@.oisyn: dat vertrouw ik wel :)

21 inzendingen, lol. Ruim 5 uur pure runtime alleen al.

Oh ja, nu ik toch aan het typen ben: misschien is het een idee voor de volgende keer om met een variabele runtime te werken. Ik vond de tijd van 15 minuten an sich goed, maar dat heeft me wel heel erg gestuurd, zeker met de max van 10000 zetten. Die dubbele runlimiet vond ik een beetje uhm... dubbel :)

Ik denk dat je meer creativiteit moet benutten als er meerdere runs zijn, met meerdere maximale looptijden. Dus bijvoorbeeld (ik noem maar wat): 10 seconden, 1 minuut en 6 minuten oid (beetje afhankelijk van het probleem), zonder verdere beperking van een aantal zetten oid.

Geeft wel een stuk meer jury overhead, hoewel, als je toch bezig bent met 1 meting, maakt 3 niet eens zo heel veel uit denk ik.

Zo, nu ga ik aan het werk :)

[ Voor 19% gewijzigd door DaCoTa op 12-01-2009 10:31 ]


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

DaCoTa schreef op maandag 12 januari 2009 @ 00:57:
Voor de liefhebbers: mijn source. Heeft GNU Trove nodig als lib.

Met mijn begeleidend schrijven, heb geen zin om het nog een keer op te typen :)

[...]
Wat gaaf, ik kan heel veel van deze code bijna 1-op-1 vertalen naar m'n eigen programma :)

hier mijn code, het is lang niet zo mooi geworden als ik had gehoopt en dat komt ook bij mij voornamelijk door een hele slechte planning :)

http://www.arjanhouben.nl/GOT_C4_Arjan.zip

Aan de mod's, ik stuur mijn begeleidende tekst nog op, die had ik gister ivm tijdsgebrek er niet bijgezet :D

hierbij de uitleg:
programma + arguments: GOT_C4 <aantal_moves> <aantal_seconds_to_run>

Mijn programma start met het initaliseren van het speelveld en de bijbehorende kolommen.

Na initialisatie wordt de kleinste buitenmaat berekend en wordt op basis daarvan de benodigde data gealloceerd.

Dan moet calculate op het eerste field aangeroepen worden om het veld naar de eerstvolgende stabiele staat te brengen, dit is een staat waarin geen combinaties (Options in mijn code) meer mogelijk zijn.

Calculate voert de volgende stappen uit, cleanUpField, hier worden de lege plekken vervangen door nieuwe items uit de kolommen.
Vervolgens kun je met getOptions alle combinaties vinden.
Indien er geen gevonden worden is deze functie klaar.
De combinaties worden eerst per rij gezocht en vervolgens per kolom.
Deze combinaties worden vervolgens in calculateScore gestopt waar ze gecombineerd worden indien mogelijk.
De gecombineerde opties worden vervolgens uit het veld gewist.

Mijn zoekalgorithme is beschamend simpel, hier zit dan ook zo goed als geen tijd in :+ Het enige interessante is dat de hoeveelheid opties die doorzocht worden afhankelijk zijn van de tijd die beschikbaar is.

Alle moves die gevonden worden met findMoves worden in een MoveList gestopt. Deze moves worden gesorteerd op hoogte in het veld, voorkeur wordt gegeven aan de laagst gepositioneerde moves (hoogste Y waarde)

[ Voor 49% gewijzigd door Arjan op 12-01-2009 21:37 ]

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
DaCoTa schreef op maandag 12 januari 2009 @ 10:25:
[...]
Oh ja, nu ik toch aan het typen ben: misschien is het een idee voor de volgende keer om met een variabele runtime te werken. Ik vond de tijd van 15 minuten an sich goed, maar dat heeft me wel heel erg gestuurd, zeker met de max van 10000 zetten. Die dubbele runlimiet vond ik een beetje uhm... dubbel :)

Ik denk dat je meer creativiteit moet benutten als er meerdere runs zijn, met meerdere maximale looptijden. Dus bijvoorbeeld (ik noem maar wat): 10 seconden, 1 minuut en 6 minuten oid (beetje afhankelijk van het probleem), zonder verdere beperking van een aantal zetten oid.
In dit geval zou je er dan gewoon voor kiezen om zoveel mogenlijk zetten te doen. Het heeft dan zoveel overhead om meerdere branches door te rekenen dat het veel efficienter is om gewoon zoveel mogenlijk zetten te doen. Op de manier dat het nu gedaan is, is het vooral het doel om een zo goed mogenlijk path door de boom te vinden. Omdat er ook nog tijd bij komt kijken moet het dus ook nog een beetje snel gebeuren.

De tijd constraint weglaten is niet echt haalbaar aangezien iedereen dan gewoon een maand gaat rekenen. En de aantal moves constraint weglaten, zorgt weer dat het er vooral op aan komt om zoveel mogenlijk zetten binnen de tijd te doen ( Waar de score per zet een stuk minder belangrijk is ).

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 12-09 02:47

bomberboy

BOEM!

Inderdaad.

Persoonlijk hou ik eigenlijk wel van tournament style contests waarbij de code van deelnemers het rechtstreeks tegen elkaar opneemt en er zo een afvalrace gehouden wordt. Het gaat dan wel om redelijk andere wedstrijdjes dan die tot nu toe en vereist natuurlijk ook meer werk van de mods omdat er een soort van testframework moet opgezet worden. (Tenzij er iets bestaands zou gebruikt worden natuurlijk, bv iets als corewars http://www.koth.org/koth.html, dan maken gebruikte taal enz ook niet meer uit, want alles moet in een vooraf gedefinieerde taal geschreven worden)

Nog een hele lijst van die robotachtige dingen gevonden:
http://sumost.ca/steve/games/
of iets met 1-on-1 (of 1-on-n) style games. Nuja, tot zover mijn ramblings :)

Heb trouwens de code van Pete eens uitgevoerd op mijn systeem en kom daar toch steeds rond de 54.5 miljoen uit op mijn systeempje, dus duidelijk beter dan onze code. Was te lui om die van dacota ook te compileren en te testen :p

Ondertussen toch de code van DaCoTa eens getest en daar komt die op 51.9miljoen voor de officiële testset

[ Voor 30% gewijzigd door bomberboy op 12-01-2009 15:03 . Reden: extra links en score-info ]


Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
bomberboy schreef op maandag 12 januari 2009 @ 11:50:
...
Heb trouwens de code van Pete eens uitgevoerd op mijn systeem en kom daar toch steeds rond de 54.5 miljoen uit op mijn systeempje, dus duidelijk beter dan onze code. Was te lui om die van dacota ook te compileren en te testen :p
:) Dat klinkt goed :)

Ik denk dat deze contest juist succesvol is in dit format. Iedereen zijn eigen taal en een opdracht waar je goed op de resultaten kunt focussen zonder dat je afhankelijk bent van anderen.

[ Voor 45% gewijzigd door Pete op 12-01-2009 12:15 ]

petersmit.eu


Acties:
  • 0 Henk 'm!

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
Ik vond dit ook een goed opgezette contest. Beginner of gevorderd programmeur maakt weinig uit, het is gewoon niet al te moeilijk om EEN score neer te zetten en een uitdaging om een slim algoritme neer te zetten. Ik heb veel geleerd tijdens het deelnemen aan deze contest. :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
king_charles schreef op maandag 12 januari 2009 @ 12:18:
Ik vond dit ook een goed opgezette contest. Beginner of gevorderd programmeur maakt weinig uit, het is gewoon niet al te moeilijk om EEN score neer te zetten en een uitdaging om een slim algoritme neer te zetten. Ik heb veel geleerd tijdens het deelnemen aan deze contest. :)
Daar doen we het voor. :) Het is leuk om je te meten aan anderen, maar het is leuker om er ook wat van te leren. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 12-09 02:47

bomberboy

BOEM!

Het is ook niet dat ik deze contest niet leuk vond he, integendeel :)
Maar voor de afwisseling...

Acties:
  • 0 Henk 'm!

  • compufreak88
  • Registratie: November 2001
  • Laatst online: 02-05 17:51
Dan krijg je zoiets als de got botcontest, die nooit afgerond is.

Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 12-09 02:47

bomberboy

BOEM!

Om het een beetje spannend te houden, een van de 2 andere testsets die hier gepost zijn scoorde onze solver toch beter dan die van jou (50miljoen vs 49 miljoen), op de tweede een fractie minder (minder dan 100000 verschil) en op een mini 5x5 set die ik gebruikte voor te testen scoren we merkbaar beer (34miljoen vs 25miljoen).

Maar overall lijkt jouw code toch iets beter te zijn. Zal vanavond nog eens kijken of ik die van ons ook ergens online kan gooien.

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
compufreak88 schreef op maandag 12 januari 2009 @ 13:09:
Dan krijg je zoiets als de got botcontest, die nooit afgerond is.
Opzich zou het leuk zijn deze weer door te starten, weer eens iets anders.

Misschien een 4 maanden deadline over een maandje of 2-3.

Acties:
  • 0 Henk 'm!

  • KoW
  • Registratie: Juli 2001
  • Laatst online: 17-08-2022

KoW

Parse parsed te veel

Het bugje in mijn code is gisteren ook nog gevonden.
Het hergebruiken van records ging onder bepaalde condities mis wanneer zowel de zogenaamde BaseID als de ParentID overeen kwamen.

Daarnaast is er nog een verbetering in de score door het scannen van het veld niet altijd te laten starten vanaf dezelfde positie, maar vanaf de laatst gevonden positie.

Het hele algoritme was er op bedacht om meerdere moves door te kunnen rekenen. Helaas was het programma daarvoor te traag.

Helaas had ik vrijdag al wat verstuurd. (Zag pas zaterdag dat de deadline verzet was.....)

De ingezonden versie is te vinden op:
http://people.zeelandnet.nl/kwisse/GoT4.zip

Acties:
  • 0 Henk 'm!

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
In welke taal heb je het geschreven? Ik herken het zo snel niet.

Nu ik zo wat inzendingen voorbij zie komen, krijg ik het idee dan ik boven gemiddeld scoor :)

[ Voor 45% gewijzigd door king_charles op 12-01-2009 14:12 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
king_charles schreef op maandag 12 januari 2009 @ 14:04:
In welke taal heb je het geschreven? Ik herken het zo snel niet.

Nu ik zo wat inzendingen voorbij zie komen, krijg ik het idee dan ik boven gemiddeld scoor :)
Als ik zo kijk is het Visual Foxpro. ( Helaas hebben we hier op het werk ook een hoop legacy wat daarin is gemaakt :'( )

[ Voor 11% gewijzigd door Woy op 12-01-2009 14:14 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Genoeg te doen vanmiddag dus, ik ben wel benieuwd wat iedereen er van gemaakt heeft ;)

De mijne is hier te vinden, met bron, 1 van de 2 mogelijke .exe's en uitleg.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

De mijne staat hier. De code is lelijk en uncommented en bevat een hoop stale code. Ik heb me in de laatste uurtjes dan ook voornamelijk geconcentreerd op het werkbaar maken, niet op het opschonen ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je linkje levert een 404 op.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nee hoor O-)
.edit: ik zie nu trouwens dat ik de .sln er vergeten ben bij te doen. Ik heb 'm erbij gedaan

[ Voor 79% gewijzigd door .oisyn op 12-01-2009 16:29 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Mijne ook maar online gezet: linkje

Er staat wat info in de /docs map met daarin beschreven hoe ik uiteindelijk mijn grid.removeCombinations() en strategy.findBestMove() methodes heb geimplementeerd. Vooral die eerste methode is veel en veel te langzaam gebleven...

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


Acties:
  • 0 Henk 'm!

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
Om niet achter te blijven zal ik vanavond ook even wat ruimte zoeken om mijn source ergens te uploaden. :+

[ Voor 74% gewijzigd door king_charles op 12-01-2009 20:55 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
hehe, mooi commentaar heb je in je precompiled header .oisyn
#undef min // *sigh*, idiots
Ik heb ook altijd dat soort commentaar als je weer eens moet corrigeren voor een stomme beslissing van een andere stukje software ;)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • veldsla
  • Registratie: April 2000
  • Laatst online: 12-09 14:18
Als we toch allemaal code aan het delen zijn....

Hier staat de mijne.

Mijn eerste c prog. Alles in 1 file. Lekker overzichtelijk :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Alles in één file noem je lekker overzichtelijk? :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • maleadt
  • Registratie: Januari 2006
  • Laatst online: 09-09 20:06
Jammer dat december-januari vrij prominent ingenomen is door examens :+ naja, hopelijk valt de volgende contest iets gunstiger, en kan ik mijn genetisch algoritme eens in toepassen :)

Vanavond eens de code's bekijken, altijd interessant om te zien hoe een dergelijk probleem getackled wordt.

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Mwa, ik heb alles eigenlijk ook in 1 file gemaakt (het 'echte' werk staat allemaal in logica.pas), en ik heb niet het gevoel gehad dat het door de grootte onoverzichtelijk werd. T ligt ook wel aan de gebruikte IDE, met control+klik ben ik zo bij de functie of variablele waar ik heen wil, en er is ook een toolbox die de structuur laat zien en daarin dubbelklikken werkt hetzelfde. Als ik met meerdere bestanden ga werken raak ik juist een deel kwijt uit de toolbox...

Acties:
  • 0 Henk 'm!

  • veldsla
  • Registratie: April 2000
  • Laatst online: 12-09 14:18
NMe schreef op maandag 12 januari 2009 @ 18:16:
Alles in één file noem je lekker overzichtelijk? :+
Tuurlijk, gvim met een paar window splits! :)

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

* BalusC heeft het idee dat hij de enige is die zo'n beetje voor elke scheet een class heeft aangemaakt.

Maargoed, dát noem ik overzichtelijk :+

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Geh, de mijne crasht blijkbaar bij het uitschrijven van de output file 8)7. Stack overflow. Oh well :)
For what it's worth, ik heb mijn fix geupload.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • vistu
  • Registratie: Januari 2007
  • Laatst online: 11-09 17:44
.oisyn schreef op maandag 12 januari 2009 @ 19:07:
Geh, de mijne crasht blijkbaar bij het uitschrijven van de output file 8)7. Stack overflow. Oh well :)
For what it's worth, ik heb mijn fix geupload.
Krijg daarnaast bij het runnen een fatal exception error. Ik heb na het doornemen van de entries so far (die online staan dan) wel duidelijk door dat procedureel schrijven van code wel heel erg verleden tijd is. Leermomentje zeg maar, maar dat is dan ook te zien aan mijn sowieso al vrij brakke code die niet verder dan 9 miljoen op de testset komt (in 2 min 36 oid).

Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
BalusC schreef op maandag 12 januari 2009 @ 19:00:
* BalusC heeft het idee dat hij de enige is die zo'n beetje voor elke scheet een class heeft aangemaakt.

Maargoed, dát noem ik overzichtelijk :+
Heb je mijn code al bekeken? Ik geloof dat ik ook niet veel meer objecten aan kan maken.

petersmit.eu


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

.oisyn schreef op maandag 12 januari 2009 @ 19:07:
Geh, de mijne crasht blijkbaar bij het uitschrijven van de output file 8)7. Stack overflow. Oh well :)
For what it's worth, ik heb mijn fix geupload.
heb jij nou met een field met bitmaskers gewerkt?

Ik heb die optie namelijk wel getest en uitgeschreven, maar in mijn implementatie bleek langzamer dan gewoon characters opslaan 8)7

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 12-09 02:47

bomberboy

BOEM!

Onze code is ook mooi opgedeeld in verschillende klassen hoor. Misschien net iets minder :)

In ieder geval staat deze nu ook online: code -> zip met executable jar en de src + korte readme

Het gebruikte algoritme lijkt denk ik voor een deel wel op de andere oplossingen.
Er wordt immers vertrokken van het startveld en alle mogelijke moves worden uitgerekend. Daarvan worden de topwidth beste combinaties overgehouden. Van deze top, wordt opnieuw alles uitgerekend en worden de besten topwidth combinaties overgehouden. En dit steeds verder.

Niet alle mogelijke beste paden worden op die manier bijgehouden, maar slechts een subset, namelijk die die overeenkomt met een boom van 13 niveau's diepe en 7 takken breed. Er wordt dus op die manier een subset van recursief alles uitreken berekend. Uiteraard worden de kinderen uit die top die niet afstammen van de root van die boom weggefilterd in elke stap.

die parameters 13 diep en 7 breed bleken redelijk optimaal voor een aantal testsets na een uitgebreide parametersweep (alles tussen 5 breed tot 20 diep en 3 tot 20 breed voor een aantal testsets)

De autotuning om mooi op 15 minuutjes uit te komen bestaat er dan in om de grootte van die top groter of kleiner te maken at runtime.

Acties:
  • 0 Henk 'm!

  • TweakPino
  • Registratie: September 2005
  • Laatst online: 01:13
Arjan schreef op maandag 12 januari 2009 @ 19:47:
heb jij nou met een field met bitmaskers gewerkt?

Ik heb die optie namelijk wel getest en uitgeschreven, maar in mijn implementatie bleek langzamer dan gewoon characters opslaan 8)7
Mijn oplossing maakt ook gebruik van bitmaskers. Het leek mij wel een efficiente implementatie, maar ik heb geen tijd gehad om een andere te testen. Hier kun je mijjn inzending trouwens vinden.
Hoeveel geheugen heeft jullie inzending trouwens nodig om tot een resultaat te komen? Die van mij heeft genoeg aan <10MB.

Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Verleden week moest ik m'n scriptie inleveren en vandaag was de proefpresentatie van m'n eindpresentatie, dus ik had gewoonweg geen tijd, maar dat wist ik al. Vond dat allemaal net even belangrijker dus had het twee weken geleden ergens al opgegeven. :p

Dat betekent alleen niet dat ik m'n algoritmetjes nog steeds redelijk elegant vind :Y)
Hierrr klikken om C spul te downloaden
Het is getikt op een mac en heb dus geen tijd gehad om het te porten. YMMV, linux zou geen probleem moeten zijn.

field.c heeft een algoritme waarmee het hele veld wordt hervuld met 1 for (elke kolom) en 2 whiles, wat vlot gaat. Daarnaast heeft het een functie om het veld te legen qua lijnen en doet dit met 2 keer (markeren en verwijderen) 2 (x,y) for loopjes, wat als een trein gaat.

moves.c heeft dan nog een lijndetectie algoritme wat imho niet veel eleganter kan.

Famous last words natuurlijk, plakken jullie straks de helft in slechtste programmeervoorbeelden :+

Al met al erg leuke challenge, was even nadenken over de algoritmes maar als je ze eenmaal 'doorhad' bijzonder simpel te implementeren. Moeten we vaker doen maar niet als ik aan het afstuderen ben. :>

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

vistu schreef op maandag 12 januari 2009 @ 19:20:
[...]

Krijg daarnaast bij het runnen een fatal exception error.
Wat is een fatal exception error?

.edit: heb je wel een CPU met SSE2 support?

[ Voor 10% gewijzigd door .oisyn op 12-01-2009 21:18 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Dirk
  • Registratie: November 2004
  • Laatst online: 01:35

Dirk

Coördinator frontpagemoderatie
NMe schreef op maandag 12 januari 2009 @ 18:16:
Alles in één file noem je lekker overzichtelijk? :+
Hoe wil je het overzichtelijk splitsen als je maar 700 regels code hebt? :+ Dan houd ik het toch liever bij elkaar. :P
BalusC schreef op maandag 12 januari 2009 @ 19:00:
* BalusC heeft het idee dat hij de enige is die zo'n beetje voor elke scheet een class heeft aangemaakt.

Maargoed, dát noem ik overzichtelijk :+
Objecten? Wa's da? Een klasse en die maakt gewoon meer van zichzelf als ie de diepte in moet. :P Het zal best netter kunnen, maar dat hield het voor mij wel zo simpel.
TweakPino schreef op maandag 12 januari 2009 @ 20:03:
Hoeveel geheugen heeft jullie inzending trouwens nodig om tot een resultaat te komen? Die van mij heeft genoeg aan <10MB.
De mijne heeft maar 172kB nodig. Maar dan scoort ie ook maar 32M.

All statements are true in some sense, false in some sense, meaningless in some sense, true and false in some sense, true and meaningless in some sense, false and meaningless in some sense, and true and false and meaningless in some sense.


Acties:
  • 0 Henk 'm!

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
TweakPino schreef op maandag 12 januari 2009 @ 20:03:
Hoeveel geheugen heeft jullie inzending trouwens nodig om tot een resultaat te komen? Die van mij heeft genoeg aan <10MB.
Mijn inzending gebruikt tussen de 10 en de 250 mb, dit voornamelijk omdat ik een stukje geschiedenis bijhoud voor het geval een tak doodloopt. Anders zit ik ruim binnen de 10 mb. :7

Acties:
  • 0 Henk 'm!

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 01:30
Balen, ik kom erachter dat in mijn gesubmitte code een grove fout zit. Ik had zaterdagavond nog gauw even een RandomAI in elkaar gezet die steeds het veld probeerde uit te spelen. Het probleem zit hem in de klasse die de score wegschrijft, ik vergeet daar een counter (die het aantal moves bijhoudt) op nul te zetten als ik weer opnieuw met mijn veld begin. Dus als ik met mijn RandomAI een hogere score haal dan mijn FirstMoveAI en BestMoveAI, dan is de output verkeerd. Ik zal mijn code (met fix) zo eens online zetten.

Acties:
  • 0 Henk 'm!

  • vistu
  • Registratie: Januari 2007
  • Laatst online: 11-09 17:44
.oisyn schreef op maandag 12 januari 2009 @ 21:16:
[...]

Wat is een fatal exception error?

.edit: heb je wel een CPU met SSE2 support?
What Are Fatal Exception Errors volgens Microsoft is dit een fatale uitzonderingsfout. Waar het op neer komt is dat Windows 7 er moeilijk mee doet en solver er vervolgens uitknalt. Core2Duo T7100, zit SSE2 support in als ik me niet vergis, misschien dat het Windows 7 is die er gewoon geen zin in heeft. Ook runnen als admin werkt niet. Maar maak je niet druk, het zal eerder aan mijn systeem liggen dan aan jouw code ;).

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12-09 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Heb je VC++ geïnstalleerd op die bak? Of een andere tool waarmee je een minidump kunt maken van de crash? Ik ben eigenlijk wel geïnteresseerd in de reden waarom het niet op Windows 7 zou draaien, ik doe verder geen hele rare dingen geloof ik :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • vistu
  • Registratie: Januari 2007
  • Laatst online: 11-09 17:44
.oisyn schreef op maandag 12 januari 2009 @ 23:37:
Heb je VC++ geïnstalleerd op die bak? Of een andere tool waarmee je een minidump kunt maken van de crash? Ik ben eigenlijk wel geïnteresseerd in de reden waarom het niet op Windows 7 zou draaien, ik doe verder geen hele rare dingen geloof ik :)
Geen VC++, als je me een PM stuurt dan heb ik een geheugendump voor je.

Acties:
  • 0 Henk 'm!

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 01:30
Mijn inzending is hier te downloaden. Eerst valideer ik speelveld en kolommen.txt. Daarna schrijf ik een lege uitvoer.txt naar schijf (zo heb ik in ieder geval output, ook al gaat er iets gruwelijk mis).
Dan voer ik FirstMoveAI uit, daarna BestMoveAI en daarna RandomAI. De RandomAI maakt gebruik van alle processors.

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Pete schreef op maandag 12 januari 2009 @ 19:31:
[...]

Heb je mijn code al bekeken? Ik geloof dat ik ook niet veel meer objecten aan kan maken.
Haha, was beetje spottend bedoeld :P

Jouw code is trouwens een interessant staaltje, is alleen op het eerste gezicht wel moeilijk interpreteerbaar. Die searchWidth is trouwens erg goed gevonden.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
.oisyn schreef op maandag 12 januari 2009 @ 23:37:
Heb je VC++ geïnstalleerd op die bak? Of een andere tool waarmee je een minidump kunt maken van de crash? Ik ben eigenlijk wel geïnteresseerd in de reden waarom het niet op Windows 7 zou draaien, ik doe verder geen hele rare dingen geloof ik :)
Met alle system resources die Windows 7 gebruikt was er vast niets meer over voor je programma. :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
BalusC schreef op dinsdag 13 januari 2009 @ 01:00:
Jouw code is trouwens een interessant staaltje, is alleen op het eerste gezicht wel moeilijk interpreteerbaar. Die searchWidth is trouwens erg goed gevonden.
Nu de deadline voorbij is heb ik nog veel betere ideeën gekregen om mijn code sneller en simpeler te maken. Verders dacht ik dat mijn opzet redelijk doorzichtig was. Ik heb in iig geprobeerd alles duidelijke namen te geven en alles in de juiste locatie te zetten.

petersmit.eu


Acties:
  • 0 Henk 'm!

Verwijderd

Voor het geval iemand interesse heeft in mijn gepruts ;) (C++)...

BTW: Weet iemand een betere (nederlandse) mirror?

[ Voor 20% gewijzigd door Verwijderd op 13-01-2009 20:20 . Reden: mirror aangepast ]


Acties:
  • 0 Henk 'm!

  • wacco
  • Registratie: Augustus 2002
  • Laatst online: 21-03-2023

wacco

cli, hlt.

Dat weet ik wel. Hier bijvoorbeeld. ;)

Klopt het trouwens dat ai.cpp leeg is? Staat berg code in de header file. Dus zal wel kloppen :)

[ Voor 32% gewijzigd door wacco op 13-01-2009 19:16 ]

Spolap: Interactive webcomic


Acties:
  • 0 Henk 'm!

Verwijderd

Ja, ik had ooit nog de code ooit nog uit de header moeten plukken, maar ooo ik ben zo lui... :+
Headers zijn imo ook nog steeds het grootste nadeel aan c++, maarja java is ook niks, daar mag je niet eens iets anders dan een class in 1 bestand zetten 8)7
Pagina: 1 ... 11 ... 16 Laatste

Dit topic is gesloten.