Programming Contest Nieuwe Stijl: Contest 1 *uitslagen!* Overzicht Volgende deel Laatste deel

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

Pagina: 1 ... 7 ... 10 Laatste
Acties:
  • 6.361 views sinds 30-01-2008

Onderwerpen


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Ok, nummers en andere informatie aan de blokken toegevoegd.
(nummer, type blok, rotatie, verschuiving)

Met #z<getal> achter het adres kun je nu naar zet <getal> gaan.

Twee vragen dan:
1: Kloppen de vormen/gebruikte nummers? (ik ga uit van wel, anders zou je veel sneller af zijn, doordat iets buiten het veld lijkt te vallen)
De blokken/game code is te vinden via: http://typefreak.nl/tetris/gottestset1/*.txt
2: Gebruik je DISCARD? Dat is de enige functie die in de andere testset niet zat, misschien gaat daar iets fout.

Validator

[ Voor 55% gewijzigd door EdwinG op 22-11-2006 23:16 ]

Bezoek eens een willekeurige pagina


  • Bint
  • Registratie: Juli 2002
  • Laatst online: 19:35
<insert niet zo'n fijne en nette woorden>

Mijn harde schijf is gecrashed, en ben bijna alles kwijt. Ik had wel een klein backupje, maar dat is echt niet veel :(..

gelukkig had ik nog wel een HDD liggen, en kon ik snel een image terugplaatsen.. maar leuk is anders :(

Memories of yesterday, will grow, but never die


  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
RobIII schreef op donderdag 16 november 2006 @ 15:25:
Results met de laatste output van .oisyn (met test-Set I):


En Janoz' en mijn validator lijken het eensch te zijn.
Tot dusver de resultaten. Verdere validatie zal onder de crew geschieden (we gaan dus niet meer voor iedereen valideren), ik wens jullie veel plezier tijdens de contest :w
Mijne geeft hier hetzelfde op :)
Morgen deze thread eens nalopen meer test sets om verder te checken.
Hij is geschreven in VB en doet niets erg slims dus misschien gooi ik de mijne wel online met source + exe.
Voor nu eerst slapen.

[ Voor 94% gewijzigd door PiepPiep op 23-11-2006 00:19 ]

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Verwijderd

Gelieve niet de source online te gooien. Een programma online gooien is 1 ding, maar de hele source erbij is heel iets anders natuurlijk.

Het is een programmeer wedstrijd, niet een ik kan het beste jatten en aanpassen wedstijd.

Tis je eigen keuze, maar ik zou het in ieder geval niet doen.

  • user109731
  • Registratie: Maart 2004
  • Niet online
EdwinG schreef op woensdag 22 november 2006 @ 23:13:
2: Gebruik je DISCARD? Dat is de enige functie die in de andere testset niet zat, misschien gaat daar iets fout.
Nee, geen discards.

Ik had het over block 91xxx, maar dat moest score 91xxx zijn, sorry. Het is block 3858 zo te zien, daar gaat het fout:

Jouw output:
Blok nr:3857,
Type blok: 6,
Rotatie: 3,
Verschuiving: -6
Afbeeldingslocatie: http://typefreak.nl/tetris/speelveld2.php?veld=44999955044633a04911656339999247066443355541a02223333222a52aa26502669816689044592458096009024474448990009022274444999999055556444999994065556645999944066757655511145026555223310055022251263399995033111266992233033337166992233067330166992222066000116999900006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Blok nr:3858,
Type blok: a,
Rotatie: 1,
Verschuiving: -7
Afbeeldingslocatie: http://typefreak.nl/tetris/speelveld2.php?veld=44999955044633a04911656339999247066443355541a02223333222a52aa26502669816689a44592458096009a24474448990009066757655511145026555223310055022251263399995033111266992233033337166992233067330166992222066000116999900006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Zo te zien clear je een lijn te veel (3 ipv 2).

Hope this helps :)

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Grote prutser schreef op donderdag 23 november 2006 @ 00:57:
[...]

Nee, geen discards.

Ik had het over block 91xxx, maar dat moest score 91xxx zijn, sorry. Het is block 3858 zo te zien, daar gaat het fout:

Jouw output:
Blok nr:3857,
Type blok: 6,
Rotatie: 3,
Verschuiving: -6
[afbeelding]
Blok nr:3858,
Type blok: a,
Rotatie: 1,
Verschuiving: -7
[afbeelding]

Zo te zien clear je een lijn te veel (3 ipv 2).

Hope this helps :)
Aan de blokken te zien (blok type a == 0.txt ) hadden er inderdaad maar 2 regels moeten verdwijnen, even kijken wat mijn script fout doet. Al weet ik niet welke van de aanwezige txt bestanden jouw output was, dus kan even duren.

edit:
Ok, ik heb jouw output.txt gevonden, en direct het probleem. Zat inderdaad in de code om rijen weg te halen, bij 2 rijen of meer konden enkele punten fout gaan, verkeerde optimalisatie.

[ Voor 4% gewijzigd door EdwinG op 23-11-2006 10:15 ]

Bezoek eens een willekeurige pagina


  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Verwijderd schreef op donderdag 23 november 2006 @ 00:34:
Gelieve niet de source online te gooien. Een programma online gooien is 1 ding, maar de hele source erbij is heel iets anders natuurlijk.

Het is een programmeer wedstrijd, niet een ik kan het beste jatten en aanpassen wedstijd.

Tis je eigen keuze, maar ik zou het in ieder geval niet doen.
Misschien is de exe alleen ook wel een idee.
Hoewel ik niet denk dat er veel van de source de moeite waard is om te jatten.
Het werkt, en voor zover ik kan zien goed, maar zeer omslachtig.
Ik wilde gewoon in een avond een validator schrijven dus had geen zin om altijd duidelijk benamingen te maken en comments toe te voegen :)
Iedereen die uiteindelijk een werkende AI versie heeft die kan dit ook schrijven, de source is misschien wel leuk voor de mensen die niet goed genoeg kunnen programmeren om een AI te maken maar wel leuk vinden om test sets te valideren.
Anyway, ik moet eerst webspace vinden om het online te zetten als ik iets online wil zetten :)

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
PiepPiep schreef op donderdag 23 november 2006 @ 10:31:
Anyway, ik moet eerst webspace vinden om het online te zetten als ik iets online wil zetten :)
Alleen de .exe wil ik nog wel plaatsen, als deze niet te groot is.

De online validator bleek iets te grote pagina's als resultaat te hebben: 100.000 plaatjes :X
(had ik natuurlijk kunnen verwachten)
De code is nu zo aangepast dat alleen de eerste 1000 zetten getoond worden, + elke 1000e volgende zet.
Lijkt me dat dit voldoende is om een goede indruk van je ai te krijgen.

[ Voor 6% gewijzigd door EdwinG op 23-11-2006 10:54 ]

Bezoek eens een willekeurige pagina


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Bint schreef op donderdag 23 november 2006 @ 00:11:
<insert niet zo'n fijne en nette woorden>

