[GPC] laatste opgave

Pagina: 1 2 Laatste
Acties:
  • 282 views sinds 30-01-2008
  • Reageer

Verwijderd

Op maandag 31 december 2001 13:56 schreef kvdveer het volgende:
2. Hoe weten we de eerste ronde hoeveel spelers er zijn?
Dat lijkt me hele nuttige informatie...
Na 2 daagjes klooien ben ik ervan overtuigd dat dit een fundamentele fout is in het spelontwerp. Je kunt namelijk niet alleen in de eerste ronde niet weten hoeveel spelers er zijn, je weet het in geen enkele ronde zeker!

Door die pas-regel kunnen spelers ook geen zet doen, en als een speler de eerste X zetten past heeft hij na X zetten dus geen punten op het bord. Volgens de nu gestelde regels moet ik dan concluderen dat die speler niet meer mee doet.

Dat is een conflictsituatie die niet op te lossen is zonder meer input-informatie of door de pas-regel te laten vallen. De pas-regel is ook de oorzaak ervan dat een spel oneindig lang kan duren, als iedereen gewoon blijft passen... (Jury, please drop die pas-regel?).

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op dinsdag 01 januari 2002 17:00 schreef mietje het volgende:

[..]

Na 2 daagjes klooien ben ik ervan overtuigd dat dit een fundamentele fout is in het spelontwerp. Je kunt namelijk niet alleen niet in de eerste ronde niet weten hoeveel spelers er zijn, je weet het in geen enkele ronde zeker!

Door die pas-regel kunnen spelers ook geen zet doen, en als een speler de eerste X zetten past heeft hij na X zetten dus geen punten op het bord. Volgens de nu gestelde regels moet ik dan concluderen dat die speler niet meer mee doet.

Dat is een conflictsituatie die niet op te lossen is zonder meer input-infromatie of door de pas-regel te laten vallen. De pas-regel is ook de oorzaak ervan dat een spel oneindig lang kan duren, als iedereen gewoon blijft passen... (Jury, please drop die pas-regel?).
Drop die pas-regel alsjeblieft niet... het is een essentiele regel in het spel voor mijn algo. (Die past momenteel 75% van het totaal...).
Voeg een andere regel toe: je mag niet passen als je nog geen zet hebt gedaan. (is leuk met 9 spelers op een veld van 2x2)

Localhost, sweet localhost


Verwijderd

Op dinsdag 01 januari 2002 17:04 schreef kvdveer het volgende:
Drop die pas-regel alsjeblieft niet... het is een essentiele regel in het spel voor mijn algo. (Die past momenteel 75% van het totaal...).
Voeg een andere regel toe: je mag niet passen als je nog geen zet hebt gedaan. (is leuk met 9 spelers op een veld van 2x2)
/me zucht

Ik toon juist aan dat de pas-regel in zijn huidige vorm het spel saboteert. Als iedere speler 75% van zijn zetten past op een 40x40 bord voorzie ik een saaie eeuwwisseling.

Als je de pas-regel wilt houden moet die worden aangepast, maar jouw uitbreiding alleen is niet voldoende. Er moet een bovengrens komen aan het aantal keren dat iemand kan passen, of er moet een regel komen dat je verliest als je X maal achter elkaar past. Deze uitbreidingen vereisen echter allemaal dat een speler meer input-informatie krijgt.

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
hmm en volgens de oorspronkelijke regels kan je idd altijd passen en op die manier als eerste inzenden en 2 bonuspunten pakken...

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op dinsdag 01 januari 2002 17:37 schreef Dash2in1 het volgende:
hmm en volgens de oorspronkelijke regels kan je idd altijd passen en op die manier als eerste inzenden en 2 bonuspunten pakken...
snel inzenden heeft dit keer geen nut
jullie komen tegen elkaar te spelen
de rest van de vragen zal door dusty worden beantwoord :)

Doet iets met Cloud (MS/IBM)


  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Op dinsdag 01 januari 2002 17:40 schreef D2k het volgende:

[..]


[..]

de rest van de vragen zal door dusty worden beantwoord :)
kheb geloof ik nog last van afgelopen nacht ;)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Dash2in1: kheb geloof ik nog last van afgelopen nacht ;)
np
* D2k is wakker

Doet iets met Cloud (MS/IBM)


Verwijderd

Op dinsdag 01 januari 2002 17:04 schreef kvdveer het volgende:
Voeg een andere regel toe: je mag niet passen als je nog geen zet hebt gedaan. (is leuk met 9 spelers op een veld van 2x2)
Het is me sinds gisteren nog onduidelijker geworden, volgens mij krijg je als beginsituatie een speelveld waarop elke speler die meedoet minstens een punt heeft. Maar dusty antwoordt:
Op maandag 31 december 2001 12:18 schreef dusty het volgende:
2. Klopt, BEHALVE de eerste ronde uiteraard :+
Dat snap ik dus niet, krijg je nu wel of niet als eerste een speelveld voorgeschoteld waar je zelf nog niet op aanwezig bent?

Als dat zo is betekent dat dat er een regel bij komt:
• Je mag de eerste zet niet passen.

Deze regel is er iig. bijgekomen:
• Je hebt niet alleen verloren als je niet meer kunt zetten, je hebt ook verloren als je geen punten meer op het speelveld hebt.

Ik heb nog een voor de hand liggende aanname die ik niet bevestigd zie:
Is het zo dat de spelers in klimmende volgorde spelen? (Dus eerst speler 1, dan 2, enz.)

<edit>
Mja, ik ga nu m'n Board class redesignen, dat kan geen kwaad na deze regelverandering. Ik kijk vanavond wel wat dusty beslist over de pas-regel.
</edit>

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op dinsdag 01 januari 2002 18:07 schreef mietje het volgende:
Dat snap ik dus niet, krijg je nu wel of niet als eerste een speelveld voorgeschoteld waar je zelf nog niet op aanwezig bent?
Als je aan de beurt ben krijg je een veld, Of je daar nu wel of niet op staat is het jouw beurt, is het jouw beurt dan mag je dus ergens plaatsen, betekent dat als je jezelf niet tegenkomt dat het dus de eerste ronde is.
Als dat zo is betekent dat dat er een regel bij komt:
• Je mag de eerste zet niet passen.
Mag best, alleen dan zeg je in principe "ik geef het op" want de 2e ronde heb je geen punten dus ben je af :P
Deze regel is er iig. bijgekomen:
• Je hebt niet alleen verloren als je niet meer kunt zetten, je hebt ook verloren als je geen punten meer op het speelveld hebt.
Je kunt altijd zetten. door de combinatie van de regels, Je zou alleen niet meer kunnen zetten als tegenstanders ALLE plaatsen hebben, betekent dat jij er geen hebt, dus dat jij af bent :+
Ik heb nog een voor de hand liggende aanname die ik niet bevestigd zie:
Is het zo dat de spelers in klimmende volgorde spelen? (Dus eerst speler 1, dan 2, enz.)
Ja.
<edit>
Mja, ik ga nu m'n Board class redesignen, dat kan geen kwaad na deze regelverandering. Ik kijk vanavond wel wat dusty beslist over de pas-regel.
</edit>
Regels zijn niet veranderd, het is alleen wat duidelijker gemaakt.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op dinsdag 01 januari 2002 15:25 schreef kvdveer het volgende:
(je kunt pas van het bord worden geveegd zodra je op het bord staat, als je dus altijd past, kom je nooit op het bord te staan en kun je dus nooit van het bord worden geveegd)
Echter heb jij geen punten meer de tweede ronde, dus ben je af. Dus geen impasse :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op dinsdag 01 januari 2002 17:00 schreef mietje het volgende:
Door die pas-regel kunnen spelers ook geen zet doen, en als een speler de eerste X zetten past heeft hij na X zetten dus geen punten op het bord. Volgens de nu gestelde regels moet ik dan concluderen dat die speler niet meer mee doet.
Geen punten de tweede beurt betekent dus dat ie van het boord af is gegooid. en die speler is dan dus ook AF.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op dinsdag 01 januari 2002 22:53 schreef dusty het volgende:
Regels zijn niet veranderd, het is alleen wat duidelijker gemaakt.
Regels zijn zeker wel veranderd... Er waren gaten in de regels die nu gedicht zijn...
Ook ik zal mijn board class moeten redesignen. Nou ja. alleen de methode calculateMove() en chain(). :P

