486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22
Verwijderd
Ik betwijfel of het makkelijker zou worden, sterker nog - een goed AI algoritme zal veeel meer stappen vooruit kunnen berekenen.Verwijderd schreef op woensdag 15 november 2006 @ 20:56:
@rvanleeuw. :
Om het wat moeilijker te maken lijkt me.
Als die wel naar beneden zouden vallen zouden er snel meer lijnen gevuld worden wat het geheel iets (maar niet veel) eenvoudiger maakt.
Mischien dat de modjes die deze contest bedacht hebben, hier antwoord op kunnen geven?
stel je voor dat ook nog is aangegeven word welke vorm het volgende blokje heeft... reken er maar op los
[ Voor 9% gewijzigd door Verwijderd op 15-11-2006 22:58 ]
Dat kan kloppenPiepPiep schreef op woensdag 15 november 2006 @ 22:54:
[...]
Dat staat in de start topic, ik zie in het filmpje 20 regels hoog volgens mij
Scherp gezien
Staar je trouwens niet blind op dat filmpje, want dat suggereert ook dat een blokje niet verder naar links/rechts kan in het bovenste vak. Dat mag volgens de regels wel, maar heeft weinig nut als je het blokje daarna niet netjes in het playfield dropped
Bij deze een 2e filmpje dat wat beter illustreert hoe het volgens de specs moet werken, maar ook voor deze geldt weer: dit ding is puur een test-GUI voor de achterliggende validator en is zelf nog een W.I.P. De enige specs die je dient aan te houden zijn die uit de TS en dus niet wat je van anderen hoort en/of ziet. Ook niet van ons (en dan doel ik dus op posts als deze waar we dingen laten zien die nog niet af zijn e.d.)
Dat zal vast; maar de regels van de contest liggen vastVerwijderd schreef op woensdag 15 november 2006 @ 22:56:
Ik betwijfel of het makkelijker zou worden, sterker nog - een goed AI algoritme zal veeel meer stappen vooruit kunnen berekenen.
De hele sequence van blokjes is bekend; we leveren je een game.txt (in de test-sets tref je er al 2 aan, maar dus ook tijdens de contest zélf als we de entries allemaal gaan "testen") en die kun je van voor naar achteren en terug helemaal "doorrekenen" als je dat leuk vindt voordat je ook maar 1 steen in het veld droppedVerwijderd schreef op woensdag 15 november 2006 @ 22:56:
stel je voor dat ook nog is aangegeven word welke vorm het volgende blokje heeft... reken er maar op los
[ Voor 80% gewijzigd door RobIII op 15-11-2006 23:19 ]
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
Daar zijn we nog niet over uit. Wat mij betreft niet. De regels liggen er en een deel van de kunst van deze contest is gewoon je aan de regels houden. Die zijn echt niet zo complex en een validator heb je natuurlijk zelf ook zo gebouwd. Ook omdat mensen onderling resultaten tussentijds (met de test-sets die we je gegeven hebben, of eigen gegenereerde sets met blokken en moves) kunnen vergelijken moet er uiteindelijk juist iets uit komen waar iedereen over heeft meegedacht.phsmit schreef op woensdag 15 november 2006 @ 23:07:
Kan de validatieparser misschien vantevoren vrijgegeven worden zodat we enerzijds dat ding goed kunnen testen en anderzijds we een makkelijke manier hebben om onze eigen output te valideren?
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
Inderdaad, ik bouw voor m'n werk webapplicaties met Ruby on Rails, maar ik ga echt geen Rails applicatie bouwen hiervoor.DaCoTa schreef op woensdag 15 november 2006 @ 20:59:
[...]
Mijn werk bestaat uit webbased development. Maar dit is geen web-applicatie. Er is geen browser, geen user, niks, alleen file input en file output. De enige input van de gebruiker is de start van het programma. Dat is zo ongeveer de meest standaard console bewerking die er nodig is.* Ergo, dit is niet iets om in een webbased omgeving op te lossen. Net zomin je een webshop niet in commandline omgeving gaat maken.
*) Behalve als je een testversie maakt waarbij je als gebruiker het proces nog wilt sturen of monitoren. Maar ook dan zal de kern van de applicatie een console applicatie zijn.
Waarom beginnen mensen eigenlijk meteen met vragen over dualcore processoren, assembler en complete clusters? Ligt het gemiddelde niveau dan zo veel hoger dan het mijne?
Ik vind het al kunstig van mezelf dat ik net een file met een blokje erin heb ingelezen en deze heb omgezet in een two-dimensional array.
De ontwikkeling van de AI ga ik uitvoeren in PHP, aangezien dit de taal is waar ik de meeste ervaring mee heb. (Afgezien van Nederlands, maar dat programmeerd wat lastig).
Op dit moment voer ik de ontwikkeling web-based uit, zodat ik op eenvoudige manier, via de browser, de werking kan controleren en corrigeren. Als dit werkt zoals ik het wil, zal ik kijken wat noodzakelijk is om de code geschikt te maken voor CLI-uitvoer. (heb ik eigenlijk geen ervaring mee, dus ik hoop dat de verschillen niet al te groot zijn). Mocht ik, op moment dat de webbased verwerking 'af' is, nog genoeg tijd hebben, dan zal ik overwegen de code om te zetten naar VB, waar ik iets minder ervaring mee heb, maar wel een sneller programma mee hoop te creëren.
Het moeilijkste gedeelte van de AI zijn de methodes, niet de preciese code die daarvoor nodig is. Daarom denk ik dat een late omzetting voor mij haalbaar is. Ook met php weet ik qua performance nog lang niet altijd de specifieke opties en trucjes om dit te verbeteren.
Gevolg zal wel zijn dat mijn AI (of eigenlijk AS (artificial Stupidity)) relatief 'lomp' zal worden, ongeacht de uiteindelijke taal.
Taal: php
Versie: 5
Ontwikkel platform: Windows (apache)
En nog wat resultaat: De uitvoer van mijn 'rotatie' script, (testset 1)