Mijn harde schijf is gecrashed, en ben bijna alles kwijt. Ik had wel een klein backupje, maar dat is echt niet veel :(..

gelukkig had ik nog wel een HDD liggen, en kon ik snel een image terugplaatsen.. maar leuk is anders :(
Tja, nou ben ik zo fortunate dat ik nog nooit een HDD crash heb meegemaakt in de ruim 15 jaar dat ik met computers bezig ben (*klopt af*), toch kan ik er niet genoeg op hameren dat je van je belangrijke data toch regelmatig backups moet maken (ik stop het zelf allemaal onder sourcecontrol op een andere disk, en daar maak ik dan weer eens in de zoveel tijd een backup van). Maar dat is nu een beetje mosterd na de maaltijd natuurlijk. Sucks man. Een ding scheelt, al het denkwerk heb je al gedaan en dus typ je je nieuwe app waarschijnlijk zo in (met wellicht een betere opzet ook wegens voorkennis) :)

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.


  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

Ik heb gisteravond mijn eerste werkende versie afgemaakt. Het begint al enigsinds ergens op te lijken, maar hij komt helaas nog niet verder dan het plaatsen van de eerste 2.000 blokjes van testset 1.

Volgende stap is het toevoegen van de functionaliteit om een output.txt bestand te genereren, zodat ik jullie mooie validators kan gebruiken;)
En daarna nog maar eens flink brainstormen hoe ik de AI kan verbeteren...

The one who says it cannot be done, should never interrupt the one who is doing it.


  • user109731
  • Registratie: Maart 2004
  • Niet online
Hoever komen jullie met testset 2 zonder lookaheads? :) Daar heeft mijn AI best veel moeite mee...

Sourcecontrol is idd een goed idee. Ik heb nu ook al een paar keer gehad dat ik terug wilde naar een eerdere versie, maar dat was niet mogelijk, dus dan blijf je mappen kopieeren, wat ook niet heel handig is...

[ Voor 73% gewijzigd door user109731 op 23-11-2006 11:56 ]


  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Trouwens, wat ik nog niet gezien heb, maar vast wel zal komen: Nieuwe blokken/game sets. Heb je zo'n set, en wil je de output kunnen gebruiken icm mijn validator, mail de 0.txt ~ 9.txt en game.txt dan even naar mij toe.

Bezoek eens een willekeurige pagina


  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

EdwinG schreef op donderdag 23 november 2006 @ 12:09:
Trouwens, wat ik nog niet gezien heb, maar vast wel zal komen: Nieuwe blokken/game sets. Heb je zo'n set, en wil je de output kunnen gebruiken icm mijn validator, mail de 0.txt ~ 9.txt en game.txt dan even naar mij toe.
Is het misschien een idee om hiervoor een kleine site op te zetten? Met een lijst van blok/game sets en evt. de mogelijkheid om je beste score erin bij te houden?

Bij testset 2 kan ik trouwens 1100 blokjes verwerken (tov 2000 in testset 1)

The one who says it cannot be done, should never interrupt the one who is doing it.


  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
cspare schreef op donderdag 23 november 2006 @ 12:31:
[...]


Is het misschien een idee om hiervoor een kleine site op te zetten? Met een lijst van blok/game sets en evt. de mogelijkheid om je beste score erin bij te houden?

Bij testset 2 kan ik trouwens 1100 blokjes verwerken (tov 2000 in testset 1)
Wou ik wel langzaam naar toe gaan werken ja :)
In ieder geval is mijn volgende stap het scheiden van game.txt van de blokken sets, zodat je ook kunt testen met game.txt uit set twee, en de blokken uit set één.

Bezoek eens een willekeurige pagina


  • Bint
  • Registratie: Juli 2002
  • Laatst online: 19:35
zow..

weer mijn code op orde.. en het mooie is: deze werkt wel ;)

zonder vooruitkijken heb ik heel set 1 nu opgelost, de validator die hier pas gepost is is alleen nog bezig met de punten te berekenen ;)

edit:

2263340 punten :D

[ Voor 6% gewijzigd door Bint op 23-11-2006 19:43 ]

Memories of yesterday, will grow, but never die


Verwijderd

Moet je mijn validator even proberen die doet het in minder als 1 sec :P (een paar ms zelfs op een goede PC)

  • learn_more
  • Registratie: November 2005
  • Niet online
Verwijderd schreef op donderdag 23 november 2006 @ 20:29:
Moet je mijn validator even proberen die doet het in minder als 1 sec :P (een paar ms zelfs op een goede PC)
je kan er een bench functie bij maken :9


ik heb nu de code voor het droppen van een blokje klaar, ik was vergeten om een check eruit te halen voor het draaipunt, deze is niet helemaal nodig bij het recht naar beneden droppen :+

[ Voor 0% gewijzigd door learn_more op 23-11-2006 21:57 . Reden: dinges ]


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

Gerco

Professional Newbie

Eindelijk weer wat tijd gehad om eraan te werken. Ik kan nu "redelijk" spelen. De AS is nog te dom om set 1 uit te spelen (haal momenteel slechts 134 moves), maar dat kan komen omdat hij nog niet probeert lijnen te maken :+

Soultaker: Thanks voor de validator, hij is echt prachtig gemaakt en nu kan ik de mijne gaan testen.

[edit]
Een beetje tweaken later kom ik tot dit resultaat:
Afbeeldingslocatie: http://www.gdries.nl/tetris2.png

Gaat al stukken beter nu, weinig lege plekken in de stack dus de scoringsfunctie werkt best goed. Nu de gewichten tweaken.

[ Voor 26% gewijzigd door Gerco op 24-11-2006 01:26 ]

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


Acties:
  • 0 Henk 'm!

  • learn_more
  • Registratie: November 2005
  • Niet online
Gerco schreef op donderdag 23 november 2006 @ 23:46:
Eindelijk weer wat tijd gehad om eraan te werken. Ik kan nu "redelijk" spelen. De AS is nog te dom om set 1 uit te spelen (haal momenteel slechts 134 moves), maar dat kan komen omdat hij nog niet probeert lijnen te maken :+

Soultaker: Thanks voor de validator, hij is echt prachtig gemaakt en nu kan ik de mijne gaan testen.
dan ben je al verder als mij :+

misschien is het een leuk idee om validators die online staan ook in de startpost te zetten?

Acties:
  • 0 Henk 'm!

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

Gerco

Professional Newbie

Voor het geval iemand wil testen op andere "standaard" game.txts, heb ik er een paar gegenereerd. IN deze zip zitten een game.txt met 100, 1000, 10000, 100000 en 1000000 blokjes. Have fun!

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


Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Hmm, testset 2 loopt redelijk nu, wel met lookahead. :)

Ik denk dat die gewoon niet te doen is zonder lookahead, of je moet zwaar optimaliseren voor die speciale set?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ook niet, het kan gewoon niet zonder lookahead. Waar je in set 1 nog een goede strategie kunt definieren zodat de plaatsing van elk blokje individueel goed uitkomt, hangt de plaatsing in set 2 compleet af van de blokjes die nog komen gaan.