Maar ipv te zeiken ga ik nu weer eens nuttig bezig zijn. :X

Localhost, sweet localhost


  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Ok, eindelijk een computer onder handen.
Dus mijn duit (bestaan er nog duiten trouwens:?) in het zakje:

Wat gebeurt er met randvoorwaarden als bijvoorbeeld een 1x4 bord?

Dus:
######
# #
######
De eerste zet zal op 1 van de beide middelste punten terechtkomen. Speler twee speelt direct in de hoek ernaast en haalt nr 1 van het bord. Etc.
Oftewel: de laatste speler wint.

Beginnen met passen is ook al geen optie, want dan is de speler in de tweede ronde niet aanwezig op het bord....

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op woensdag 02 januari 2002 16:18 schreef Munters het volgende:
Ok, eindelijk een computer onder handen.
Dus mijn duit (bestaan er nog duiten trouwens:?) in het zakje:

Wat gebeurt er met randvoorwaarden als bijvoorbeeld een 1x4 bord?

Dus:
######
# #
######
De eerste zet zal op 1 van de beide middelste punten terechtkomen. Speler twee speelt direct in de hoek ernaast en haalt nr 1 van het bord. Etc.
Oftewel: de laatste speler wint.

Beginnen met passen is ook al geen optie, want dan is de speler in de tweede ronde niet aanwezig op het bord....
code:
1
2
3
######
#    #
######

dan is het wat duidelijker

Doet iets met Cloud (MS/IBM)


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Op woensdag 02 januari 2002 16:18 schreef Munters het volgende:
[..]
De eerste zet zal op 1 van de beide middelste punten terechtkomen.
[..]
Waarom?

He who knows only his own side of the case knows little of that.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 16:23 schreef RickN het volgende:

[..]

Waarom?
Omdat de uitersten beide maar 1 buur hebben dus "exploderen" bij een waarde van 1.

Betekent ook meteen vette pech voor speler 1, tenzij de AI van speler 2 niet zo slim is :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Met de verduidelijkingen van dusty valt er goed te werken, ik kom echter nog een probleem tegen:

Het blijkt dat het mogelijk is oneindige kettingreacties te veroorzaken die niet alle punten van de tegenstander(s) veroveren. Wat gebeurt er als een speler zo'n zet doet, wint hij of verliest hij (het spel laten doorgaan is onmogelijk)?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 16:29 schreef mietje het volgende:
Het blijkt dat het mogelijk is oneindige kettingreacties te veroorzaken die niet alle punten van de tegenstander(s) veroveren.
Geef eens een voorbeeld.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Op woensdag 02 januari 2002 16:26 schreef dusty het volgende:

[..]

Omdat de uitersten beide maar 1 buur hebben dus "exploderen" bij een waarde van 1.

[..]
Ah, indeed...

He who knows only his own side of the case knows little of that.


Verwijderd

Op woensdag 02 januari 2002 16:30 schreef dusty het volgende:
Geef eens een voorbeeld.
Ik zat een 40x40 bord te testen, dat lijkt me wat groot om hier te pasten. Ik zal eens wat kleinere test-invoeren genereren, maar neem van mij aan dat het kan.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 16:35 schreef mietje het volgende:
[..]
Ik zat een 40x40 bord te testen, dat lijkt me wat groot om hier te pasten. Ik zal eens wat kleinere test-invoeren genereren, maar neem van mij aan dat het kan.
Mag jij van mij aannemen dat het niet kan :+

Email het veld dan naar mij met "gotter" en dan het domein "curlio.com" erachter plakken. met het speciale tekentje ertussen ;) (hoe is dat voor tegen spam! :P )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Op woensdag 02 januari 2002 16:37 schreef dusty het volgende:
Mag jij van mij aannemen dat het niet kan :+
Mailtje verstuurd. Kan het of niet? ;)

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 16:53 schreef mietje het volgende:
[..]
Mailtje verstuurd. Kan het of niet? ;)
Moet je wachten tot ik thuis ben, kan ik um door mijn programma heen halen :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Bewijs dat je geen oneindige kettingreactie kunt krijgen waar niet alle vakjes aan meedoen:

1 Stel er is een veld V dat niet door een oneindige kettingreactie wordt bereikt.
2 De aanliggende velden van V kunnen dan ook niet door de kettingreactie worden bereikt, want anders zou zo'n aanliggende veld uiteindelijk exploderen waardoor V door de kettingreactie zou worden bereikt.
3 Volgens de regels vormen alle velden op het bord een aaneengesloten geheel, waardoor we m.b.v. inductie kunnen zeggen dat een oneindige kettingreactie waarbij een veld niet wordt bereikt alleen kan als er GEEN ENKEL veld wordt bereikt, waardoor er dus van een kettingreactie geen sprake zou zijn.

He who knows only his own side of the case knows little of that.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Je wordt bedankt hè, RickN. Zit ik net een lekker lange bewijsvoering in te typen komt jij snel met een eenvoudig en kloppend bewijs aanzetten. ;) Leuk dat er ook deelnemers zijn die wél over de opgave nadenken.

Verder heb ik nog één vraag, betreffende het passen. Is het nog steeds zo, dat beide spelers onbeperkt mogen passen?

Er wordt GEEN geschiedenis meegegeven aan de invoer, dus als in een bepaalde situatie speler 1 besluit te passen, weet speler 2 niet dat speler 1 gepast heeft. Als speler 2 nu geheel onafhankelijk ook besluit te passen, dan krijgt speler 1 weer dezelfde situatie voorgeschoteld als de laatste keer en vanwege het deterministische karakter van de meest waarschijnlijke algoritmes zullen speler 1 en 2 nu tot in de oneindigheid blijven passen. Dat lijkt me toch vervelend, als je dit jaar nog wil jureren.

edit:

Wanneer er meer dan twee spelers meedoen, wordt de kans op een dead-lock natuurlijk kleiner, maar hij blijft bestaan.


Zels met het meegeven van een geschiedenis van zetten kan je nog niet forceren dat één van de twee algoritmes uiteindelijk een zet doet, terwijl het daar niet door de regels toe verplicht worden.