Ook met testset2 klopt de uitvoer van de rotatie.
Volgende stap: Tetris spelen, en proberen te achterhalen wat de gedachtengang achter mijn keuzes tijdens het spel is.
Bezoek eens een willekeurige pagina
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| | | |XXXXX X XXXX | |XXXXXXXXXXXX X | | X XXXXXXXXXXX | |XXXXXXXXXXXX X | |XXXX XXXXXXXXX| | XXXXXXXXX XXX | |XXXXXXXXXXXX XX| |XXXXXXXX XXXX | | XXXXX XXXX XX| |XXX XXXXXXXXXXX| |XXXXXXXX XXX | |X XXXXXXXX XXXX| | XXXXXXXXXXXXXX| |XXXXXXXXXXXXXX | |X XXXXXX XXXX | |XXX X XXXXXXXXX| |X XXXXXXXX XXX| |XXXXX XXXXXXXXX| |XXX XXXX XXXXXX| | XX X XXXXXXXXX| |XX XXXXXXXX XXX| |XXXXXXXX XXXXX | |XXXXXXXXX XXXXX| |XXXXXXXXXXXXX X| |XXXXXXXXXX XXXX| |X XXXXXXXXXX X| |X X XXXXXXXXXXX| |XXXXXXXXXXX X| | XXXXXXXXXXXXXX| | X XXXXXXXXXXXX| |XX XXXXX XXXXX| | XXXXXXXXXX XX| | XXXXXXXXXXXX X| |XXXXXXXXXX XX X| | XXXXXXXXXXXXXX| |XXXXXXXXXXXXXX | |X XXXXXXXXXXXXX| |XXXXXXXXXX XXX | | XX XXXXXXX X | +---------------+ |
Mijn eerste tweede game over
[ Voor 48% gewijzigd door DaCoTa op 15-11-2006 23:35 ]
Denk er aan dat tijdens de daadwerkelijke contest de blokjes wel eens flink konden afwijken van de "tetris" blokken die je nu hebt gekregen. In principe zijn we, als organisatie, vrij om in die 5x5 dimensies de meest idiote vormen te makenEdwinG schreef op woensdag 15 november 2006 @ 23:14:
Volgende stap: Tetris spelen, en proberen te achterhalen wat de gedachtengang achter mijn keuzes tijdens het spel is.
Mooi! Dat zien we graag!
Na hoeveel zetten? En met welke set? En heb je de output daarvan? En, niet geheel onbelangrijk, wat was je score en benodigde tijd?
[ Voor 22% gewijzigd door RobIII op 15-11-2006 23:28 ]
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
Of het gemiddelde niveau hoger ligt? Denk het niet, als je kijkt naar de contest zal de groep die meedoet uiteindelijk maar een (klein)deel van de totale PRG bezoekers vormen. En waarschijnlijk het deel dat echt geïnteresserd is in programmeren.M-ThijZ schreef op woensdag 15 november 2006 @ 23:14:
Waarom beginnen mensen eigenlijk meteen met vragen over dualcore processoren, assembler en complete clusters? Ligt het gemiddelde niveau dan zo veel hoger dan het mijne?
Het inlezen van een file naar een array vind ik ondertussen een vrij 'standaard' handeling, al werk ik er pas sinds kort serieus mee. Zelfs van php zijn veel functies nog 'nieuw' voor mij. Zo was ik laatst een leuk scriptje aan het schrijven, omdat ik een bepaalde string wilde omdraaien, totdat iemand zij dat 'strrev' ook gewoon bestond.
// Voor de contest:
Aangezien ik zelf wil kunnen testen wat mijn score is, zal ik daar ook een scrip voor schrijven, waarchijnlijk eveneens in php. tzt (ergens begin december gok ik) zal dit script online komen, zodat het door iedereen gebruikt en/of gedownload kan worden. Voordeel van een webbased taal
Bezoek eens een willekeurige pagina
De uiteindelijke keuzes waarschijnlijk niet, maar toch zal het idee erachter steeds hetzelfde zijn, volle rijen maken, zorgen dat er niet te hoog wordt gebouwd, gaten opvullen, voorkomen dat er nieuwe gaten ontstaan e.d.RobIII schreef op woensdag 15 november 2006 @ 23:23:
Denk er aan dat tijdens de daadwerkelijke contest de blokjes wel eens flink konden afwijken van de "tetris" blokken die je nu hebt gekregen. In principe zijn we, als organisatie, vrij om in die 5x5 dimensies de meest idiote vormen te makenEn dan gaat je "tetris"-manier van denken lang niet altijd op
Bezoek eens een willekeurige pagina
Ik had nog niet de volle regel verwijder code. Nu heb ik die wel en met de meest simpele scoring (hoogste blokje is de score, hoe hoger hoe slechter) kom ik op 239 iteraties. Punten heb ik nog niet, nog geen output, tijd is < 1 sec, met veel output. Heb bovenstaande even aangepast naar de 239 iteraties... Testset 1, met testset 2 kom ik tot 95 iteratiesRobIII schreef op woensdag 15 november 2006 @ 23:23:
Mooi! Dat zien we graag!
Na hoeveel zetten? En met welke set? En heb je de output daarvan? En, niet geheel onbelangrijk, wat was je score en benodigde tijd?
[ Voor 4% gewijzigd door DaCoTa op 15-11-2006 23:35 ]
Met mijn code zal ik op zijn vroegst over een paar weken mee beginnen, als ik de AI een beetje heb uitgedokterd.
Mijn AI zal, voor zover ik er over heb gebrainstormd, uitgaan van het volgende beginsel: Zoveel mogelijk zorgen dat een groot blok, die 5 rijen wegrost. (Als die in de set aanwezig is natuurlijk)
Mijn idee is de blokken een of ander gewicht meegeven aan de hand van van het aantal weg te bonken rijen.
Dan nog iets met gaten en de hoogte waarop je bezig bent. Als ik bijvoorbeeld op rij 10 ben, hoef ik nog niet wakker te liggen dat het superduperblok nog niet aanwezig is, rond rij 20 moet dat ding het idee maar laten varen en met een rijtje minder genoegen moeten nemen. Vanaf rond rij 30 zal het wel dweilen met de kraan open worden.
Dan is er nog het gegeven dat je met een set onbekende prut qua vorm bezig bent, dus die triggers zal ik dan per x-aantal (100 ofzo) moeten evalueren op succes en eventueel bijwerken.
Ik verwacht ook niet, dat ik meer dan 5 stukjes vooruit hoef te gaan "denken". Verder lijkt de tijd me absoluut geen probleem. Ongeveer 14 blokken per seconde, dat is een halve encyclopedie aan instructies die in die tijd uitgevoerd kunnen worden.
Ik had een gedachtenkronkel het in C64 assembly te gaan doen, om te bewijzen dat het allemaal zeer ruime specs zijn, maar dat mag helaas niet volgens de regels qua emulatie (CCS64) en files (De input.txt kan nog wel op disk device 8, maar output.txt naar device 9 wordt al groter dan op een floppy past (170KB) Om 14 blokken per seconde met een CPU snelheid van 1 MHz weg te werken, kan de C64 grofweg 20000 instructies aan AI en IO per blok verstoken.
Zo, en nu ga ik weer verder dromen.
500 "The server made a boo boo"
De volgende code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| block = Block.new(9) puts "==[default]==" puts block.to_s puts "\n==[rotate ccw]==" block.rotate_ccw! puts block.to_s puts "\n==[rotate cw (back to default)]==" block.rotate_cw! puts block.to_s puts "\n==[rotate 3x cw (same as ccw)]==" 3.times { block.rotate_cw! } puts block.to_s puts "\n==[rotate 2x cw (one rotation after default)]==" 2.times { block.rotate_cw! } puts block.to_s |
Geeft mij de volgende uitvoer:
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
27
28
29
| ==[default]== 111X 0001 0001 0001 ==[rotate ccw]== X111 1000 1000 1000 ==[rotate cw (back to default)]== 111X 0001 0001 0001 ==[rotate 3x cw (same as ccw)]== X111 1000 1000 1000 ==[rotate 2x cw (one rotation after default)]== 0001 0001 0001 111X |
In ieder geval al iets om mee te beginnen. Nu moet ik eens gaan bedenken hoe ik deze blokjes in een grid ga laten 'vallen', waarbij er met collision detection rekening wordt gehouden.
*) Het enige is dat de 'intelligentie' volledig afwezig is, waardoor elke zet precies even hoog gewaardeerd wordt en alle blokjes gewoon helemaal links in beeld naar beneden geplempt worden
[edit]
Ohja, en ik heb ook geen output
[ Voor 5% gewijzigd door eamelink op 16-11-2006 01:00 ]
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| (145) Piece #3 Blok 3 rot 0 op 0 #XX XXXXXXXX # #XXXXXXX XXXXXXX# #XXX XXXXXXXXXXX# #XXXXXXXXXXXXXXX# # XXX XXXXXXXX# #XXXXXXXX XX X# #XXXXXXXXXXXXXXX# #XXXXXX XXXX XXX# #XXXXXXXXXXXXXXX# #X XXXXXXXXXXXXX# #XXXX XXXXXXXXX# # XXXXXXXXXXXXX # #XX XXXXXXXXXXXX# #XXXXXXX XXXXXXX# #XXXXXXXXXX XXXX# #XXXX XXXXXXXXXX# #XXXXXXXXXXXXXXX# # XXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXX XXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# # XXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #X XXXXXXXXXXXXX# #XXXXX XXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# #XXXXXXXXXXXXXXX# ################# (146) Piece #0 GAME OVER |
Disclaimer: output is waarschijnlijk nog niet foutloos!
[ Voor 3% gewijzigd door zwippie op 16-11-2006 01:02 ]
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.
1
2
3
4
5
6
7
8
9
10
| | | | | | XX X XXX | |XX XXXXX XXXXXX| |XXXXXXXXXXXXX X| |XXXXXXXXX XXXXX| | XXXXXXXXXXXXXX| |XXXXXXXXXXX XXX| |XX XXXXXXXXXXXX| +---------------+ 100000 |
Doet er 51 seconden over, singlethreaded op een Amd X2 4600+.
[ Voor 9% gewijzigd door DaCoTa op 16-11-2006 01:38 ]
Verwijderd
Is daar behoefte aan denk je? De meeste mensen zullen toch zelf iets moeten schrijven gezien een groot deel van het systeem gelijk is voor de parser en de AI (de administratie dus).EdwinG schreef op woensdag 15 november 2006 @ 23:29:
// Voor de contest:
Aangezien ik zelf wil kunnen testen wat mijn score is, zal ik daar ook een scrip voor schrijven, waarchijnlijk eveneens in php. tzt (ergens begin december gok ik) zal dit script online komen, zodat het door iedereen gebruikt en/of gedownload kan worden. Voordeel van een webbased taal
Ik zou eventueel mijn huidige script al wel online beschikbaar kunnen maken, maar ik kan het me voorstellen dat dat toch een beetje teveel helpen van anderen is en veel mensen zouden voor zichzelf toch ook zoiets willen maken.
heb het nu voor elkaar om:
- alle file'tjes in te lezen
- die dingen in een 5x5 matrix te zetten, en op de plek waar geen data, nullen neer te pleuren.
- Al die objecten ook draaien, zodat ik nu 40 objecten heb.
Ach, ik kan er mooi van leren, en dat is het belangrijkste!
Memories of yesterday, will grow, but never die
Ik wil hier graag, ondanks Creepy in "Programming Contest Nieuwe Stijl: Contes...", nog even op reageren. Die sneren richting de crew lijken me nou niet echt nodig. We hebben een hoop tijd en moeite in de contest gestoken, en we gaan er nog veel meer tijd en moeite in steken. We zijn ook zeker niet de lulligsten en wanneer er iets massaal fout gaat of fout dreigt te gaan zullen we gewoon ingrijpen of de regels aanpassen. In een uitzonderlijk geval zouden we zelfs voor één enkele entry de regels iets kunnen buigen (als in: het toch toestaan van webapps).Verwijderd schreef op woensdag 15 november 2006 @ 21:14:
Prima.
Bedankt dat er nog iemand is in het rood die wel weet hoe hij antwoord moet geven
We zijn in deze contest bewust vaag over sommige minder cruciale details, domweg omdat we graag zien dat jullie je eigen draai eraan geven. Een briljante webbased oplossing zal echt niet geweigerd worden, al is het natuurlijk niet helemaal de bedoeling.
Dan wil ik als laatste met klem vragen om niet meer op deze manier te zeuren richting crew of users. Als je klachten hebt over users dan kun je dat melden via een topic report, als je klachten hebt over een moderator uit dit forum dan kun je daarvoor bij mij aankloppen, en als je klachten hebt over mij dan kun je bij de bemiddelaar terecht (zie onze FAQ). Het is in elk geval niet de bedoeling om in dit topic de sfeer te verzieken.
'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.
Voor een simpele strategie doe je het volgens mij zo slecht nog nietzwippie schreef op donderdag 16 november 2006 @ 01:00:
Hier mijn eerste output:
code:Ik zal mijn strategie niet verklappen, behalve dan dat die heel simpel is.
1 2 3 4 (145) Piece #3 Blok 3 rot 0 op 0 (146) Piece #0 GAME OVEREr worden nog geen lijnen weggehaald zoals je ziet, maar ik zie er wel een hele hoop!
edit:
Disclaimer: output is waarschijnlijk nog niet foutloos!
Mooie tijd, en alle blokjes gedropt dus \o/DaCoTa schreef op donderdag 16 november 2006 @ 01:02:
Ok, ik kan niet achterblijven dan... Testset 1... 100.000 iteraties
code:
1 2 3 4 5 6 7 8 9 10 | | | | | XX X XXX | |XX XXXXX XXXXXX| |XXXXXXXXXXXXX X| |XXXXXXXXX XXXXX| | XXXXXXXXXXXXXX| |XXXXXXXXXXX XXX| |XX XXXXXXXXXXXX| +---------------+ 100000
Doet er 51 seconden over, singlethreaded op een Amd X2 4600+.
"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
Om hier even op terug te komen, buiten het feit dat dit niet in de TS vermeld staat.Creepy schreef op woensdag 15 november 2006 @ 17:30:
[...]
Je brengt me meteen wel op een idee: Het is dus niet toegestaan om files weg te schrijven anders dan output.txt
Is het wel toegestaan om bij de exe bestanden te leveren die in de loop van de uitvoer wijzigen.
Ik heb nog geen idee hoe, maar ik had het idee om een bestand te hebben met "strategiën" en dat die uitbreidbaar is. Geen idee hoe dus, maar ik zou die optie nu nog even open willen houden.
30Drie Web Design & IT Consultancy | Raven Consultancy Services
Met dit soort tijden is het prima mogelijk om meerdere keren te proberen met andere scoringsfuncties om het optimale resultaat te verkrijgen. Je hebt 120 minuten en op deze manier kun je dus mbv een genetisch algoritme een "optimale" scoringsfunctie bepalen en net voor de 2 uur om zijn het beste resultaat wegschrijvenDaCoTa schreef op donderdag 16 november 2006 @ 01:02:
Doet er 51 seconden over, singlethreaded op een Amd X2 4600+.
Ik ben gisteravond overigens ook maar begonnen en kan nu net blokjes inlezen, roteren, vergelijken en afdrukken op de console. Hopelijk vind ik van de week nog wat tijd, dan kan ik de eerste resultaten posten.
Wat voor score haalde je eigenlijk op die testset?
[ Voor 21% gewijzigd door Gerco op 16-11-2006 09:06 ]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Ik heb nog geen puntentelling ingebouwdGerco schreef op donderdag 16 november 2006 @ 09:04:
[...]
Wat voor score haalde je eigenlijk op die testset?
Voor testset 1 kom ik overigens op de volgende aantallen mogelijkheden uit:
1
2
3
4
5
6
7
8
9
10
| 0: 52 1: 54 2: 26 3: 52 4: 52 5: 52 6: 13 7: 52 8: 26 9: 54 |
Bij de tweede testset is het een stuk lager, met gemiddeld 34,9. Maar testset 2 is toch echt een stuk lastiger
[ Voor 46% gewijzigd door DaCoTa op 16-11-2006 09:13 ]
Verwijderd
Ik heb hier inderdaad ook aan zitten denken en het is nog wel een idee wat ik misschien uit wil werken en gebruiken. Dus een goede vraagMrSleeves schreef op donderdag 16 november 2006 @ 08:48:
Om hier even op terug te komen, buiten het feit dat dit niet in de TS vermeld staat.
Is het wel toegestaan om bij de exe bestanden te leveren die in de loop van de uitvoer wijzigen.
Ik heb nog geen idee hoe, maar ik had het idee om een bestand te hebben met "strategiën" en dat die uitbreidbaar is. Geen idee hoe dus, maar ik zou die optie nu nog even open willen houden.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Moet zelf nog beginnen aan het geheel (heb al wel wat plannen in mijn hoofd zitten), en zat te denken aan een Python programma (heb ik ooit eens geleerd voor een afstudeeropdracht en verder nooit meer gebruikt, maar de leercurve was vrij laag, naar ik mij herinner).
Wat ik met de GUI doe, weet ik nog niet (waarschijnlijk Java of C#). We kijken wel.
Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290
great minds think alikeRobIII schreef op woensdag 15 november 2006 @ 21:18:
[...]
Een matrix?
Nee, het eerste wat ik doe bij het inlezen van de blockdefenities is het hele ding padden tot het 5x5 is, vervolgens weggooien van alle \r en \n's en vandaaruit voer ik in een string van 25 tekens lang alle rotaties uit(En nee, dat lieg ik niet
)
Translaties?
Ik werk met offsets
Javascript heeft geen directe I/O-mogelijkheden. Ik zat te denken aan een Ajax-oplossing met een javascript-based GUI en serverside logica maar ik lees net dat webapplicaties niet zijn toegestaanfrickY schreef op woensdag 15 november 2006 @ 09:46:
Vrees dat deze contest in eerste instantie vreselijk onderschat zal wordenHeb er even over zitten nadenken hoe je dit zou kunnen aanpakken maar het is echt aardig complex.
Crisp gaat weer voor zijn favo taal hoop ik? Javascript
Nou ja, misschien maak ik wel gewoon voor de lol een visuele gui waarmee je resultaten webbased kan laten 'naspelen' door je textfiles te uploaden
Intentionally left blank
Zoals je ziet bij serie9, is alles goed gedraaid en dergelijke, maar de breedte van mijn spaties is te smal, om alles goed te kunnen uitlijnen onder elkaar. Ik heb het geprogrammeerd in c#, en het betreft een listbox. Weet iemand een setting die anders moet zetten, of moet ik een ander lettertype pakken ofzo? Ik heb ervoor al gezocht op internet, maar krijg niet echt veel resultaten
Memories of yesterday, will grow, but never die
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
hartstikke bedankt! ik kan weer verder!Gerco schreef op donderdag 16 november 2006 @ 11:06:
@Bintje: Een monospaced font (Courier New bijv.) pakken en je probleem is opgelost.
Memories of yesterday, will grow, but never die
Als je via de Rhino shell of via de WSH (cscript.exe) een werkende Javascript implementatie kan maken dan is dat wat mij betreft ook primacrisp schreef op donderdag 16 november 2006 @ 10:24:
[...]
Javascript heeft geen directe I/O-mogelijkheden. Ik zat te denken aan een Ajax-oplossing met een javascript-based GUI en serverside logica maar ik lees net dat webapplicaties niet zijn toegestaan
Nou ja, misschien maak ik wel gewoon voor de lol een visuele gui waarmee je resultaten webbased kan laten 'naspelen' door je textfiles te uploaden
"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
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| | [][] [][][][][] | |[][][][][] [][][] [][][][][]| |[][][][][][][][][][][][] []| | [][][][][][][][][][][][][][]| | [][][][][][][][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][][][] [][][][][][]| |[][][][][][][][][][][] [][]| |[][][][][][][][][] [][][][]| |[][][][][][] [][][][][][] []| |[][][][][][][][][] [][][][][]| |[][][][][][][] [][][][][][][]| |[][] [][][][][][][][][][][][]| |[][] [][][][][][] [][][][]| |[][][] [][][][][] [][][][]| |[][][][][][][][][][][][][] []| |[][][][] [][][][][][][][][][]| | [][][][][][][][][][][] [][]| |[][][][][][][][] [][][] [][]| |[][][][][][] [][][][][][][][]| |[][][][][][][][][][][] [][][]| |[][][] [][][][][][][][][][][]| |[][] [][][][][][][] [][][][]| |[][][][][][][] [][][][][][][]| |[][] [] [][][][][][][][] []| |[][] [] [][] [][][][][][][]| |[][] [] [][][][][][][] [][]| |[][][][] [][][][][][][][][][]| | [][] [][][][][][][][][][][]| |[][][][][] [][] [] [][][][]| | [][][][][][][] [][][][][][]| |[][][][][][][][][][][][] [][]| | [][][][][][][][][][] [][][]| | [] [][][][][][] [][][][][]| |[][][][][][][][][] [][][][]| |[][][][][][][][][][][] [][][]| |[][][][][][][][][][][][][] []| |[][][][][] [][][][][][][][][]| Blocks: 277 |[][][][][][] [][][][] [][][]| Lines : 35 |[][][][] [][][][][][][][][][]| Points: 1750 +------------------------------+ 39 40 39 40 40 40 39 39 39 40 38 40 40 39 39 ERROR: GameOver! |
Het algo kijkt maar naar 1 blok per keer en is nogal dom. Maar nu het framework af is kan ik een goed algo implementeren
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.
Mwa, een AI in javascript zie ik niet zo zitten, daar zijn andere talen beter geschikt voorCreepy schreef op donderdag 16 november 2006 @ 11:22:
[...]
Als je via de Rhino shell of via de WSH (cscript.exe) een werkende Javascript implementatie kan maken dan is dat wat mij betreft ook prima
Intentionally left blank
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| TURN 377 +---------------------------------------- 11 |......X..................XXXX........... X. 0 |..X.XXXXXX...............XXXX.....XXXXXX XX 1 |..XXX.X..X...............XXXX.....XXX.X. .X 5 |..X...X.................XXXXXXXXXXX..... 6 |XXXX.........XXX......XXX......XXX...... 5 |XXX......XX...XX......X.XX.....X.XX..... 5 |XXX..XXXXX...XXXX.....X..X.......XX..... 6 |XXXXXX......XXX...XXXXXX.X...XXX.X...... 10 |...XXXXXXXXXX.X..XX....X.XXXXX.......... 22 |..XXXX.XXXX..XXXXX...................... 9 |XXXXXXXXXXXXXXX.X.....XXX.XXXXX......... 10 |...XXXXX..X...X.XXXX.XXXXXXXXX.......... 11 |...XXX.X..XXXXX....XXX.X.X.XX........... 12 |...X...XXXXX.............XXX............ 40 |........................................ +---------------------------------------- Score : 530 Discards left : 5 Position : 1 Game over! Block doesn't fit anymore in move 377 of which 0 where ignored. Final score is 2530 |
Vorige edit was 1 met een adnere blockset. Deze is met set 1.
leuk detail: Mijn random implementatie hgeeft een hogere score dan .oisyn
[ Voor 51% gewijzigd door Janoz op 16-11-2006 13:12 . Reden: Tab tekens werken niet in code. Even uitlijnen... ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Hij heeft alleen die 10 punten per blok niet meegerekend, als ik het zo zie.Janoz schreef op donderdag 16 november 2006 @ 12:03:
leuk detail: Mijn random implementatie heeft een hogere score dan .oisyn
En z'n discards ook niet.
[ Voor 5% gewijzigd door MrSleeves op 16-11-2006 12:13 ]
30Drie Web Design & IT Consultancy | Raven Consultancy Services
Waarschijnlijk omdat .oisyn zijn overgebleven DISCARDs niet meetelt (5 x 400 = 2000)Janoz schreef op donderdag 16 november 2006 @ 12:03:
Mijn random ai implementatie doet het niet zo best
code:
1 ...
Vorige edit was 1 met een adnere blockset. Deze is met set 1.
leuk detail: Mijn random implementatie heeft een hogere score dan .oisyn
[ Voor 0% gewijzigd door Zyppora op 16-11-2006 12:14 . Reden: Ben weer niet snel genoeg zie ik ... /me loopt terug naar koffie apparaat ]
Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| GAME OVER! | | | | | | | XX X | | XXX XXX | |XXXXX XX XXXX | |XXXXX XXXX XXXX| |XX XXX X X| |XXXXXXXXXXXX X| |XXXXXXX XXX XXX| |XXXXXXXXX X XXX| |XXXXXXXXXXXXXX | |XXXXXXXXX XXX X| |XXXXX XXXXXXXXX| | XXXX XXXXXX XX| | XXXX XXXXXX XX| | XXXX XXXXX X | | XXXX XX XX XX| | XXXX XXXX XX| | X X XXXX X| | XXXX XXXXXX XX| |XXXXX XXXXXX XX| |XXXXX XXXXXX XX| |XXXXX X XXXX XX| |XX XX X XXXX XX| |XX XX X XXXX X | |XX X XXXXXX XX| |XX XX XXXXXX X | |XX XX XXXXXX XX| |XX XX X XXXX XX| |XX XX XXX XX X| |XX XX XXX XX XX| |XX XX XXXXXX XX| |XXXXX XXXXXX XX| |XXXXX XXXXXX XX| |XXXXXXXX XX XX| |XXXXX XXXXXX XX| |XXX XXXXXXXXX | |XXXXXX XXXXXXXX| |XXXX XXXXXXXXXX| ----------------- |
Hmmm, hij wil voorkomen dat er holes ontstaan in het patroon; maar dat zorgt er nu dus voor dat hij van die lange tunnels maakt die hij weigert af te sluiten tot hij bijna bovenaan is; als de holes niet meer zo boeiend gevonden worden
Moet toch nog wat aan getweakt worden dus
Ik heb helaas nog geen output...
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
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Overigens is het laatste scherm wel degelijk interessant om patronen te ontdekken waardoor het mis gaat; zodat je een lagere score aan een speelveld kan hangen zodra dit patroon begint op te treden
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| | [] | |[][][] [][][][] | |[][][][][][][][][][][][][][] | |[][][][][][][][][][][][][][] | |[][][][][][][][][][][][][][] | |[] [][][][][][] [][][][]| |[] [][][][][][][][] [][][][]| |[] [][][][][] [][] [][][][]| |[] [][][][][][][][][][][][]| |[][][][] [][][][][][][][][][]| |[][][][][][][] [][][][][][][]| |[][][][][][][][][][][] [][][]| |[][][][][][] [][][][][][]| |[][][][][][] [][][][][][]| |[][][][][][][] [][][][][][]| |[][][][][] [] [][][][][][]| |[][][][][] [] [][][][][][]| |[][][][][][][] [][][][][][]| |[][][][] [] [][][][][][][]| |[][][][] [] [][][][][][][]| |[][][][][][] [][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][] [][][][][] []| |[][][][][][][][][][][][] []| |[][][][][][][][][][][][] []| |[] [][][][][][][][][][][][][]| |[][][][][][][][][][][][] [][]| |[][][][][][][][][][][][] [][]| |[][][][][][][][] [][][][][][]| |[][] [][][][][][][][][][][][]| |[][][][][][][][][] [][][][][]| |[][][] [][][][][][][][][][][]| |[][][] [][][][][][][][][][][]| |[][][][][][][][][][] [][][] | |[][][][][][][][][][][][][][] | Blocks: 537 |[][][][][][][][][][] [][][][]| Lines : 100 |[][][][] [][][][][][][][][][]| Points: 6350 +------------------------------+ 39 40 38 38 38 39 39 35 39 38 38 38 38 39 39 |
Nog altijd zonder discards en de blokscore, dus daar komt nog 2000+5370 bovenop
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.
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
Ik kan je vanavond mijn 100.000 iteraties run geven, dan heb je tenminste een echte testsetRobIII schreef op donderdag 16 november 2006 @ 13:21:
De eerste die mij van een output.txt voorziet van minimaal 500 zetten krijgt van mij een score uit de validator en het uiteindelijke veld zoals het overgebleven is voordat de "game-over" exception optreedt
testset 1
[ Voor 14% gewijzigd door .oisyn op 16-11-2006 13:40 ]
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.
Ik zie daarin staan:
*knip* Staat er niet meer in
[ Voor 36% gewijzigd door Dido op 16-11-2006 13:53 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
f5 (als het goed is)
[ Voor 17% gewijzigd door .oisyn op 16-11-2006 13: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.
Status | : | Unexpected end of processing file; no more instructions found |
Score | : | 13730 |
Discards | : | 0 |
Drops | : | 538 |
Moves | : | 2053 |
Rotates | : | 384 |
Instructions processed | : | 3513 |
Execution time | : | 16ms. |
[ Voor 141% gewijzigd door RobIII op 16-11-2006 15:11 ]
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
Verder klopt het dus exact
.edit: ik zou idd niet gameover moeten zijn door die laatste drop, eens kijken wat daar nou mis gaat.
.edit2: ah, rekenfoutje
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| |[][][][] [][][][][] [][][][]| |[][][] [][][][][][][][][][][]| |[][][] [][][][][][][][][][][]| |[][][] [][][][][][][][][][][]| |[][][] [][][][][][][][][][][]| |[][][][][][][][][][][] [][][]| |[][][][][][][][][][][] [][][]| |[][] [][][][][][][][][][][][]| |[] [][][][][][][][][][][][]| |[][][][] [][][][][][][][][][]| |[][][][][][][] [][][][][][][]| |[][][][][][][][][][][] [][][]| |[][][][][][] [][][][][][]| |[][][][][][] [][][][][][]| |[][][][][][][] [][][][][][]| |[][][][][] [] [][][][][][]| |[][][][][] [] [][][][][][]| |[][][][][][][] [][][][][][]| |[][][][] [] [][][][][][][]| |[][][][] [] [][][][][][][]| |[][][][][][] [][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][][] [][][][][][][][]| |[][][][][] [][][][][] []| |[][][][][][][][][][][][] []| |[][][][][][][][][][][][] []| |[] [][][][][][][][][][][][][]| |[][][][][][][][][][][][] [][]| |[][][][][][][][][][][][] [][]| |[][][][][][][][] [][][][][][]| |[][] [][][][][][][][][][][][]| |[][][][][][][][][] [][][][][]| |[][][] [][][][][][][][][][][]| |[][][] [][][][][][][][][][][]| |[][][][][][][][][][] [][][] | Blocks : 699 |[][][][][][][][][][][][][][] | Lines : 137 |[][][][][][][][][][] [][][][]| Discards: 5 |[][][][] [][][][][][][][][][]| Points : 17490 +------------------------------+ 40 40 39 40 40 39 40 40 40 40 40 40 40 40 40 |
f5 op output.txt
Dit is wel een totaalscore, dus inclusief discards en blocks, en ook de block waardoor ik gameover ging tel ik mee.
[ Voor 132% gewijzigd door .oisyn op 16-11-2006 14:09 ]
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| TURN 3514 +---------------------------------------- 1 |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. 1 |XXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX....XXXX. 0 |XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX.XX.XXXXX 2 |XXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.. 2 |.XXXXXXXXXXXXXXXXXX..XXXXXXXXX.XXXXXXX.. 2 |XXXXXXXXXXXXX.XXXXXXXX..XXXXXXXXXXXXXX.. 0 |XXXXXXXXXXXXX........XXXXX..XXXXXXXXXX.X 0 |XXXXXXXXXXXXXXXXXX.........XX.XX.XXXXXXX 1 |XXXXXXX.XXXXXXXXXXXXX......XXXXXXXXXXXX. 2 |XXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. 1 |X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX...XXXX. 1 |XXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX. 1 |XXXXXXXX..X...XXXXXXXXXXXXXXXXXXXXXXXXX. 1 |XXXXXXXXXXX...XXXXXXXXXXXXXXXXXXXXXXXXX. 5 |X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..... +---------------------------------------- Score : 11730 Discards left : 5 Position : 7 |
Maar hier is de discard score nog niet bijgeteldm en bij mij geeft hij ook geen game over, maar een eof en dat wordt niet als een game over uitgevoerd.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Spuit 11
[ Voor 93% gewijzigd door DaCoTa op 16-11-2006 14:08 ]
In kleur is ie trouwens mooier:

[ Voor 41% gewijzigd door .oisyn op 16-11-2006 14:11 ]
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Game over! Block doesn't fit anymore in move 4527 of which 0 where ignored. Final score is 17480 TURN 4528 +---------------------------------------- 0 |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 0 |XXXXXXXXXX.XXXXXXXXXXXXXXXXXXXX.XXXXXXXX 0 |XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX..XXXXXXX 0 |XXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....X 1 |.XXXXXXXXXXXXXXXXXX..XXXXXXXXX.XXXXXXXX. 0 |XXXXXXXXXXXXX.XXXXXXXX..XXXXXXXXXXXXXXXX 0 |XXXXXXXXXXXXX........XXXXX..XXXXXXXXXXXX .X 0 |XXXXXXXXXXXXXXXXXX.........XX.XXXXXXXXXX XX 0 |XXXXXXX.XXXXXXXXXXXXX......XXXXXXXXXXXXX X. 0 |XXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 1 |X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. 0 |XXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXX..XXXXX 0 |XXXXXXXX..X...XXXXXXXXXXXXXXXXXXXXXXXXXX 0 |XXXXXXXXXXX...XXXXXXXXXXXXXXXXXXXXXXXXXX 0 |X..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +---------------------------------------- Score : 17480 Discards left : 5 Position : 7 |
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Alleen komt er in mijn post om een of andere reden een boel whitespace?
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
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Dan is Rob fout bezig..oisyn schreef op donderdag 16 november 2006 @ 14:08:
DaCoTa: ik telde de gameover block niet mee, RobIII blijkbaar wel.
'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.
Zet dat even in de TS en pas je validator aanRobIII schreef op woensdag 15 november 2006 @ 05:53:
Tuurlijk niet. Blokje valt buiten het veld = ongeldig = game-over.
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.
Voor -NMe-
Jaja... ruhig
Wordt aan gewerkt... eerst effe uitpuzzelen waar die whitespace in mijn post vandaan komt
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
[ot][norml][/norml] tags eromheen zetten de volgende keer.RobIII schreef op donderdag 16 november 2006 @ 14:24:
Alleen komt er in mijn post om een of andere reden een boel whitespace?
'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.
"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

Echt een tijd zitten staren en vergelijken voordat ik bedacht dat Janoz een validator-output neerzette voor de output van .oisyn

Was er echt van overtuigd dat jullie AI tot identieke resultaten leidde
Mwah, niet uitgesloten van deelname, maar wel uitgesloten van een plaats op het scorebord.Creepy schreef op donderdag 16 november 2006 @ 14:36:
Devschuur mods zijn wel uitgesloten van deelname he
'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.
Dan komen we toch op hetzelfde?Janoz schreef op donderdag 16 november 2006 @ 14:03:
Score : 11730 Discards left : 5 Position : 7
Maar hier is de discard score nog niet bijgeteldm en bij mij geeft hij ook geen game over, maar een eof en dat wordt niet als een game over uitgevoerd.
5x400 = 2000 + 11730 = 13730
Jij kwam uit op 11730 zonder discards, ik op 13730 inc. discards.
[ Voor 8% gewijzigd door RobIII op 16-11-2006 14:46 ]
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
De gameoverblock kan toch nog gewoon geplaatst worden? De laatste drop is volgens mij nog geldig en dus telt je score ook gewoon. Als je nu nog een nieuw block zou vragen en die zou droppen dan telde 'ie niet mee. Vandaar ook de "Result: Unexpected end of processing file; no more instructions found". Je bent officieel nog niet game-over, daarvoor zul je nog een blokje moeten droppen dat boven het speelveld uit komt
Of kijk ik er nou zo langs?
Overigens is .oisyn's output.txt niet valide stiekem
[ Voor 34% gewijzigd door RobIII op 16-11-2006 14:54 ]
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
RobIII: Zal ik dan een grote output.txt naar je mailen voor verificatie? (gezipped uiteraard
Nee dat was weer een bug van mijn kant, door een rekenfoutje dacht hij dat geen enkele zet meer valid wasRobIII schreef op donderdag 16 november 2006 @ 14:52:
Vandaar ook de "Result: Unexpected end of processing file; no more instructions found". Je bent officieel nog niet game-over, daarvoor zul je nog een blokje moeten droppen dat boven het speelveld uit komt
Dat komt denk ik door mijn ftp progsel die 'm upload naar de t.net crew ftp (= linux host). Hij draait namelijk gewoon onder windows, en er staan dus ook \r\n newlines in.Overigens is .oisyn's output.txt niet valide stiekemIk zie geen windows-style "enters"
[ Voor 33% gewijzigd door .oisyn op 16-11-2006 15:05 ]
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.
Dus mijn validator heeft 't bij het rechte eind volgens jou? Klopt toch hé? Ook mijn en Janoz' scores komen overeen..oisyn schreef op donderdag 16 november 2006 @ 15:00:
[...]
Nee dat was weer een bug van mijn kant, door een rekenfoutje dacht hij dat geen enkele zet meer valid was. M'n tweede output kwam dan ook een stuk verder.
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
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Status | : | Game Over |
Score | : | 17480 |
Discards | : | 0 |
Drops | : | 698 |
Moves | : | 2662 |
Rotates | : | 468 |
Instructions processed | : | 4528 |
Execution time | : | 31ms. |
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

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
Echter zou ik wel graag mijn output willen valideren. Heeft iemand misschien al een validatieprogramma online staan? Of zal ik maar volledig vertrouwen op mijn framework
'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.
Waarom een validator vrijgeven? Is een online validatie service niet leuker?-NMe- schreef op donderdag 16 november 2006 @ 15:56:
We gaan waarschijnlijk ergens halverwege de contest een van de validators vrijgeven, maar voorlopig nog even niet.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Hmm, jammer. Nu kan ik natuurlijk nooit zien of mijn implementatie helemaal correct is. Ik ga zelf wel even een grafische validator maken, zo dat ik tenminste kan zien of er iets mis is.-NMe- schreef op donderdag 16 november 2006 @ 15:56:
We gaan waarschijnlijk ergens halverwege de contest een van de validators vrijgeven, maar voorlopig nog even niet.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Ik heb nog steeds pwcontest.nl liggen met een dedicated server en mijn validator poept al HTML uit. Wat dat betreft zou ik 'm nu al online kunnen gooien. Maar dat doe ik lekker nietJanoz schreef op donderdag 16 november 2006 @ 16:07:
Ik heb nergens java hosting dus kan ook niet snel ff een webbased versie maken.
Gelieve hier niet over door te "zeuren" (wat een rotwoord, maar ik weet niet hoe het anders te zeggen). Met de set van .oisyn en de gegeven output moet je je eigen validator ook kunnen schrijven. Als we al besluiten er 1 vrij te geven dan doen we (crew dus) dat zelf.
Je bent natuurlijk wel vrij om je (deelnemers dus) eigen validator online te gooien voor mede-deelnemers
[ Voor 7% gewijzigd door RobIII op 16-11-2006 16:14 ]
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
Kom komGenoil schreef op donderdag 16 november 2006 @ 16:16:
zo zeg...we zijn nog geen 2 dagen op weg en er zijn al mensen met intimiderende scores...ik ga denk ik m'n andere hobby-projectje maar weer oppakken en hopen dat een volgende contest wat minder op AI hangt.
Je hebt nog ruim 2 maanden de tijd, je kunt allicht nog vanalles verbeteren
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
Je wordt ontmoedigd door mensen die goeie scores hebben? Hoe weet je of een score goed is als je er pas twee gezien hebt? Hoe weet je of hun output goed is? Lijkt me wat vroeg om de handdoek in de ring te gooien, als dat tenminste de reden is.Genoil schreef op donderdag 16 november 2006 @ 16:16:
zo zeg...we zijn nog geen 2 dagen op weg en er zijn al mensen met intimiderende scores...ik ga denk ik m'n andere hobby-projectje maar weer oppakken en hopen dat een volgende contest wat minder op AI hangt.
'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.
Moet 'm nog wel wat optimaliseren uiteraard, maar daar is nog wel genoeg ruimte voor.
.edit: done, 100.000 blocks zonder gameover \o/. Alleen was ik wat dom geweest en print ik alleen het resultaat als er een gameover optrad, dus nu heb ik geen eindresultaat
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [] | | [][]| | [] [][]| Blocks : 99501 |[] [][][][][][][][][][]| Lines : 24002 |[][][] [][][][][][][][][][]| Discards: 5 |[] [][][][][][][][][][][][][]| Points : 2277810 +------------------------------+ 3 2 1 3 3 3 3 5 2 1 3 4 3 3 6 |
[ Voor 71% gewijzigd door .oisyn op 16-11-2006 16:23 ]
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.
De mijne doet er 22.516,13 per seconde.oisyn schreef op donderdag 16 november 2006 @ 16:20:
Hij doet ongeveer 250 blokjes per seconde en er lijkt vooralsnog geen gameover in te zitten.
Then again hoeft de mijne niet te puzzelen, enkel dom uit te voeren en regels af te dwingen
Ik zal zelf eens aan een AI beginnen deze week
[ Voor 23% gewijzigd door RobIII op 16-11-2006 16:24 ]
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
Ik heb het net voor elkaar om mijn blokjes te kunnen laten draaien, droppen is er nog niet eens bij
Ik heb ook nog geen enkel idee hoe ik kan gaan bepalen of een blokje ergens kan liggen of niet, maar dat zal hoop ik nog wel komen. Ik gok dat de mijne ongeveer 2 blokjes per seconde gaat verwerken, haha
Memories of yesterday, will grow, but never die
Of ze hebben zich gewoon stiekum ziek gemeld, zodat ze de hele dag kunnen proggen.Bintje809 schreef op donderdag 16 november 2006 @ 16:26:
Wow, jullie zijn echt ziek!
30Drie Web Design & IT Consultancy | Raven Consultancy Services
Inlezen was dag 1, draaien, set optimaliseren, droppen en een veld vullen was dag 2. Op zich wel goed voor de contest, er is niet al te veel overhead nodig om het framework in elkaar te zetten, de rest van de tijd is voor optimalisaties en AI. En testset1 is vrij simpel, met een scoringsmechanisme van een paar regels is die al te doorlopen, zeker met blokje 7 en 8.Bintje809 schreef op donderdag 16 november 2006 @ 16:26:
Wow, jullie zijn echt ziek!
Ik heb het net voor elkaar om mijn blokjes te kunnen laten draaien, droppen is er nog niet eens bij
Nu is het wachten op de 1e persoon die testset2 volledig kan doorlopen, want die is echt een stuk lastiger
Mja jullie hebben ook wel gelijk...ik vind het ook eigenlijk wel een erg leuke opdracht en ik wil al zo lang een keer iets van AI snappen, dus misschien moet ik er toch maar mee doorgaan. Maar ik heb weinig tijd voor dit soort dingen en ik heb ook nog een ander hobbyprojectje waar ik wat tijd in wil steken...-NMe- schreef op donderdag 16 november 2006 @ 16:18:
[...]
Je wordt ontmoedigd door mensen die goeie scores hebben? Hoe weet je of een score goed is als je er pas twee gezien hebt? Hoe weet je of hun output goed is? Lijkt me wat vroeg om de handdoek in de ring te gooien, als dat tenminste de reden is.
het inlezen is geen probleem, dat is appeltje eitje. Het draaien van items was ook goed te doen, maar het draaien van items, en verplaatsen van items op de goeie plek boven het veld, dat was ietsjes lastiger.DaCoTa schreef op donderdag 16 november 2006 @ 16:33:
[...]
Inlezen was dag 1, draaien, set optimaliseren, droppen en een veld vullen was dag 2. Op zich wel goed voor de contest, er is niet al te veel overhead nodig om het framework in elkaar te zetten, de rest van de tijd is voor optimalisaties en AI. En testset1 is vrij simpel, met een scoringsmechanisme van een paar regels is die al te doorlopen, zeker met blokje 7 en 8.
Nu is het wachten op de 1e persoon die testset2 volledig kan doorlopen, want die is echt een stuk lastiger
Naar mijn eigen mening, heb ik wel een goede structuur in mijn code opgezet, zodat het eenvoudig te onderhouden//uit te breiden is. Ik kijk me alleen enorm vast op hoe ik een veld moet vullen. Heb wel een klein ideetje, maar of het efficient is?? dat denk ik niet
* Bint kookt vast een hele erge grote portie spek en bonen
irritant dat ik sinds de fp en forum samenvoeging voortaan 809 achter mijn naam heb staan
Memories of yesterday, will grow, but never die
Net geen 95 punten per lijn..oisyn schreef op donderdag 16 november 2006 @ 16:20:.edit: done, 100.000 blocks zonder gameover \o/.
Lines : 24002
Points : 2277810
Ik gok dat je over grote deel van lijnen weghalen 1 lijn is?
Misschien wel leuk om erbij te zetten :
1 lijn : 23000
2 lijnen : 1000
3 lijnen : 1
4 lijnen : 1
5 lijnen : 0
Zoiets
486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22
"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
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.
Ik kan wel Java hosting regelen. (Tomcat 5.0.x, java 1.4). FTP upload en zelfs ssh toegang als je dat wilt. Een web validator zou mooi zijn, kan iedereen alsnog z'n output controleren. Deze aanbieding geld uiteraard alleen voor Janoz en niet voor andere personenJanoz schreef op donderdag 16 november 2006 @ 16:07:
Ik heb nergens java hosting dus kan ook niet snel ff een webbased versie maken.
"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
Verwijderd
De testset van .oisyn klopt niet helemaal. Er zitten namelijk enters in in de vorm van \n terwijl in de topicstart stond dat enters \r\n zijn.
Ik werk onder Windows en mijn parser ging dus over z'n nek ervan.
Oops, dat had Rob dus al gezegd... la la la ik zeg niets.
[ Voor 11% gewijzigd door Verwijderd op 16-11-2006 17:40 ]
Kun je misschien ook ter debugging een aantal plaatjes tussendoor posten? (Een plaatje om de tien drops ofzo.) Ik probeer een validator te bouwen en als ik alles met de hand volg lijkt het te kloppen, maar het eindresultaat klopt voor geen meter.RobIII schreef op donderdag 16 november 2006 @ 15:25:
Results met de laatste output van .oisyn (met test-Set I):
Ik weet het goed gemaakt. Mijn validator beschikt over een "hidden command" dat je kunt sturen (DEBUG). Op het moment dat er een DEBUG voorkomt in de output.txt wordt het veld van dat moment opgeslagen als HTML.Soultaker schreef op donderdag 16 november 2006 @ 17:48:
[...]
Kun je misschien ook ter debugging een aantal plaatjes tussendoor posten? (Een plaatje om de tien drops ofzo.) Ik probeer een validator te bouwen en als ik alles met de hand volg lijkt het te kloppen, maar het eindresultaat klopt voor geen meter.
Als jij even zo vriendelijk bent om op de interessante punten van .oisyn's output een DEBUG te zetten en me dat toemailed dan wil ik wel een zipje online zetten met de "breakpoints" er in als HTML files.
Maar dan houdt het écht op hoor
a) we kunnen niet aan de gang blijven
b) de specs zijn duidelijk genoeg; je moet a.d.h.v. die specs prima een validator kunnen bouwen
c) de huidige output klopt als een bus (of Janoz én ik maken dezelfde fout... en ik maak geen fouten dus dat is zowieso al Godsonmogelijk
See?.oisyn schreef op donderdag 16 november 2006 @ 16:59:
En als hij niet klopt dan zit de fout of bij jou, of bij mij
[ Voor 27% gewijzigd door RobIII op 16-11-2006 17:55 ]
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

Deze klopt wel, alle 100.000 blokjes doorgespeeld met een eindscore van 2.277.490 punten
http://crew.tweakers.net/oisyn/output.zip
Tileset2 is echter een stuk lastiger, ik kom aan de 429 blokjes

[ Voor 11% gewijzigd door .oisyn op 16-11-2006 18:08 ]
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
Hoeft trouwens niet, ik pas mijne wel aan dat ie DEBUG ook snapt (of in ieder geval negeert)
[ Voor 53% gewijzigd door Verwijderd op 16-11-2006 18:12 ]
Wellicht handig om DEBUG commando's gewoon op te nemen in de spec? Evt. met optionele, nietgedefinieerde parameters voor jezelf? Dan kun je zelf debug opties in je validator inbouwen en toch je files uitwisselen.
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.
Ok, ik heb een bestand gemailt met daarin een debug statement achter de eerste 20 drops, daarna eens per 5 voor de eerste 200, en daarna eens per 25. Dit zou moeten helpen om fouten op te sporen (ook voor anderen).RobIII schreef op donderdag 16 november 2006 @ 17:52:
Ik weet het goed gemaakt. Mijn validator beschikt over een "hidden command" dat je kunt sturen (DEBUG). Op het moment dat er een DEBUG voorkomt in de output.txt wordt het veld van dat moment opgeslagen als HTML.
Als jij even zo vriendelijk bent om op de interessante punten van .oisyn's output een DEBUG te zetten en me dat toemailed dan wil ik wel een zipje online zetten met de "breakpoints" er in als HTML files.
Ik denk dat jullie toch meer overleg hebben gehad dan die specs alleen.b) de specs zijn duidelijk genoeg; je moet a.d.h.v. die specs prima een validator kunnen bouwen
Dat denk ik ook.c) de huidige output klopt als een bus (of Janoz én ik maken dezelfde fout... en ik maak geen fouten dus dat is zowieso al Godsonmogelijk) dus als jouw output daarmee niet overeenkomt dan maak je ergens een fout
edit:
De gemailde invoer is trouwens deze en niet die nieuwe van .oisyn.
[ Voor 4% gewijzigd door Soultaker op 16-11-2006 18:17 ]
VoilaSoultaker schreef op donderdag 16 november 2006 @ 18:15:
[...]
Ok, ik heb een bestand gemailt met daarin een debug statement achter de eerste 20 drops, daarna eens per 5 voor de eerste 200, en daarna eens per 25. Dit zou moeten helpen om fouten op te sporen (ook voor anderen).
Daar zul je / zullen jullie het mee moeten doen voorlopig. So far de inzet van de crew, nu is het weer jullie beurt
Nope. Niet over de implementatie; wel over wélke contest we zouden houden...Soultaker schreef op donderdag 16 november 2006 @ 18:15:
Ik denk dat jullie toch meer overleg hebben gehad dan die specs alleen.
9 v.d. 10 keer zit het in de "bounds" her en der (ergens +1 of -1 van een muur of boven of onder het speelveld en dat soort dingen). Het helpt als je een grafische "speelbare" weergave maakt zoals ik ergens anders in dit topic postte (zie filmpjes).Soultaker schreef op donderdag 16 november 2006 @ 18:15:
Dat denk ik ook.Ik wilde ook niet beweren dat jullie code fout is, maar ik wil wél graag mijn eigen code fiksen, en dat is lastig als de eerste twintig zetten er redelijk uit zien (en als dingen als roteren en het weghalen van lijnen op het zicht goed gaan), maar hij naar 500 drops opeens anders blijkt te zijn.
Oh, ik betrap mezelf nu op een off-by-one foutje

In de debug.zip hierboven staan de x-line clears verkeerd... 0-line clear moet natuurlijk 1-line clear zijn enzovoorts
Fix0red
[ Voor 57% gewijzigd door RobIII op 16-11-2006 18:41 ]
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
Verwijderd
Ik had ook hetzelfde, alles leek op het oog goed te gaan maar toch werkte die volledige output niet.
Bij mij bleek het een dom foutje (zijn er ook niet domme fouten?) in het line-clearen te zitten.
Wellicht bij jou ook?
Anders moeten we maar ff overleggen, ik ben eerst even wat eten en zal dan die debug dingen eens vergelijken met mijne.
[ Voor 23% gewijzigd door Verwijderd op 16-11-2006 18:58 ]
Dit topic is gesloten.
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.