Sterker nog, ik heb 'm ook niet uitgespeeld met puur een lookahead van x. Wat ik dan wel gedaan heb houd ik natuurlijk geheim ;). Maar ik denk dat mijn plaatsingsalgo sowieso nog niet optimaal is, ik heb maar weinig criteria en ook nog niet zoveel aandacht besteed aan de verschillende gewichten.

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!

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

Gerco

Professional Newbie

Mijn algo ging opeens heel anders presteren toen ik het andere game.txts voorschotelde. De optimale weights lijken erg af te hangen van de game.txt. .oisyn: Hoe presteert jouw algo met de game.txt van 1000000 blokjes die ik postte? (Op de Tetris set, daar heb ik hem op getest en ik kwam tot een magere 548 blokjes :'( )

[ Voor 16% gewijzigd door Gerco op 24-11-2006 13:39 ]

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


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
Gerco schreef op vrijdag 24 november 2006 @ 13:34:
Mijn algo ging opeens heel anders presteren toen ik het andere game.txts voorschotelde. De optimale weights lijken erg af te hangen van de game.txt. .oisyn: Hoe presteert jouw algo met de game.txt van 1000000 blokjes die ik postte? (Op de Tetris set, daar heb ik hem op getest en ik kwam tot een magere 548 blokjes :'( )
Sterker nog, de gewichten zouden ook moeten meeveranderen als je nieuwe series blokken voor je krijgt, omdat er geen algemeen beste is. Hierdoor gaan volgens mij ook genetische algoritmen nooit werken voor tetris (en ja, dat heb ik wel geprobeerd).

Mijn algoritme ga ik nu ook weer voor de duizendste keer omgooien :P. Soms heb ik wel goede ideeen, alleen blijken die zoveel vooruit te moeten rekeken dat het geen doen is (bomen met > 1 miljard velden is geen goed idee :D)

Edit:
code:
1
2
3
4
5
Game over after 1000000 rounds and 181.30 seconds
|    ##         |
|    ###        |
-----------------
Score: 23662390


Even snel opgelost :z

[ Voor 8% gewijzigd door Marcj op 24-11-2006 14:13 ]


Acties:
  • 0 Henk 'm!

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

Gerco

Professional Newbie

Grr, ik moet ernstig aan mijn algo gaan sleutelen. Dit gaat nergens meer over...

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


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
Game 2:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Game over after 100000 rounds and 1789.86 seconds
Round 100000
|#            ##|
|####         ##|
|#######      ##|
| ######      ##|
|########     ##|
|###### ########|
-----------------
Score: 3097950
LowestClear: 6
Shift: 2  Rotate: 1
Cleared 5 lines: 46
Cleared 4 lines: 208
Cleared 3 lines: 748
Cleared 2 lines: 4637
Cleared 1 lines: 20750
Cleared 0 lines: 73611


8). Nu nog even de score een beetje opkrikken.

Acties:
  • 0 Henk 'm!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Marcj schreef op vrijdag 24 november 2006 @ 13:52:
Sterker nog, de gewichten zouden ook moeten meeveranderen als je nieuwe series blokken voor je krijgt, omdat er geen algemeen beste is. Hierdoor gaan volgens mij ook genetische algoritmen nooit werken voor tetris (en ja, dat heb ik wel geprobeerd).
Behalve als je pakweg het eerste uur computertijd besteed aan het optimaliseren van de gewichten voor de set blokjes die je aangeleverd krijgt, om het tweede uur te optimaliseren voor de specifieke volgorde van blokjes die je krijgt. Ik heb het vermoeden dat je zonder lookahead ver kan komen door een hele goede initiële plaatsing van de blokjes voor elkaar te krijgen.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
Confusion schreef op zaterdag 25 november 2006 @ 11:10:
[...]

Behalve als je pakweg het eerste uur computertijd besteed aan het optimaliseren van de gewichten voor de set blokjes die je aangeleverd krijgt, om het tweede uur te optimaliseren voor de specifieke volgorde van blokjes die je krijgt. Ik heb het vermoeden dat je zonder lookahead ver kan komen door een hele goede initiële plaatsing van de blokjes voor elkaar te krijgen.
Ik heb verschillende genetische algoritmen geprobeerd, maar er lijkt geen locaal maximum te zijn voor die functies. Hierdoor worden generaties niet steeds beter, maar lijkt het volledig random te gaan (sterken nog, random werkt net zo goed 8)7). Daarnaast hangt de waardes van de gewichten niet alleen af van de vorm van de blokjes, maar ook heel erg van de volgorde waarin ze komen. Hierdoor zou je terwijl je nieuwe blokjes leest ook continue de waardes moeten aanpassen.

Ik heb nu wel een methode gevonden die heel aardig lijkt te werken, maar niet de optimale score er uit weet te halen. En op het moment dat ik de score erbij in betrek houd hij er heel snel mee op...

Acties:
  • 0 Henk 'm!

  • The Fox NL
  • Registratie: Oktober 2004
  • Laatst online: 15:30
Ik ga ook meedoen. Heb niet zoveel tijd als sommigen van jullie, dus nog geen scores van mij. Ik ga gebruik maken van c++.

Op het moment ben ik zover dat ik de blokjes kan inlezen en roteren. Nu nog de blokjes opslaan in het geheugen en ik kan weer verder.
In het begin van deze post had RobIII het trouwens over swappen van x,y coordinaten voor het roteren, en ik doe dat inderdaad. Het is wel geen x,y -> y,x, maar een tikje anders. Maar RobIII had toch gelijk, ik loop door mijn array en swap de coordinaten met mijn formule.

Acties:
  • 0 Henk 'm!

  • Bint
  • Registratie: Juli 2002
  • Laatst online: 19:35
lol..

100000 blokjes opgelost van set 1, zonder lookahead.. 10 minuten.. dat is echt heel slecht, ik kan alleen niet vinden waar mijn fout zit.. :(

Memories of yesterday, will grow, but never die


Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Confusion schreef op zaterdag 25 november 2006 @ 11:10:
k heb het vermoeden dat je zonder lookahead ver kan komen door een hele goede initiële plaatsing van de blokjes voor elkaar te krijgen.
Mijn algoritme pakte zonder lookahead in bijna alle gevallen de beste positie, maar dan kan een volgend blokje soms totaal niet goed geplaatst worden. Dankzij het vooruitkijken drop je soms op een ogenschijnlijk slechte en zeer domme positie (veel gaten e.d., terwijl je ergens anders een rij kunt clearen), maar een aantal blokjes later valt het precies in elkaar en clear je 5 rijen (bij wijze van) :) Dat heb je bij set 1 niet, omdat je daar minder uitstekende blokken hebt zeg maar. Daar zal vast wel wat op te verzinnen zijn, maar het is moeilijk, ook omdat je niet weet welke blokken je krijgt.
.oisyn schreef op vrijdag 24 november 2006 @ 13:19:
Wat ik dan wel gedaan heb houd ik natuurlijk geheim ;).
Toe nou, tweakers hebben toch geen geheimen voor elkaar :P? serieus: Ik ben wel benieuwd hoor :)

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