(Overigens, de verantwoordelijke voor de probleemstelling moet zeer dringend leren schrijven).

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op woensdag 02 januari 2002 18:03 schreef Soultaker het volgende:
(Overigens, de verantwoordelijke voor de probleemstelling moet zeer dringend leren schrijven).
we benne geen taalpuriste hoor
ik heb de oorspronkelijke tekst van dusty redelijk moeten bewerken dus..
Maar tis prima te lezen en te begrijpen (na een keer of 5 :+ )

Doet iets met Cloud (MS/IBM)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 18:03 schreef Soultaker het volgende:
Verder heb ik nog één vraag, betreffende het passen. Is het nog steeds zo, dat beide spelers onbeperkt mogen passen?
Ja dat mag, na teveel passes achter elkaar wordt het gezien als een remise.
(Overigens, de verantwoordelijke voor de probleemstelling moet zeer dringend leren schrijven).
Gedeelte is door mij geschreven, een andere gedeelte is herschreven door de jury. Ik ben geen kei in nederlands, Ik heb er geen spellings-checker overheen gedaan ;) Aan deze uitspraak kan je geen rechten ontlenen, het gaat om het probleem, niet om de nederlandse spelling die is gebruikt.

:+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Op woensdag 02 januari 2002 19:17 schreef dusty het volgende:
Ja dat mag, na teveel passes achter elkaar wordt het gezien als een remise.
Met andere woorden: in een winnende situatie moet je NOOIT passen, anders passen je tegenstanders (mits ze dit ook inzien) ook en is het spel dus afgelopen? Dat is wel erg wrang - dat maakt passen eigenlijk alleen interessant voor de speler die achterstaat (hoewel dat natuurlijk wel weer leuk kan zijn).

In welke vorm wordt de competitie trouwens gegoten? Wordt 't een hele/halve competitie waarbij spelers elke keer paarsgewijs tegen elkaar spelen, of worden er meer dan twee spelers tegelijkertijd bij elkaar gegeooid? In het laatste geval, hoeveel spelletjes speel je dan en hoe bepaal je wie waartegen speelt? Wordt er op verschillende soorten borden (vormen en grootten) gespeeld en hoe zien die er dan gemiddeld uit? Dit is trouwens voor het grootste deel gewoon interesse. Het maakt me niet zoveel uit hoe jullie testen welk programma het beste speelt, maar deels is het ook belangrijk bij het bedenken van een goed algoritme. Het zou jammer zijn, als de winnaars de mensen zijn die toevallig de juiste aannames hebben gedaan over de competitie, in plaats van diegenen die het beste over het probleem hebben nagedacht.
het gaat om het probleem, niet om de nederlandse spelling die is gebruikt.
Dat is waar en aangezien het allemaal redelijk duidelijk geformuleerd is wil ik je er ook niet op aanvallen. Aangezien ik bij het lezen van de reacties op deze thread het tenenkrommende stuk vaak weer even door moet lezen, kon ik het echter niet laten om het in ieder geval even te noemen.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op woensdag 02 januari 2002 19:39 schreef Soultaker het volgende:

In welke vorm wordt de competitie trouwens gegoten? Wordt 't een hele/halve competitie waarbij spelers elke keer paarsgewijs tegen elkaar spelen, of worden er meer dan twee spelers tegelijkertijd bij elkaar gegeooid? In het laatste geval, hoeveel spelletjes speel je dan en hoe bepaal je wie waartegen speelt? Wordt er op verschillende soorten borden (vormen en grootten) gespeeld en hoe zien die er dan gemiddeld uit? Dit is trouwens voor het grootste deel gewoon interesse.
hangt af van het aantal deelnemers :)

daar kan ik dus nog nix over zeggen

Doet iets met Cloud (MS/IBM)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 19:39 schreef Soultaker het volgende:
[..]
Met andere woorden: in een winnende situatie moet je NOOIT passen, anders passen je tegenstanders (mits ze dit ook inzien).
[edit: eehh vergeten te antwoorden hierop]
Er zijn alleen uitzonderlijke zetten waarop je moet passen, echter zal dat niet vaak voorkomen, indien je dat wel doet kan ik je garanderen dat ik van je AI zal winnen.
[/edit]
Dat is waar en aangezien het allemaal redelijk duidelijk geformuleerd is [.....]het tenenkrommende stuk vaak weer even door moet lezen, kon ik het echter niet laten om het in ieder geval even te noemen.
Mijn doel was om het duidelijk te formuleren, het was de taak voor de jury om het normaal nederlands te maken ;) mij kan je er dus niet op aanvallen >:)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

mijn Algo past als 'ie berekent dat 'ie (gegeven het aantal spelers) niet weggevaagd kan worden, en vervolgens een goede kans maakt om de tegenstand een flinke hak te zetten. Het blijkt in praktijk dat 'ie daarom in 75% van de gevallen past. Omdat mijn algo niet deterministisch is, is de kans op een oneindige loop gering (maar wel aanwezig).
Voor de jury heb ik even ingebouwd dat mijn algo even de mate van 'deterministischheid' aangeeft. Als die 1.000 is, was deze zet volledig voor de hand liggend, en dus deterministisch. Dat is in 5% van de zetten het geval, en nooit in combinatie met een pas.

Deze stats zijn gegenereerd spelend tegen mijn random algo 10x10, 5 potjes per seconde 10 minuten lang.
Tegen een mens waren die anders, maar weken ze niet sterk af. (over 10 potjes: 40% passen, 10% deterministische zetten). Ik heb 7 van die potjes jammerlijk verloren.

Localhost, sweet localhost


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 02 januari 2002 21:11 schreef kvdveer het volgende:
mijn Algo [......]
Ik wacht vol spanning af >:)

Doet me opeens denken dat hopelijk niemand vergeet zijn AI een originele naam te geven :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Op woensdag 02 januari 2002 22:04 schreef dusty het volgende:
Doet me opeens denken dat hopelijk niemand vergeet zijn AI een originele naam te geven :P
Die hoeft toch niet net zo origneel te zijn als de naam van het spel zelf, hoop ik? Anders hebben we daar nog een stevige kluif aan, hoewel ik jullie met "Het AI Algoritme" natuurlijk naar de kroon steek.

Mijn algoritme laat overigens nog even op zich wachten. Ik wilde vandaag een poging wagen in Clean, maar aangezien ik daar niet in kan programmeren, wilde het niet echt lukken. Maar toch weer veel geleerd vandaag.

Overigens lijkt het me ook leuk om eens met een creatiever concept te komen dan dat afgezaagde minimax algoritme met alfa-beta snoeien. Ik heb er alleen niet zoveel vertrouwen in dat ik dat binnenkort afkrijg. :)

Verwijderd

Misschien een stomme vraag, maar het enige veld waar ik problemen mee heb is:
code:
1
2
3
####
#  #
####

met meer dan 1 speler, of komt deze gewoon niet in de test set voor :)?

  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Als ie al in de testzet voorkomt wat mij zeer onwaarschijnlijk lijkt, dan wint de persoon die als eerste aan de beurt is :)

Voor alle velden met minder punten dan spelers geldt zowieso dat er na de 1ste beurt al een x aantal spelers weg is.

Correct me if I'm wrong

Verwijderd

Ik bedoelde eigenlijk dat na de eerste zet een oneindige ketting-reaktie komt, zodat de vlgde spelers geen zet meer kunnen doen...

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 03 januari 2002 00:01 schreef DiFool het volgende:
Ik bedoelde eigenlijk dat na de eerste zet een oneindige ketting-reaktie komt, zodat de vlgde spelers geen zet meer kunnen doen...
hoe wou je dat doen dan?
na de eerste rond heeft iedereen 1 punt
dan is er nog geen aanleiding voor een ketting reactie toch??

of heb ik er nu echt geen donder van begrepen?

Doet iets met Cloud (MS/IBM)


  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Op donderdag 03 januari 2002 09:01 schreef D2k het volgende:
hoe wou je dat doen dan?
Wat dacht je van:
code:
1
2
3
####
#  #
####

Je speelt op 1,1 -> 2,1 -> 1,1 etc.

Voor de duidelijkheid: dit is een 2x1 speelveld.

Hoe krijg je nu eigenlijk een vaste spatie in je tekst opgenomen? Mijn uitlijning loopt nu mis.
(De broncode toont netjes " " bij correct uitgelijnde voorbeelden, hoe krijg ik die erin? [nbsp] [sp] en [ ] werken niet).

edit: "code" toegevoegd. Dank D2k. Waarom staat dit trouwens niet in de FAQ?

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

[.code] en [./code] (zonder .)

Doet iets met Cloud (MS/IBM)


  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Is er trouwens nog een soort "pre-test"?

Het zou zonde zijn als er door "domme" foutjes mooie algoritmes niet mee kunnen spelen.

Voorbeeldje:
We gebruiken allemaal voorbeelden met "#" tekens als muur. Ik ook in mijn testset. Nu werkt de opgave met "X" tekens voor de muur. Dus mijn progje gaf netjes een speelveld van 0 breed aan.

"Domme" foutjes waar m.i. best op voorgetest mag worden:

1) Juiste tekens voor de muur (invoer schrijft X voor, geen #)
2) Juiste tekens voor de aantallen bij lege velden (invoer schrijft '0' voor, geen spaties).
3) x,y verwisselingen (invoer schrijft horizontale index op eerste uitvoerregel voor)
4) index-start problemen (invoer schrijft 1,1 voor als index van het eerste speelveld, dus 0,0 voor de verplichte muur linksboven).

Kan er bijvoorbeeld een kleine testset gegeven worden, waar maar 1 antwoord (niet symetrisch, bijvoorbeeld 3,1) op mogelijk is?

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Zelf lijkt het me op zich wel eerlijk als de jury gewoon een paar dagen van te voren (het liefst natuurlijk een week ofzo) het juryprogramma vrijgeeft, zodat iedereen tegen zichzelf kan oefenen. Dit juryprogramma genereert de correcte invoer en controleert de uitvoer van de programma's op correctheid, waardoor iedereen zich er dus van kan verzekeren dat zijn programma alle regels goed implementeert. Op zich is het vrij gebruikelijk voor dergelijke competities dat de juryprogramma's vrijgegeven worden.

Wat op zich ook een optie is (los van de vorige suggestie), is een voorcompetitie, waarbij alle spelers tenminste één spelletje spelen en de resultaten (dus het volledige spelverloop) krijgen, zodat er nog aanpassingen gemaakt kunnen worden in 't algoritme. Het voordeel hiervan, is dat iedere deelnemer de 'real-life performance' van z'n programma kan zien en dus nog aanpassingen kan maken voor de echte competitie. Niet alleen worden de algoritmes hierdoor beter en interessanter, maar het nivelleert ook de kansen van de verschillende deelnemers. Ongetwijfeld zullen sommige deelnemers samenwerken, door hun programma's tegen elkaar te laten spelen. Dit is natuurlijk geen vals spel, maar het is niet helemaal eerlijk voor de deelnemers die geen referentie hebben. Door (tijdig) een voorcompetitie te organiseren, kun je iedereen een eerlijke kans geven.

Overigens zijn deze suggesties alleen te realiseren als de uiterste inlevertermijn wat wordt uitgesteld. Men zou bijvoorbeeld op de huidige deadline van 12 januari (of eigenlijk de volgende dag) een voorcompetitie kunnen houden, voor die deelnemers die daarvoor een programma insturen (het hoeft niet verplicht te zijn) en een week later de beslissende competitie te houden.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Random Test Setje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
XXXXXXXXXX
X  141 22X
X 21 5333X
X11  3 22X
X21 2222 X
XXXXXXXXXX

XXXXXXXXXX
X00222021X
X03303331X
X22002022X
X12022220X
XXXXXXXXXX

Hier is maar EEN oplossing de juiste, door die zet win je namelijk.

Veel plezier.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 11:32 schreef Munters het volgende:
1) Juiste tekens voor de muur (invoer schrijft X voor, geen #)
2) Juiste tekens voor de aantallen bij lege velden (invoer schrijft '0' voor, geen spaties).
3) x,y verwisselingen (invoer schrijft horizontale index op eerste uitvoerregel voor)
4) index-start problemen (invoer schrijft 1,1 voor als index van het eerste speelveld, dus 0,0 voor de verplichte muur linksboven).
Dat zijn inderdaad allemaal juiste regels :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op donderdag 03 januari 2002 16:27 schreef dusty het volgende:
Random Test Setje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
XXXXXXXXXX
X  141 22X
X 21 5333X
X11  3 22X
X21 2222 X
XXXXXXXXXX

XXXXXXXXXX
X00222021X
X03303331X
X22002022X
X12022220X
XXXXXXXXXX

Hier is maar EEN oplossing de juiste, door die zet win je namelijk.

Veel plezier.
Uit mijn hoofd:
(1,7)
(1,8)
(2,2)
(3,1)
(3,8)
(4,1) <- edit: met algo is dit de juiste.
(4,2)
(4,4)
(4,5)
(4,6)

Oftewel: alle mogelijke zetten die exploderen. Dit is natuurlijk geen testset he. Ieder zinnig algo zal deze zet goed hebben.
Mijn algo is ontworpen dat dit soort situatie's (tbv tegenstanders) niet voorkomen.

Er zijn 19 mogelijk zetten (20 incl. pas), waarvan er 8 uitdraaien op winst! Zelfs mijn Random Algo heeft een goede kans om dat te winnen! (40% om precies te zijn)

Localhost, sweet localhost


Verwijderd

Na 2 dagen experimenteren ben ik er achter waar mijn problemen liggen: Het is van belang hoe je kettingreacties op het speelveld behandelt, verschillende methodes geven nl. verschillende resultaten. Daarom nu mijn vraag: hoe moet ik kettingreacties en exploderende velden behandelen?