Grote prutser schreef op zaterdag 25 november 2006 @ 14:00:
[...]
Toe nou, tweakers hebben toch geen geheimen voor elkaar :P? serieus: Ik ben wel benieuwd hoor :)
Ook serieus: het is een contest. Ik kan me dan ook prima voorstellen dat .oisyn z'n idee niet weggeeft. Als je het echt wilt weten en .oisyn vertelt het je niet dna wacht je tot na 1 feb 2007. Na de contest wordt de sourcecode van elke entry online gezet.

Mij verbaast het dat er druk wordt gediscussieerd over oplossingen, ideeen, maximale look-a-head e.d. Wat mij betreft prima hoor maar je helpt wel je tegenstanders op weg.

[ Voor 15% gewijzigd door Creepy op 25-11-2006 15:13 ]

"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!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Creepy schreef op zaterdag 25 november 2006 @ 15:12:
[...]

Ook serieus: het is een contest.
Uiteraard, ik bedoelde het dan ook helemaal niet serieus, en natuurlijk is het slim en terecht om het niet te zeggen. Alleen de laatste regel was serieus :)

Acties:
  • 0 Henk 'm!

  • Punksmurf
  • Registratie: September 2002
  • Laatst online: 06-01-2024
Creepy schreef op zaterdag 25 november 2006 @ 15:12:
Mij verbaast het dat er druk wordt gediscussieerd over oplossingen, ideeen, maximale look-a-head e.d. Wat mij betreft prima hoor maar je helpt wel je tegenstanders op weg.
Het gaat toch ook om de lol van het meedoen? Ik zelf heb nog niet besloten of ik al dan niet mee wil doen (heb het ontzettend druk, plus nog een aantal hobby-projecten waar ik mee verder wil), maar het topic volg ik wel. Erg leuk om te lezen allemaal hoor :)

met een hamer past alles


Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Goed, ik ben dus even code aan het hakken nu, maar stuit op een klein probleempje. Worden blokjes altijd aangeleverd in de kleinste matrix waar ze nog in passen? Een simpel 2x2 vierkantje kan bijvoorbeeld aangeleverd worden als:

X1
11

Zoals in de voorbeeldset, maar in principe zou hij ook zo aangeleverd kunnen worden:

00000
0X100
01100
00000
00000

Kan iemand hier uitspraken over doen? :P Anders moet ik steeds kijken of ik de matrix nog kan verkleinen.

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • Punksmurf
  • Registratie: September 2002
  • Laatst online: 06-01-2024
Je kan misschien het beste gebruik maken van een 5x5 matrix voor alle blokjes, in plaats van verschillende voor elk blokje, dat maakt het checken veel sneller en dat ga je wel nodig hebben als je straks gaat 'spelen'. Dat het laden iets lastiger is is dan verwaarloosbaar (sowieso lijkt mij het makkelijker om alles in 5x5 te laden, maar dat terzijde).

met een hamer past alles


Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Waarom zou het sneller zijn als je een 2x2 blokje opslaat in een 5x5 matrix?

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • Punksmurf
  • Registratie: September 2002
  • Laatst online: 06-01-2024
Omdat je dan niet elke keer dat je een nieuw blokje moet laten vallen hoeft te kijken hoe groot het blokje is...

met een hamer past alles


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

Punksmurf schreef op zaterdag 25 november 2006 @ 22:19:
[...]

Het gaat toch ook om de lol van het meedoen?
Uiteraard :)
Punksmurf schreef op zaterdag 25 november 2006 @ 23:24:
Omdat je dan niet elke keer dat je een nieuw blokje moet laten vallen hoeft te kijken hoe groot het blokje is...
Ik verklein de blokjes tot de kleinst mogelijke matrix. Scheelt me weer checken waar een blokje past want zo hoef ik geen lege rijen of kolommen te checken. Zoiezo moet je toch checken hoe groot een blokje echt is om te zien waar het precies past.

Sterker nog: ik check zelfs of verschillende orientaties van een blokje hetzelfde zijn om zo geen onnodige checks uit te voeren.

offtopic:
En zo loop ik dus zelf ook nog tips te geven :P

[ Voor 68% gewijzigd door Creepy op 26-11-2006 01:32 ]

"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!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Daar was ik dus ook mee bezig creepy. Bedankt voor het posten van mijn geniale masterplan op dit publieke forum >:)

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Punksmurf schreef op zaterdag 25 november 2006 @ 23:24:
Omdat je dan niet elke keer dat je een nieuw blokje moet laten vallen hoeft te kijken hoe groot het blokje is...
Uiteindelijk moet je juist meer checks doen omdat je altijd met een 5x5 matrix werkt terwijl daar best maar een 1x1 blok in kan zitten.

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!

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Creepy schreef op zondag 26 november 2006 @ 01:28:
Sterker nog: ik check zelfs of verschillende orientaties van een blokje hetzelfde zijn om zo geen onnodige checks uit te voeren.
Ik doe inderdaad hetzelfde. Het inlezen en berekenen van eigenschappen van de blokjes is tenslotte een eenmalige operatie, waarvan de kosten verwaarloosbaar zijn ten opzichte van het plaatsen van de blokjes. Dan kan je er maar beter alles uithalen wat erin zit.

Wie trösten wir uns, die Mörder aller Mörder?


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Gerco schreef op vrijdag 24 november 2006 @ 12:19:
Voor het geval iemand wil testen op andere "standaard" game.txts, heb ik er een paar gegenereerd. IN deze zip zitten een game.txt met 100, 1000, 10000, 100000 en 1000000 blokjes. Have fun!
Het heeft even geduurd, maar deze sets staan nu ook bij mijn validator. Voor de echt enthousiaste deelnemers: Houdt er rekening mee dat de output.txt van de 1M set misschien te groot is om te uploaden.

edit:
En wat extra functies toegevoegd:
* Genereren van een 'willekeurige' game.txt van opgegeven lengte.
* Downloaden van de game.txt bestanden die beschikbaar zijn.
Zip-functies lijken niet te werken, anders had ik ook eenvoudig blokkensets kunnen laten downloaden/uploaden.
Tetris validator

[ Voor 24% gewijzigd door EdwinG op 26-11-2006 20:00 ]

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:41

Dido

heforshe

.oisyn schreef op zondag 26 november 2006 @ 01:54:
Uiteindelijk moet je juist meer checks doen omdat je altijd met een 5x5 matrix werkt terwijl daar best maar een 1x1 blok in kan zitten.
Ik gebruik een 16x2 matrix om een 2x2 blokje op te slaan O-)

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Punksmurf
  • Registratie: September 2002
  • Laatst online: 06-01-2024