Moet ik rekening houden met de "ouderdom" van exploderende velden (dus het oudste veld eerst laten exploderen), en zo ja, in welke volgorde moet ik de buren van zo'n veld behandelen (bv. boven, rechts, onder, links)? Zo nee, in welke richtingen moet ik het speelveld iteratief (dus kolom voor kolom of rij voor rij) aflopen, en in klimmende of dalende volgorde?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 12:43 schreef Soultaker het volgende:
Wat op zich ook een optie is (los van de vorige suggestie), is een voorcompetitie, [...] Door (tijdig) een voorcompetitie te organiseren, kun je iedereen een eerlijke kans geven.
Wat mij betreft is het prima, echter zal de jury daar over moeten beslissen :)
Overigens zijn deze suggesties alleen te realiseren als de uiterste inlevertermijn wat wordt uitgesteld. Men zou bijvoorbeeld op de huidige deadline van 12 januari (of eigenlijk de volgende dag) een voorcompetitie kunnen houden, voor die deelnemers die daarvoor een programma insturen (het hoeft niet verplicht te zijn) en een week later de beslissende competitie te houden.
Wat mij betreft prima, zit al een logging functie op waardoor er een html output gegenereerd wordt bij elke zet (en elke explosie.) waardoor men dus kan zien wat er precies is gebeurd en welke speler welke zet heeft gezet :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

De resultaten zijn altijd identiek, hoe je je explosies ook behandelt.
Ik heb voor mijn simulatie-engine een recursieve explosiebehandeling (boven-onder-links-rechts). In mijn algo's gebruik ik een iteratieve behandeling. (hele speelveld in een keer, totdat het 'stabiel' is). Dat levert hetzelfde resultaat op.
Wiskundig is te bewijzen dat explosies altijd hetzelfde effect hebben (uiteindelijk) onafhankelijk van de afhandeling.
Het geheel is namelijk te definieeren in pre-post condities.

Localhost, sweet localhost


  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Op donderdag 03 januari 2002 16:36 schreef kvdveer het volgende:

[..]

Uit mijn hoofd:
(1,7)
(1,8)
(2,2)
(3,1)
(3,8)
(4,1)
(4,2)
(4,4)
(4,5)
(4,6)

[..]
Let op kvdveer, volgens mij heb je hier de x en y coordinaten omgedraaid.

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 16:36 schreef kvdveer het volgende:
[..]
Oftewel: alle mogelijke zetten die exploderen. Dit is natuurlijk geen testset he. Ieder zinnig algo zal deze zet goed hebben.
Mijn algo is ontworpen dat dit soort situatie's (tbv tegenstanders) niet voorkomen.
Even je hersens patchen dan, er is toch maar EEN oplossing mogelijk :)
Er zijn 19 mogelijk zetten (20 incl. pas), waarvan er 8 uitdraaien op winst! Zelfs mijn Random Algo heeft een goede kans om dat te winnen! (40% om precies te zijn)
Er draaien 8 uit op winst, echter draait er maar EEN uit op een overwinning waarmee je alle tegenstanders van het speelboord veegt. >:)

[edit: langzamer tikken dusty]

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 16:43 schreef kvdveer het volgende:
De resultaten zijn altijd identiek, hoe je je explosies ook behandelt.
[..]
Wiskundig is te bewijzen dat explosies altijd hetzelfde effect hebben (uiteindelijk) onafhankelijk van de afhandeling.
Het geheel is namelijk te definieeren in pre-post condities.
Correct.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 16:43 schreef Munters het volgende:
[..]
Let op kvdveer, volgens mij heb je hier de x en y coordinaten omgedraaid.
ik weet wel zeker dat hij ze heeft omgedraaid :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Op donderdag 03 januari 2002 16:43 schreef kvdveer het volgende:
De resultaten zijn altijd identiek, hoe je je explosies ook behandelt.
Ik heb voor mijn simulatie-engine een recursieve explosiebehandeling (boven-onder-links-rechts). In mijn algo's gebruik ik een iteratieve behandeling. (hele speelveld in een keer, totdat het 'stabiel' is). Dat levert hetzelfde resultaat op.
Tja, dat heb ik dus ook, maar ik krijg eindeloze lussen als ik de oudste velden eerst behandel. Ik heb een queue geimplementeerd waar ik de velden van kettingreacties aan de achterkant instop en er van de voorkant weer afhaal en vervolgens behandel. Bij sommige spelsituaties kom ik echter in een oscillerende queue terecht die nooit meer leeg wordt. Behandel ik de buren van een exploderend veld in een andere volgorde dan krijg ik oscillerende queues op andere spelsituaties.
Wiskundig is te bewijzen dat explosies altijd hetzelfde effect hebben (uiteindelijk) onafhankelijk van de afhandeling.
Het geheel is namelijk te definieeren in pre-post condities.
Tuurlijk, maar houd je er ook rekening mee dat je explosies niet simultaan maar achter elkaar uitvoert? Dan is dat bewijs namelijk helemaal niet zo eenvoudig...

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 16:56 schreef mietje het volgende:
[..]
Tuurlijk, maar houd je er ook rekening mee dat je explosies niet simultaan maar achter elkaar uitvoert? Dan is dat bewijs namelijk helemaal niet zo eenvoudig...
Niet eenvoudig maar in principe nog wel aan te tonen.

Als je je algoritme correct uitvoert heeft elke explosie een einde, ( of hij is klaar met exploderen of er zijn geen tegenstanders meer.. )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 16:56 schreef mietje het volgende:
[...]Bij sommige spelsituaties kom ik echter in een oscillerende queue terecht die nooit meer leeg wordt.[..]
Als er dan nog steeds spelers over blijven (behalve jezelf) zit er een fout in je algoritme, zo niet dan heb je al gewonnen ( Dus stoppen met exploden :) )

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Op donderdag 03 januari 2002 17:01 schreef dusty het volgende:
Als er dan nog steeds spelers over blijven (behalve jezelf) zit er een fout in je algoritme, zo niet dan heb je al gewonnen ( Dus stoppen met exploden :) )
/me zucht

Het lijkt erop dat ik de opdracht nog steeds te complex interpreteer (dat zal wel door gebrek aan ervaring komen, ik programmeer pas 15 jaar beroepsmatig). Door dit geharrewar ben ik aan de eigenlijke opdracht (het schrijven van een AI speler) nog niet toegekomen, ondanks dat ik er bijna drie vrije dagen aan heb besteed; ik zit nog steeds aan de implementatie van het spelbord te k*tten, en m'n zetgenerator heeft ook al twee revisies ondergaan. Als ik dan ten einde raad om verheldering vraag wordt er alleen geantwoordt dat mijn algoritme fout is. Dank u, maar daar was ik inmiddels wel achter. Waar ik nog steeds niet achter ben is waar ik de opdracht fout interpreteer, want mijn algoritmes doen wel correct wat ze volgens mij doen moeten. Maw. count me out, dit heeft geen zin meer.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 17:29 schreef mietje het volgende:
[..]
Als ik dan ten einde raad om verheldering vraag wordt er alleen geantwoordt dat mijn algoritme fout is. Dank u, maar daar was ik inmiddels wel achter. Waar ik nog steeds niet achter ben is waar ik de opdracht fout interpreteer, want mijn algoritmes doen wel correct wat ze volgens mij doen moeten. Maw. count me out, dit heeft geen zin meer.
ik kan niet zeggen waar de fout zit zonder je code te zien, Wat ik echter vermoed is dat je niet correct splitst. Probeer het eens gewoon itteratief door te lopen, dat voorkomt heel veel problemen t.o.v. recursief in dit geval.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Op donderdag 03 januari 2002 17:33 schreef dusty het volgende:
ik kan niet zeggen waar de fout zit zonder je code te zien, Wat ik echter vermoed is dat je niet correct splitst. Probeer het eens gewoon itteratief door te lopen, dat voorkomt heel veel problemen t.o.v. recursief in dit geval.
Ok, nog een keer voor de duidelijkheid: mijn algoritme is niet recursief. Ik plaats gewoon de coordinaten van een veld dat door een zet verandert in een queue. Vervolgens pop ik in een loop telkens de voorste (oudste) coordinaten van de queue en voer ik de veranderingen voor het betreffende veld door; als die verandering een explosie veroorzaakt push ik de buren van het betreffende veld weer achter op de queue (dit zijn de jongste velden op dat ogenblik). Als de queue niet leeg is begint de loop van voren af aan. Het algoritme bestaat vrijwel geheel uit (C++) STL templates en is tot in den treure gedebugged dus :? :? :?