Creepy, .oisyn, Confusion: goed punt, zit zeker wat in :)

Dido: heeft dat iets te maken met het feit dat een byte 8 bits heeft zodat je snel bitwise kan vergelijken? Kan je dan niet beter een 8x matrix nemen?

[ Voor 57% gewijzigd door Punksmurf op 26-11-2006 21:50 ]

met een hamer past alles


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:41

Dido

heforshe

Punksmurf schreef op zondag 26 november 2006 @ 21:49:
Dido: heeft dat iets te maken met het feit dat een byte 8 bits heeft zodat je snel bitwise kan vergelijken? Kan je dan niet beter een 8x matrix nemen?
Mijn speelveld is ook 16 breed ;)
(En twee bytes vergelijken gaat niet langzamer dan byte sinds de 8086, of ik moet me heel sterk vergissen...)

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dido schreef op zondag 26 november 2006 @ 21:48:
[...]

Ik gebruik een 16x2 matrix om een 2x2 blokje op te slaan O-)
Ik een 8x5, maar da's gewoon de gereserveerde ruimte, hij staat altijd linksboven in de matrix en ik heb width en height informatie.

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!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:28
.oisyn schreef op zondag 26 november 2006 @ 01:54:
Uiteindelijk moet je juist meer checks doen omdat je altijd met een 5x5 matrix werkt terwijl daar best maar een 1x1 blok in kan zitten.
Wat ik in mijn oorspronkelijke (Python) validator deed was een 5x15 matrix bouwen, en voor elke mogelijke translatie/rotate zo'n matrix vullen zonder verdere hoogte/breedte informatie. Dat is misschien niet zo efficient, maar je hoeft geen boundaries meer te checken of te transleren bij het droppen: je hebt per stukje gewoon een lijst met ~50 mogelijke matrices. Daarin zitten dan wel een heleboel (minstens 10) lege kolommen, maar daar moet je toch al support voor hebben. Zo'n blokje is namelijk wel legaal:
#.#
...
#.#

Ik kan me goed voorstellen dat als die daadwerkelijk voorkomt een heleboel code stukgaat omdat de auteur impliciet aannam dat binnen een blokje geen lege kolommen voor zouden komen. >:)

Zelf zou ik er ook wel voor zijn dat er gegarandeerd wordt dat alle blokjes geheel horizontaal of verticaal verbonden zijn (of op z'n minst horizontaal, verticaal of diagonaal). Getuige set 2 kun je dan al een goed lastige set maken, en het lijkt me ook niet leuk als straks de einstand .oisyn met 12 punten is en de rest met 0. (Verder zou ik ook garanderen dat elk stukje in een zo klein mogelijk rechthoek gegeven wordt; er is niet echt een reden waarom je de I/O, waar het niet om gaat, moeilijker zou maken.)

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

Soultaker: damn, geef die tip van lege kolommen/rijen binnen een blokje nu niet weg :/ :P

"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!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
Soultaker schreef op maandag 27 november 2006 @ 00:10:
[...]
Zelf zou ik er ook wel voor zijn dat er gegarandeerd wordt dat alle blokjes geheel horizontaal of verticaal verbonden zijn (of op z'n minst horizontaal, verticaal of diagonaal). Getuige set 2 kun je dan al een goed lastige set maken, en het lijkt me ook niet leuk als straks de einstand .oisyn met 12 punten is en de rest met 0. (Verder zou ik ook garanderen dat elk stukje in een zo klein mogelijk rechthoek gegeven wordt; er is niet echt een reden waarom je de I/O, waar het niet om gaat, moeilijker zou maken.)
.oisyn is niet de enige die Game2 heeft opgelost ;)

Er zijn ook veel manieren om alles op te slaan, maar ik ben het wel met .oisyn eens dat een dynamische grootte wel efficienter is dan een statische, omdat je anders gaat kijken of lege regels wel passen. Daarnaast zal je toch meestal wel een for-loopje gebruiken om de regels bij langs te lopen en dan maakt het echt niet zoveel uit of deze loop ge-unrolled (is dat een woord?) kan worden of niet. Dan kosten die extra checks veel meer tijd.

Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Ik ben het er niet mee eens dat minder checken altijd sneller is, als je 5 integer op 5 andere integers controleert en je weet of je stukje er past kan ik me niet voorstellen dat het sneller is om na elke integer te kijken of je aan het einde van de lijst bent.
Als je trouwens via een zoekboom zetten vooruit kijkt kan je daar veel meer winst boeken dan het checken of een stukje wel past.

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

Daar ga je met je beredenering de mist in denk ik. Ik controleer niet of ik toevallig aan het einde van een lijst ben. Ik weet hoe breed / hoog elke matrix van elk blokje is. Dat wordt namelijk bij het binnenladen van het blokje al berekend. Zodoende hoef ik geen 5 maar bijv. maar 2 integers te checken zonder dat er een check is op dat moment hoe breed een blokje is.

"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!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Zelf zou ik er ook wel voor zijn dat er gegarandeerd wordt dat alle blokjes geheel horizontaal of verticaal verbonden zijn (of op z'n minst horizontaal, verticaal of diagonaal).
Jah, en dat blokjes worden gegeven in de minimale omspannende matrix. Dan hoef je je iig. niet met dat soort 'randzaken' bezig te houden.

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
writser schreef op maandag 27 november 2006 @ 16:32:
[...]
Jah, en dat blokjes worden gegeven in de minimale omspannende matrix. Dan hoef je je iig. niet met dat soort 'randzaken' bezig te houden.
Ook dat was (in de zelfde post) voorgesteld.
(Verder zou ik ook garanderen dat elk stukje in een zo klein mogelijk rechthoek gegeven wordt; er is niet echt een reden waarom je de I/O, waar het niet om gaat, moeilijker zou maken.)

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Wie is er trouwens zo enthousiast dat hij/zij een game.txt van 10 tekens genereerd?
(of 5, dat heb ik ook al gezien)
Niet echt veel zelfvertrouwen :P
Meteen een foutje opgelost, zonder voorkeursnaam werkte niet zoals het hoorde.

Bezoek eens een willekeurige pagina


  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 09:11
Jammer dat ik nu pas deze contest voor het eerst zie, heb nu meteen al een mega-achterstand :P. Als ik nog wat tijd en zin kan vinden ga ik misschien ook nog een simpel programmaatje schrijven (C# of Python). Het idee van de contest is in ieder geval wel leuk. Ik houd dit topic nog wel even in de gaten :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

DrClearbottom schreef op donderdag 30 november 2006 @ 00:02:
Jammer dat ik nu pas deze contest voor het eerst zie, heb nu meteen al een mega-achterstand :P.
Mensen gaan echt niet 3 maanden lang met deze opdracht bezig zijn. Ik denk dat voor de meesten hier wel geldt dat ze in het begin vrij enthousiast zijn, en zodra ze iets goed werkbaars hebben er niet zo heel veel tijd meer insteken tot de deadline weer in zicht komt. Dus met die achterstand zal het wel meevallen denk 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.


  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Oisyn, hoeveel tetris-speelvelden test jij ongeveer per seconde? Ik zit nu op ongeveer twee miljoen op een computer van ongeveer 2 ghz. Heb al wat geoptimaliseerd en ben redelijk tevreden, maar een factor 5 a 10 sneller kan misschien nog wel denk ik. Nu nog wat goede zoekheuristieken. Op diepte vijf loopt het controleren van alle mogelijkheden behoorlijk uit de hand, hoe snel je algoritme ook is. :)

[ Voor 25% gewijzigd door writser op 30-11-2006 02:18 ]

Onvoorstelbaar!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat bedoel je met een speelveld-test? Als ik alleen kijk naar de toekenning van een score van de plaatsing van een blokje dan doe ik er 14 miljoen per seconde op een 1.93 GHz Athlon XP.

[ Voor 7% gewijzigd door .oisyn op 30-11-2006 02:35 ]

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.


  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Erg netjes. Is dat inclusief het berekenen van het nieuwe veld (dus het daadwerkelijk plaatsen van een blokje en het weghalen van volle lijnen)? Want dat neemt bij mij de meeste tijd in beslag.

[ Voor 5% gewijzigd door writser op 30-11-2006 15:05 ]

Onvoorstelbaar!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat plaatsen en lijnen weghalen kost bij mij geen drol :)

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.


  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
.oisyn schreef op donderdag 30 november 2006 @ 02:35:
Wat bedoel je met een speelveld-test? Als ik alleen kijk naar de toekenning van een score van de plaatsing van een blokje dan doe ik er 14 miljoen per seconde op een 1.93 GHz Athlon XP.
Ah.. 138 clocks per plaatsing, netjes :-)
Nog geen idee hoeveel ik er ga halen, tot nu toe heb ik er alleen tijd voor gehad om in de trein erover te denken :| en ik heb me bedacht dat de manier van de zoekboom snoeien die ik had verzonnen niet gaat werken :'(

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
Hier iemand trouwens al een eigen game-set gemaakt? Mijn AI werkt nu behoorlijk goed met beide test-sets, maar ik zit er over te denken om ook een te proberen met een aantal niet-verbonden blokken zoals:
code:
1
2
3
###   # #   #
       #     #
###   # #     #

ofzoiets. Zou dit eigenlijk wel ooit oplosbaar zijn? Dat moeten er natuurlijk ook nog wel een paar normalere tussen zitten.

.oisyn: In welke taal heb jij het trouwens geschreven?

  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Die laatste twee zijn gewoon verbonden, wat mij betreft. In elk geval kan mijn programma daar wel mee om gaan. Die eerste een kwartslag gedraaid, dat wordt lastig.

@ .oisyn: lijnen plaatsen gaat bij mij ook erg snel, maar verwijderen is wat lastiger omdat er dan weer lege blokjes 'aan het oppervlak' kunnen komen.

[ Voor 32% gewijzigd door writser op 30-11-2006 16:42 ]

Onvoorstelbaar!


  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
writser schreef op donderdag 30 november 2006 @ 16:40:
Die laatste twee zijn gewoon verbonden, wat mij betreft. In elk geval kan mijn programma daar wel mee om gaan. Die eerste een kwartslag gedraaid, dat wordt lastig.

@ .oisyn: lijnen plaatsen gaat bij mij ook erg snel, maar verwijderen is wat lastiger omdat er dan weer lege blokjes 'aan het oppervlak' kunnen komen.
Ja, ze zijn in principe wel verbonden, maar toch creeer je daarmee wel altijd veel gaten waarmee je problemen krijgt. Waarom wordt die eerste een kwartslag gedraaid dan lastig eigenlijk?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Marcj schreef op donderdag 30 november 2006 @ 16:33:
.oisyn: In welke taal heb jij het trouwens geschreven?
In de enige echte taal natuurlijk, C++ ;)

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.


  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
.oisyn schreef op donderdag 30 november 2006 @ 16:58:
[...]


In de enige echte taal natuurlijk, C++ ;)
Ik heb het nu in Java geschreven en is het behoorlijk vlot. Ik zit te twijfelen of het omschrijven naar C(++) echt veel sneller zal gaan. De snelheid valt mij nu tenminste nog reuze mee...

Verwijderd

Marcj schreef op donderdag 30 november 2006 @ 16:33:
Hier iemand trouwens al een eigen game-set gemaakt? Mijn AI werkt nu behoorlijk goed met beide test-sets, maar ik zit er over te denken om ook een te proberen met een aantal niet-verbonden blokken zoals:
code:
1
2
3
###   # #   #
       #     #
###   # #     #

ofzoiets. Zou dit eigenlijk wel ooit oplosbaar zijn? Dat moeten er natuurlijk ook nog wel een paar normalere tussen zitten.

.oisyn: In welke taal heb jij het trouwens geschreven?
Als je een goede AI hebt (dus een genetisch algoritme eraan hangt) dan maakt het eigenlijk niets uit hoe de blokjes eruit zien.

Natuurlijk zijn er blokjes die het lastiger maken, en game sets die onmogelijk (of bijna onmogelijk) uit te spelen zijn. Maar het doel is dan ook niet om een set uit te spelen, maar om met een bepaalde set + game zoveel mogelijk punten te krijgen.

Aangezien iedereen dezelfde set + game krijgt maakt het niets uit hoe moelijk de set is, het is voor iedereen gelijk en degene die de meeste punten kan halen heeft gewonnen.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op donderdag 30 november 2006 @ 17:23:

Als je een goede AI hebt (dus een genetisch algoritme eraan hangt)
Genetische algoritmen zijn heus niet de enige algoritmen die in de AI gebruikt worden hoor :)

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.


  • Marcj
  • Registratie: November 2000
  • Laatst online: 19:26
Verwijderd schreef op donderdag 30 november 2006 @ 17:23:
[...]


Als je een goede AI hebt (dus een genetisch algoritme eraan hangt) dan maakt het eigenlijk niets uit hoe de blokjes eruit zien.

Natuurlijk zijn er blokjes die het lastiger maken, en game sets die onmogelijk (of bijna onmogelijk) uit te spelen zijn. Maar het doel is dan ook niet om een set uit te spelen, maar om met een bepaalde set + game zoveel mogelijk punten te krijgen.

Aangezien iedereen dezelfde set + game krijgt maakt het niets uit hoe moelijk de set is, het is voor iedereen gelijk en degene die de meeste punten kan halen heeft gewonnen.
1) Een goede AI hoeft niet per se een genetisch algoritme te zijn. Dat hangt helemaal van het probleem af
2) Om zoveel mogelijk punten te halen wil je het spel zo lang mogelijk doorspelen natuurlijk...

Verwijderd

:P

Voor dit probleem heb ik gekozen voor een genetisch algoritme dus voor mij is dat in dit geval de enige oplossing.