Waarom doe ik dit zo ingewikkeld? Om dat het een stuk sneller is dan iteratief het hele bord doorlopen, ik "weet" meteen welke velden ik veranderen moet en hoef ze niet te zoeken. Maarja, het lijkt er steeds meer op dat ik gewoon de regels van het spel verkeerd interpreteer.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 03 januari 2002 17:58 schreef mietje het volgende:
[..]
Ok, nog een keer voor de duidelijkheid: mijn algoritme is niet recursief. [...]Waarom doe ik dit zo ingewikkeld? Om dat het een stuk sneller is dan iteratief het hele bord doorlopen, ik "weet" meteen welke velden ik veranderen moet en hoef ze niet te zoeken. Maarja, het lijkt er steeds meer op dat ik gewoon de regels van het spel verkeerd interpreteer.
Je kan de code naar mijn adres sturen ( user gotter met als domein curlio.com ) en dan zal ik er even naar kijken of ik kan zien waar de fout zit. ( want het MOET een fout zijn. ) Het is inderdaad sneller, met een queue kan het inderdaad flink oplopen, vooral als je gewoon alle buren toevoegd aan je lijst om te controleren, en dan helemaal als je niet zorgt dat alleen nieuwe lokaties worden toegevoegd om te controleren. (dus plaatsen die nog NIET in de queue staan..)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 03 januari 2002 11:20 schreef Munters het volgende:
edit: "code" toegevoegd. Dank D2k. Waarom staat dit trouwens niet in de FAQ?
http://gathering.tweakers.net/forum/faq&id=3#02
En als ik een link of iets dergelijks in m'n post wil plakken?
In Topix (de software waar GoT op draait) kun je geen HTML gebruiken, omdat er in het verleden teveel misbruik gemaakt is van de mogelijkheden die HTML biedt.
Wel kan je de welbekende UBB-code gebruiken, echter niet allemaal. De codes die in Topix werken zijn:
[..]Wil je iets zeggen maar je wilt niet dat Topix dingen gaat parsen kun je die tekst tussen
[.code] en [.0/code]
zetten.
:)
ook hier weer ff . toegevoegd

Doet iets met Cloud (MS/IBM)


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Jury: is het toegestaan om in pseudocode het explosie-algo hier te beschrijven, of is dat te veel spoiler?
Het doel van de wedstrijd is niet een speelbord schrijven maar een AI...

Localhost, sweet localhost


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 03 januari 2002 23:55 schreef kvdveer het volgende:
Jury: is het toegestaan om in pseudocode het explosie-algo hier te beschrijven, of is dat te veel spoiler?
Het doel van de wedstrijd is niet een speelbord schrijven maar een AI...
dat lijkt mij nogal een spoiler vind je niet?
je algo beschrijven betekend dat mensen het na kunnen maken.
Mocht je vragen hebben die als een mogelijke spoiler gezien kunnen worden kan je naar dusty mailen (username bij curlio.com)

Doet iets met Cloud (MS/IBM)


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

D2K:
goed lezen: het gaat hier over het explosie algo, niet om de AI. De AI is het doel van de wedstrijd, niet het explosiealgo...
Zou je de vraag nogmaals willen beantwoorden?

Localhost, sweet localhost


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 04 januari 2002 09:23 schreef kvdveer het volgende:
D2K:
goed lezen: het gaat hier over het explosie algo, niet om de AI. De AI is het doel van de wedstrijd, niet het explosiealgo...
Zou je de vraag nogmaals willen beantwoorden?
dan blijft mijn antwoord alsnog gelijk ben ik bang
mail dusty maar ff :)
als hij zijn fiat geeft mag je het posten
eerder niet (hoewel IK je niet kan tegenhouden)

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 03 januari 2002 23:55 schreef kvdveer het volgende:
Jury: is het toegestaan om in pseudocode het explosie-algo hier te beschrijven, of is dat te veel spoiler?
Het doel van de wedstrijd is niet een speelbord schrijven maar een AI...
het mag van dusty
be my guest

Doet iets met Cloud (MS/IBM)


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

code:
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
Function DoExplosions() {
  while(sweep);
}

function sweep() return boolean {
  int LastOwner=0;
  bool alone=true;
  bool changed=false;
  for x=1 to width-1 {
    for y=1 to height-1 {     
    if (fields(x,y).value >= fields(x,y).countneighbours){
       if (!fields(x-1,y).iswall) fields(x-1,y).value++;
       if (!fields(x+1,y).iswall) fields(x-1,y).value++;
       if (!fields(x,y+1).iswall) fields(x-1,y).value++;
       if (!fields(x,y-1).iswall) fields(x-1,y).value++;
    }
    if (lastowner <> fields(x,y).owner) { 
       if (lastowner != 0) alone=false;
       changed=true;
       LastOwner = fields(x,y).owner;
    }
    }
  }
  return (alone || changed);
}

edit:bugfixes


Disclaimer: Deze code is NIET efficient.

Localhost, sweet localhost


  • Orphix
  • Registratie: Februari 2000
  • Niet online
kvdveer, waar kunnen 'alone' of 'changed' op false worden gezet?
Voor zover ik dit zie blijf je zo altijd in de while() hangen?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Ook de coordinaten van de buren kloppen bij het ophogen niet. Overigens kan dit ook prima (efficienter) recursief, zoals in de volgende pseudo-code tot uitdrukking komt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
explodeer (vakje)
  p = aantal punten van dit vakje
  b = aantal buren van dit vakje

  indien p >= b:
    p = p - b
 
    voor elke buur van dit vakje:
    verhoog het aantal punten met 1
    
    explodeer (vakje)
    voor elke buur van dit vakje:
    explodeer (buur)

Dit is nog wat te optimaliseren en uiteraard moet er ook gecontroleerd worden of er geen sprake is van een oneindige explosie. Dit laat ik echter aan ieders creativiteit over. ;)

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Op vrijdag 04 januari 2002 18:56 schreef Soultaker het volgende:
code:
1
2
3
4
5
6
explodeer (vakje)
  [...]
    voor elke buur van dit vakje:
    verhoog het aantal punten met 1
    
  [...]
Uhmm... je zult dan wel moeten voorkomen dat muren exploderen... Anders kun je door de muur heen ;-)

Localhost, sweet localhost


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Op vrijdag 04 januari 2002 21:53 schreef kvdveer het volgende:
Uhmm... je zult dan wel moeten voorkomen dat muren exploderen... Anders kun je door de muur heen ;-)
In mijn bedoelde pseudocode beschouwde ik de muren niet als de buurvakjes van een vakje. Dat was inderdaad niet helemaal duidelijk, maar ligt als je de regels hebt gelezen natuurlijk voor de hand.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

*swing*
niet vergeten he mannen ;)
Deze opgave loopt tot 12 januari.
oplossingen naar gotcoders@gdries.com

Doet iets met Cloud (MS/IBM)


Verwijderd

Kwam er nou ook een voor-competitie? [nav dusty - donderdag 03 januari 2002 16:42]

  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Zo, wat is het stil op dit topic.
Is er niemand meer die nog gaat inzenden?

(De animo lijkt sowieso terug te lopen.
Het aantal replies bedraagt momenteel:
Opgave 1: 593
Opgave 2: 324
Opgave 3: 170
Opgave 4: 113
Maar goed dat er geen vijfde opgave is)

Wie heeft er trouwens al wat ingestuurd? (Als ik de enige ben heb ik nog gewonnen ook...)

Een flinke testcompetitie tussen de eerste versie van mijn programma en de laatste leerde trouwens wel dat het belangrijk is wie begint.
Over een 30 tal partijen wint mijn beste algoritme ongeveer 50% t.o.v. mijn eerste algoritme, indien deze laatste steeds mag beginnen.
Mag het beste algoritme beginnen, dan wint deze ongeveer 80%.

Toch iets om rekening mee te houden wanneer de verschillende programma's tegen elkaar uit moeten komen (waarschijnlijk allemaal tegelijk in een groot veld?).

Is er trouwens iemand die een resursief algoritme gebakken heeft en met 9 spelers op een 40x40 bord een antwoord van zijn algoritme verwacht binnen 2 minuten?

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


Verwijderd

K@T, ik krijg 'm niet op tijd af :'(

Ik heb wel al iets gemaakt, maar daar win ik nog af en toe van... Nu had ik een nieuw idee, maar ben er te laat mee begonnen om het nog op tijd af te krijgen...

[Moet vandaag toch af voor 23.59 uur + 1 minuut?]

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Op vrijdag 11 januari 2002 17:21 schreef DiFool het volgende:
K@T, ik krijg 'm niet op tijd af :'(

Ik heb wel al iets gemaakt, maar daar win ik nog af en toe van... Nu had ik een nieuw idee, maar ben er te laat mee begonnen om het nog op tijd af te krijgen...

[Moet vandaag toch af voor 23.59 uur + 1 minuut?]
Tis jammer ja, ik had echt totaal geen tijd (naja, eerste week te weinig animo). Niet dat ik nou echt iets flitsends in elkaar had gedraaid, maar was toch wel leuk geweest .. Kan natuurlijk voor een standaardpunt iets insturen wat een random zet teruggeeft, maar da's toch wel iets te lame imho

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 20:56
Op vrijdag 11 januari 2002 18:37 schreef Dash2in1 het volgende:

[..]

Tis jammer ja, ik had echt totaal geen tijd (naja, eerste week te weinig animo). Niet dat ik nou echt iets flitsends in elkaar had gedraaid, maar was toch wel leuk geweest .. Kan natuurlijk voor een standaardpunt iets insturen wat een random zet teruggeeft, maar da's toch wel iets te lame imho
hoezo?? >:)

Verbouwing


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Ik ga 'm ook niet echt naar wens afkrijgen. Simpelweg te druk gehad en die twee weken zijn natuurlijk ook wel erg kort om echt iets interessants te kunnen maken. Jammer, maar helaas. Ik kan morgen eventueel nog wel een standaardalgoritme in elkaar draaien, maar echt leuk is dat niet.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Hoe staat het er ondertussen mee? Hoeveel deelnemers zijn er en wie zoal? Is er al wat getest?

Hoewel ik niet meedoe ben ik wel benieuwd =)

  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
Alweer een week verder zonder enige melding.

Enig teken van leven van de jury? Hoe staat er er nu mee? Hoeveel inzenders? Zijn ze correct en kunnen dus tegen elkaar spelen? Is de jury ziek of op wintersport?
Of heeft de jury een 40x40 bord gemaakt en mogen alle deelnemers meespelen, en draait de wedstrijd al een week?

't Zou jammer zijn als dit topic als een nachtkaars uit gaat.

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Die eikel die de opgaven zou testen heeft het ontzettend druk op het moment (zichzelf aan het overwerken ofzo..), waardoor hij weinig contact heeft gehad met de jury, indien hij kans ziet zal hij even een mail richting de jury sturen voor wat communicatie vermogen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op maandag 21 januari 2002 08:51 schreef Munters het volgende:
Alweer een week verder zonder enige melding.

Enig teken van leven van de jury? Hoe staat er er nu mee? Hoeveel inzenders? Zijn ze correct en kunnen dus tegen elkaar spelen? Is de jury ziek of op wintersport?
Of heeft de jury een 40x40 bord gemaakt en mogen alle deelnemers meespelen, en draait de wedstrijd al een week?

't Zou jammer zijn als dit topic als een nachtkaars uit gaat.
de afgelopen week is ook hier een gekkenhuis geweest. (stages,cursussen,tentamens ed).
ik was van plan om vandaag met de rest van de jury te gaan overleggen over het eea
het gaat zeker niet als een nachtkaars uit :)
Ik ga er voor zorgen dat je op de hoogte wordt gehouden.
(ow en dusty je ben geen eikel, ook jij hebt een bizarre week achter de rug.)

Doet iets met Cloud (MS/IBM)


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
[Henny Huisman modus]Voor mij zijn jullie allemaal een winnaar jongens[/Henny Huisman modus]

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 21 januari 2002 15:37 schreef D2k het volgende:
[..]
(ow en dusty je ben geen eikel, ook jij hebt een bizarre week achter de rug.)
Och wie houdt er niet van om 76 uur in een week te werken :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

dusty: Och wie houdt er niet van om 76 uur in een week te werken :+
ik :)

de jury + dusty heeft mail

Doet iets met Cloud (MS/IBM)


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
En, hoe staat 't er mee? =)

Verwijderd

Ik vondt dat herschrijven in Delphi ook wat ambitieus. Er had beter een middle-ware/interface bepaald kunnen worden (een HTTP-POST bijv, met als resultaat text/plain of zo)...

Dan kun je met C een cgi-bin maken, en met java een JSP (of zo)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Op donderdag 14 februari 2002 13:49 schreef Doekman het volgende:
Ik vondt dat herschrijven in Delphi ook wat ambitieus. Er had beter een middle-ware/interface bepaald kunnen worden (een HTTP-POST bijv, met als resultaat text/plain of zo)...