Sowieso bij zoiets wil je gewoon meerdere mogelijkheden uitproberen, ook al draai je het geheel maar 2x om te kijken welke manier de hoogste score geeft dan heb je in feite al een genetisch algoritme.

Er zijn meer oplossingen als een genetisch algoritme, maar als je alles al geprobeerd hebt kan een genetisch algoritme om de 2 uur vol te maken nooit kwaad.

En trouwens ook behoorlijke besides the point, het gaat er dus om dat de omstandigheden voor iedereen gelijk zijn en het dus geen kwaad kan als er onmogelijke blokken tussen zitten ;)

[ Voor 16% gewijzigd door Verwijderd op 30-11-2006 17:35 ]


  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Het is niet moeilijk om een set met tetris-stenen te maken.
Voorbeeldje:
Pest set
Bevat:
een H vorm
een 'open' vorm (puntjes met tussenruimte)
een schuine balk
een S en een Z stuk (standaard)
een rechte balk (4 blokjes)
een blokje van 2x2
een L stuk en het spiegelbeeld daarvan (standaard stenen)
een T stuk (standaard)
Direct in validator gezet

Bezoek eens een willekeurige pagina


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:22

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op donderdag 30 november 2006 @ 17:34:
Sowieso bij zoiets wil je gewoon meerdere mogelijkheden uitproberen, ook al draai je het geheel maar 2x om te kijken welke manier de hoogste score geeft dan heb je in feite al een genetisch algoritme.
Mja, meerdere keren proberen en daar de beste van kiezen is nog geen genetisch algoritme. Het is wel wat specifieker dan dat (meerdere generaties, oplossingen combineren dmv mutation en crossover, etc.)

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.


Verwijderd

.oisyn schreef op donderdag 30 november 2006 @ 17:45:
[...]

Mja, meerdere keren proberen en daar de beste van kiezen is nog geen genetisch algoritme. Het is wel wat specifieker dan dat (meerdere generaties, oplossingen combineren dmv mutation en crossover, etc.)
True, ik dacht eigenlijk aan een evolutionair algoritme wat het dan wel is.

Een genetisch algoritme is wel een evolutionair algoritme, maar een evolutionair algoritme hoeft geen genetisch algoritme te zijn natuurlijk.

Zat ff in de war ermee ;)

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:03

Creepy

Tactical Espionage Splatterer

Ik heb de linux checker van Soultaker gebruikt om een quick-and-dirty webchecker te maken. Deze is te vinden op http://bosselaar.net/got/contest/checker.php.

Zet alle 0-9.txt, game.txt en een output.txt in een ZIP file. Upload the zip en gaan. Let erop dat er in de ZIP puur en alleen deze files staan en geen directories. Na uploaden wordt de zaak uitgepakt en indien er een output.txt inzit (lowercase!) wordt het zaakje gecheckt.

"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!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ik ga misschien ook wel kijken hoe ver ik kan komen, het lijkt me erg leuk om een oplossing in haskell te schrijven, omdat ik de taal echt superleuk vindt maar er nog niet zo veel ervaring mee heb. Als ik iets heb houd ik jullie op de hoogte!

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
:) ik heb allemaal ideeën, om de AI op te lossen, en wil deze proberen, zo zit ik te denken aan een "lees 20 tekens vooruit, en los elke keer 4 rijen tegelijkertijd op"-AI om maximale aantal punten te houden, maar waar ik mee steek op dit moment is een mooi makkelijk rooster maken in VB :P de AI is meer een probleem voor mij, maar netjes (visueel) bij houden waar alles staat is een probleem voor VB, :P

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Ik begin met mijn BFPAS vorderingen te maken, zo kom ik nu al tot 1.000 blokjes. (daarna is de maximale execution tijd van 60 seconden overschreden).

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • learn_more
  • Registratie: November 2005
  • Niet online
EdwinG schreef op zondag 03 december 2006 @ 17:48:
Ik begin met mijn BFPAS vorderingen te maken, zo kom ik nu al tot 1.000 blokjes. (daarna is de maximale execution tijd van 60 seconden overschreden).
eigen server of ergens online gehost?

als t een eigen server is dan kan je vast wel de max execution time aanpassen ;)

Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
Lokaal draaiend script natuurlijk :) Ja, de tijd pas ik ook wel aan, maar om een indruk te krijgen wat mijn script doet, is het niet nodig om heel lang te draaien.
(ik kwam tot 1884 blokjes)

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
:) nu vraag ik me toch af hoe jullie allemaal de posities van de blokejs bij houden in een rooster, wat is daar de mooiste manier voor denken jullie?

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 20:53
1 van de moeilijkheden in deze contest is het bedenken van een efficiënte manier om alle benodigde informatie op te slaan te de berekeningen uit te voeren.
Ik gooi het in 1 array, anderen misschien in een multidimensionale array, welke beter is hangt onder andere af van hoe je er zelf gebruik van kunt maken.

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

offtopic:
Pff, wat een drama. Ik ben begonnen in de enigste echtste taal C (MinGW). Ik had dat nog op school nog gehad, dus ik dacht: "Dat lukt vast nog wel." Not... ;(
Maar goed, ik denk dat ik genoeg ideeën heb voor de AI. Inmiddels kan ik de blokjes inlezen, in een array knikkeren en iets met structs en pointers. En zowaar ook nog iets wat op recursief lijkt zonder read-errors en "Deze toepassing is vroegtijdig en zeer onverwacht beeindigd"-meldingen.
Als het meezit, kan ik in dit tempo ongeveer begin januari een blokje laten vallen, dus die deadline haal ik nog wel (op mijn Pentium I 120MHz 32MB geheugen met Windows98 SE }:O )

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

  • Silentuz
  • Registratie: Mei 2004
  • Laatst online: 14-03 12:37

Silentuz

-_-

Ben het topic nu al een tijdje aan het volgen, en hulde voor de mensen die meedoen, en die het georganiseerd hebben! _O_.

Helaas ben ik zelf nog maar een 1e jaar studentje INF, en heb alleen programmeren 1 (vrij basic java programmeren) achter de rug. Volgend jaar zit er wel wat meer ervaring in, en als er dan nog een gelijksoortige contest word gehouden, doe ik zeker mee :)

(had een prijs* gewonnen voor de beste AI (perfect, en kortst) voor boter kaas en eieren ;) )

prijs= eeuwige roem :P

Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 11:32
Je kan hier toch ook prima aan meedoen dan? Kijk, winnen doe je toch niet. Ik ook niet :P. Maar het is wel een geinige opdracht. Ik houd een competitie met wat vrienden. De prijs: ook eeuwige roem.

[ Voor 7% gewijzigd door writser op 06-12-2006 00:20 ]

Onvoorstelbaar!


Acties:
  • 0 Henk 'm!

  • Silentuz
  • Registratie: Mei 2004
  • Laatst online: 14-03 12:37

Silentuz

-_-

Kan wel, en ik zou er zeker veel van leren, maar naast mn studie en mn werk heb ik niet veel tijd over :X