Dan kun je met C een cgi-bin maken, en met java een JSP (of zo)
Ik zie het bezwaar van standaard invoer/uitvoer eigenlijk niet. Dat was allemaal wel aardig regeld (hoewel ik 't wat vreemd vond dat je het aantal spelers niet kon zien). Als iedereen zich aan deze standaardinterface zou houden, zou een enkel console-based juryprogramma afdoende zijn geweest.

Verwijderd

Op maandag 21 januari 2002 15:39 schreef raptorix het volgende:
[Henny Huisman modus]Voor mij zijn jullie allemaal een winnaar jongens[/Henny Huisman modus]
Henny Huisman zong juist: ".. er kan er maar 1 de winnaar zijn.. "

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Op donderdag 14 februari 2002 14:47 schreef fladder het volgende:
Henny Huisman zong juist: ".. er kan er maar 1 de winnaar zijn.. "
Maar dat had 'ie vast niet zelf geschreven!

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op donderdag 14 februari 2002 12:19 schreef Soultaker het volgende:
En, hoe staat 't er mee? =)
Is er trouwens al een winnaar bepaald, of is D2k nog steeds bezig :?

(of is de GPC in zijn geheel afgelast :? )

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

:X
tijd......

Doet iets met Cloud (MS/IBM)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op donderdag 14 februari 2002 13:49 schreef Doekman het volgende:
Ik vondt dat herschrijven in Delphi ook wat ambitieus. Er had beter een middle-ware/interface bepaald kunnen worden (een HTTP-POST bijv, met als resultaat text/plain of zo)...

Dan kun je met C een cgi-bin maken, en met java een JSP (of zo)
Het herschrijven zou pas plaatsvinden zodra er meer tijd is, er is een versie af waarbij hij een uitvoer genereert, en dan de externe programma aanroept om de zet te bepalen.

Echter heb ik het zo ontzettend druk gehad dat ik er verder zelf compleet geen tijd aan heb kunnen besteden (ook de reden waarom je mij zo weinig heb gezien de afgelopen ander halve maand..)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Eigenlijk vind ik "tijdgebrek" een beetje een slecht excuus. Ik doe zelf weliswaar niet mee, maar ik zou dit als deelnemer nauwelijks kunnen verteren. Jullie stellen een erg strakke (naar mijn mening: veel te strakke) tijdslimiet voor een dergelijk probleem en vervolgens laten jullie na het verstrijken van de deadline maanden niets van je horen, terwijl er zat deelnemers zijn die zo een kant en klaar juryprogramma willen aanleveren. Daar hoeft alleen nog maar een scorescriptje aan gekoppeld te worden en dan is alles klaar. Het is dus allemaal lang niet zoveel werk - er moet alleen iemand even de moeite nemen om die paar uur te investeren. Je maakt mij niet wijs dat dat niet mogelijk is.

Als niemand in de jury dit af wil maken, zouden jullie er eigenlijk niet aan moeten hebben beginnen. Hopelijk trekken jullie hier lering uit, voor de volgende keer dat jullie iets dergelijks organiseren. Het kan geen kwaad om vaste taken toe te wijzen aan de verschillende leden van de organisatie en mensen ook op hun verantwoordelijkheden te wijzen. Deadlines voor de organisatie zijn dan misschien nog wel belangrijker dan voor de deelnemers. Dan weet tenminste iedereen waar 'ie aan toe is. Dezelfde problemen kom ik trouwens ook bij andere soortgelijke zaken tegen.

Een ander punt: zorg dat je de volgende keer van te voren je opgaven EN testsets maakt, samen met de uitwerkingen, die ook nog eens door iemand gecontroleerd zijn. Dat scheelt je een hoop werk op het moment dat tijd een beperkende factor is.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 15 februari 2002 02:32 schreef Soultaker de volgende kritsche post
daar heb je allemaal wel gelijk in maar hé het was voor ons ook de eerste keer en we hebben ons denk ik een beetje vergist in detijd die erin ging zitten
En over die tijdslimieten die waren niet te streng hoor. En bij de eerste opgaven is ook alles relatief snel nagekeken door de djury. Alleen zijn we voor de laatste opgave afhankelijk van een extern stukje software. FYI er was nog maar 1 inzending voor de laatste opgave..
Ik heb iig voldoende motivatie en er gaat ook echt nog een winnaar komen....

Doet iets met Cloud (MS/IBM)


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Op vrijdag 15 februari 2002 11:36 schreef D2k het volgende:
daar heb je allemaal wel gelijk in maar hé het was voor ons ook de eerste keer en we hebben ons denk ik een beetje vergist in detijd die erin ging zitten
En over die tijdslimieten die waren niet te streng hoor. En bij de eerste opgaven is ook alles relatief snel nagekeken door de djury.
Ik waardeer het ook wel dat jullie die moeite nemen. Mijn kritiek was dan ook alleen maar een reactie op wat er NIET goed ging, wat natuurlijk niet wil zeggen dat er niets was dat WEL goed ging. Integendeel; maar om daar nou een bericht over te schrijven =)
FYI er was nog maar 1 inzending voor de laatste opgave..
Dat is misschien een aanduiding dat één of twee extra weken en een competitieronde halverwege het wel degelijk mogelijk hadden gemaakt voor anderen om een inzending te doen. Dat is dus ook het voordeel van eigen uitwerkingen van te voren afhebben: dan weet je hoeveel tijd er voor nodig is. Zelf zeg je ook, dat het nu zo lang duurt omdat het extra veel tijd kost om geschikte testprogrammatuur voor dit probleem te maken. Als het de jury al zoveel tijd kost, is het logisch om aan te nemen dat de deelnemers ook moeite hebben om binnen de gegeven deadlines met een goede oplossing te komen.
Ik heb iig voldoende motivatie en er gaat ook echt nog een winnaar komen....
Ben benieuwd =)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:13
Ander dingetje: als er maar één inzending was voor de laatste opgave, wat gaan jullie dan precies testen?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 15 februari 2002 12:04 schreef Soultaker het volgende:
Ander dingetje: als er maar één inzending was voor de laatste opgave, wat gaan jullie dan precies testen?
exact hetzelfde als dat we zouden doen met meerdere tegenstanders :)

Doet iets met Cloud (MS/IBM)


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Toch opvallend dat de jury nu opeens lightmods zijn :? ;)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 15 februari 2002 12:11 schreef Nielsz het volgende:
Toch opvallend dat de jury nu opeens lightmods zijn :? ;)
hehehe
wasigh was al mod
ik ben LM geworden
jRobert is nog gewoon user

Doet iets met Cloud (MS/IBM)


  • Munters
  • Registratie: September 2000
  • Laatst online: 17-08 13:56
FYI er was nog maar 1 inzending voor de laatste opgave..
Ik heb iig voldoende motivatie en er gaat ook echt nog een winnaar komen....
Maar 1 inzending? Dan is de winnaar toch bekend? :?

Nu had ik ook een oplossing ingestuurd, dus, uhm, maar, dan, yes!, toch? *D

Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Munters: Maar 1 inzending? Dan is de winnaar toch bekend? :?

Nu had ik ook een oplossing ingestuurd, dus, uhm, maar, dan, yes!, toch? *D
niet direct :)
volgens mij heb jij ook 1 opgave niet meegedaan :)
dus imho moeten de punten het gaan uitwijzen :)
dus stel dat je programma 'nix' doet dan is er imho nog niets zeker :)

Doet iets met Cloud (MS/IBM)

Pagina: 1 2 Laatste