misschien zet ik nog wel iets op, wie weet :P

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Silentuz schreef op dinsdag 05 december 2006 @ 18:49:
Helaas ben ik zelf nog maar een 1e jaar studentje INF, en heb alleen programmeren 1 (vrij basic java programmeren) achter de rug. Volgend jaar zit er wel wat meer ervaring in, en als er dan nog een gelijksoortige contest word gehouden, doe ik zeker mee :)
Pfff, laat je niet van de wijs brengen door dat gebluf van de professionals ;)

Als je boter kaas en eieren hebt kunnen programmeren in Java, lukt dit je ook wel ;)

Acties:
  • 0 Henk 'm!

  • Grub
  • Registratie: Juni 1999
  • Laatst online: 11-02-2024
hey gasten, ik ben ook ff wat in mekaar geklust, en ik vroeg me af of er iemand een valide output.txt heeft bij een set. Tot nu toe ben ik er maar 1 tegengekomen van .oisyn en voor testset1 en die komt boven regel 40 uit na 699 drops.

Testsets en random generated game.txt's heb ik al genoeg gezien, maar een game.txt met 100.000 instructies dat is pas een takkewerk.

Ik wil alleen even mn validator valideren. De validatie van mijn validator valideer ik met een validerende validator die valideert op internet. Maar ik moet dus wel ff iets hebben dat te valideren is...

bedankt!!

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20:28
.oisyn heeft hier al een oplossing voor test set 1 gepost.

Acties:
  • 0 Henk 'm!

  • Grub
  • Registratie: Juni 1999
  • Laatst online: 11-02-2024
Bedankt SoulTaker.

Volgens mij heb ik hier een issue dat niet in TS staat... Als ik 1 blokje drop, en die maakt 2 rows vol, maar geen opeenvolgende rows, telt het dan als een "double", oftwel 150 punten?

Ik had aangenomen van niet, maar als ik mijn validator output vergelijk met die van anderen (onder andere Rob III), dan heb ik het vermoeden dat zij dat wel als een "double" zien.

Voor de duidelijkheid, ik drop nu een blokje in column 0:
1111
1
1
1

011111111111111
001111111111111
011111111111111

Telt dit als 2x 50 of als 1x 150?

Het lijkt mij dat je genialer bent als je met een lastig blokje zoals ik in dit voorbeeld drop, toch alle opeenvolgende rows weet te clearen en naar mijn nederige mening moet dit dan ook beloont worden met meer punten.

[ Voor 17% gewijzigd door Grub op 06-12-2006 18:03 ]


Acties:
  • 0 Henk 'm!

  • Grub
  • Registratie: Juni 1999
  • Laatst online: 11-02-2024
We hebben het dus over een hurdle:

http://www.tetrisconcept....ne_clear#Hurdle_.2F_Split

Acties:
  • 0 Henk 'm!

  • DroogKloot
  • Registratie: Februari 2001
  • Niet online

DroogKloot

depenisvanjezus

Grub schreef:
Volgens mij heb ik hier een issue dat niet in TS staat... Als ik 1 blokje drop, en die maakt 2 rows vol, maar geen opeenvolgende rows, telt het dan als een "double", oftwel 150 punten?
Ik zou aan de hand hiervan...
Uiteraard gelden de punten voor het wegspelen van lijnen slechts wanneer je het genoemde aantal lijnen tegelijk wegspeelt (...)
...zeggen dat het er alleen om gaat *hoeveel* lijnen je per move wegspeelt, niet of ze aangrenzend zijn.

[ Voor 64% gewijzigd door DroogKloot op 06-12-2006 18:24 ]


Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

Topicstarter
Het gaat inderdaad om het tegelijk wegspelen. Het gaat er dus om dat je met één blokje 1 tot 5 regels wegspeelt. Hoe meer tegelijk, hoe meer punten je scoort. Of ze nu aansluiten of niet is daarbij niet relevant. :)

[ Voor 15% gewijzigd door NMe op 06-12-2006 18:53 ]

'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!

  • MiezeL
  • Registratie: Augustus 2002
  • Laatst online: 04-03 12:39
Woei, ben ook maar begonnen aan dit project. Na een debug visualizer en de basis opgezet te hebben kan ik nu zo'n beetje beginnen aan het droppen etc.

Best lastig iets goeds te verzinnen:D

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Woei, ja ben ook begonnen, mooie inleiding tot een nieuwe programmeertaal dacht ik zo, :P om het me nog maar is lastiger te maken :) maar ben nu bezig met het visuele gedeelte zodat ik kan zien wat er gebeurt, daarna maar is een keer een AI maken :)

~ Mijn prog blog!


  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
En ik ook :)

Ik heb vanaf het begin meegelezen en zelfs al wat code getyped, ben nu bezig met het droppen. Spannend!!

Acties:
  • 0 Henk 'm!

  • Grub
  • Registratie: Juni 1999
  • Laatst online: 11-02-2024
Mijn parser doet die 6MB file van Oisyn. in 800 milliseconden! Een gui is mijn volgende stap, en dan pas ga ik aan het uiteindelijke doel, de AI beginnen.

Acties:
  • 0 Henk 'm!

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 09:11
Tegen beter weten in ben ik toch ook maar begonnen. Ik hoop dat ik op tijd iets afkrijg :P

Acties:
  • 0 Henk 'm!

  • IntToStr
  • Registratie: December 2003
  • Laatst online: 20:27
Misschien dat ik ook nog een poging ga wagen...

Het lijkt me in ieder geval essentieel dat je een goede validator hebt om te testen, maar ook om (gedeeltelijk) te gebruiken in je algoritme. Door het maken van de validator loop je mogelijk ook meteen tegen een aantal probleempunten aan die je anders misschien lastiger kunt oplossen. Geeft ook een beter inzicht in het probleem.

Het ziet er naar uit dat het gaat om wie het efficientste lookaheads kan gebruiken...

Acties:
  • 0 Henk 'm!

  • Aloys
  • Registratie: Juni 2005
  • Niet online
kan iemand mij vertellen hoe ik een simpel algoritme kan maken?... Ik heb zelf al heel lang nagedacht maar er komt geen idee bovendrijven. Ik vraag niet je eigen idee prijs te geven, maar mij een stapje in de goede richting te helpen (mij apart ben ik na een 10tal drops af). Zodat ik ook iets kan bouwen.

(Of is deze vraag niet toegestaan?)
Pagina: 1 ... 7 ... 10 Laatste

Dit topic is gesloten.

Let op:
Er worden nogal wat vragen gesteld die tot nu toe allemaal in de TS worden beantwoord. Lees voor je je vraag stelt dus érg aandachtig de TS door want de kans is groot dat het er gewoon in staat. Uiteraard ben je vrij vragen te stellen, maar kijk dan niet raar op als je een "Zie TS" antwoord krijgt.

De kunst van deze contest is onder andere het goed lezen en interpreteren van de gegevens die je gekregen hebt.