Hoofdcategorieën
Topicacties

Awalé Programmeerwedstrijd

Pagina: 1 2 3 4 5 6 last

Reageer Nieuw Topic
Nog een bugreport:

Regel 4.3.3 uit de spelregels is niet correct geimplementeerd op de game-server. De regel luidt:
quote:
4.3.3 Indien er gekozen kan worden voor een veld om mee te zaaien
waarbij daarna volgens ‘ 4.4. Eten’ alle zaden aan de zijde van
de tegenstander worden gegeten, dan is dit alleen toegestaan
wanneer er geen andere zet mogelijk is.
Deze regel wordt wel goed gevolgd als de tegenstander na zijn zet geen zaden meer over heeft, voorbeeld:

Tegenstander aan zet:
* 1* [ 0] [ 0] [ 0] [ 0] [ 0]
[ 1] [ 0] [ 1] [ 5] [18] [ 0]

Situatie na zet van tegenstander:
[ 0] [ 0] [ 0] [ 0] [ 0] [ 0]
[ 0] [ 0] [ 1] [ 5] [18] [ 0]

Eigen zet:
[ 0] [ 0] [ 0] [ 0] [ 0] [ 0]
[ 0] [ 0] [ 1] [ 5] *18* [ 0]

Situatie na eigen zet:
[ 0] [ 0] [ 0] [ 0] [ 0] [ 0]
[ 0] [ 0] [ 1] [ 5] [ 0] [ 0]

Deze laatste zet is ongeldig, want deze neemt alle zaden van tegenstander weg, terwijl je opties hebt om te voeren die niet alle zaden oogst.

Hier een voorbeeld waar de gameserver het fout doet. Deze regel wordt niet goed gevolgd als de tegenstander na zijn zet nog wel zaden over heeft, voorbeeld:

Tegenstander aan zet:
* 2*  [ 0]  [ 0]  [ 0]  [ 0]  [ 1]  
[10]  [ 3]  [ 0]  [ 0]  [12]  [ 1]

Situatie na zet van tegenstander:
[ 0]  [ 0]  [ 0]  [ 0]  [ 0]  [ 1]  
[11]  [ 4]  [ 0]  [ 0]  [12]  [ 1]

Eigen zet:
[ 0]  [ 0]  [ 0]  [ 0]  [ 0]  [ 1]  
[11]  [ 4]  [ 0]  [ 0]  [12]  * 1*

Situatie na eigen zet:
[ 0]  [ 0]  [ 0]  [ 0]  [ 0]  [ 0]  
[11]  [ 4]  [ 0]  [ 0]  [12]  * 0* 

Dit is een ongeldige zet, want deze oogst alle zaden van de tegenstander terwijl er alternatieve zetten zijn. Zie ook het volgende spel met bovenstaande eindzetten: http://test.tjipchallenge...f40acba265333e3d97223.xml

Als deze bug niet gefixt wordt, kunnen jullie dan de spelregels aanpassen? :)

http://www.stuq.nl

Berichten: 11
Reg. datum: 26 oktober 2005

Als het echt zo is als _Daan_ zegt, lijkt het me belangrijk dat dit gefixed wordt. De spelregels zijn hier ook erg duidelijk over:

- In regel 4.3.3 staat dat het nooit en te nimmer is toegestaan om een tegenstander uit te hongeren indien er andere zetten mogelijk zijn.

Het lijkt me in het belang van een sportieve wedstrijd om de server volgens de regels te laten spelen. Ik denk dat dit voor iedereen belangrijk is.
 
Berichten: 18
Reg. datum: 24 juni 2007

Volgens mij staan er nog een aantal vrij belangrijke vragen open:

*De regels
Hierover was op de introductiebijeenkomst al onduidelijkheid. Mag je nou wel of niet alle zaden van de tegenstander slaan als er zetten zijn waarbij de tegenstander wel zaden over houd?
Op 25 juni werd in deze thread gemeld dat er overlegd zou worden. Ik heb echter nog geen antwoord gelezen en kennelijk klopt de implementatie daarvan niet met wat de regels zeggen.

Het lijkt me nu een beetje laat om de regels nog te veranderen, ik heb het ook zo geimplementeerd dat je niet alle zaden mag slaan en ik zal niet de enige zijn aangezien het zo in de hier geplaatste regels staat. Zou dus leuk zijn als de server ook volgens die regels gaat spelen.

*De methode getTime()
komt die er nu wel of niet? Ook hierover zou nog duidelijkheid gegeven worden. Voor de structuur van de programmas maakt het uit of ze de tijd zelf bijhouden of dat ze em op kunnen vragen. Met nog een week te gaan lijkt het me tijd dat hierover duidelijkheid komt.

*Het geheugen bij java
Misschien niet dringend, maar wel leuk als daar even naar gekeken wordt. Wordt dit voor ons op de wedstrijdcomputers verhoogd, kunnen we het zelf in een batchfile verhogen of is het gewoon pech gehad als je java gebruikt?
 
Berichten: 3
Reg. datum: 21 september 2007

Ben ook met spoed benieuwd naar de eerste twee punten van mijn voorganger (en ben ook van mening dat het een beetje laat is om de regels nog te gaan wijzigen).

Verder heb ik overigens d.d. 18 september gemerkt dat de Resign functie nog steeds niet goed werkt. Ik kreeg namelijk altijd terug dat de playerId niet zou kloppen ("not a member of this board" oid) terwijl ik met diezelfde playerId wél kon spelen.
(het maakt me verder weinig uit want ik zie het nut van de functie eerlijk gezegd sowieso niet in maar ok)
 
Berichten: 11
Reg. datum: 26 oktober 2005

Ik kwam tijdens het testen de volgende fout tegen in de random player / server:

Op het moment dat ik zou moeten beginnen, maar dat ik dat niet doe en een zet aan de tegenstander vraag, lijkt het erop dat de tegenstander inderdaad een zet gaat doen.

http://test.tjipchallenge...c4581b62565fa43aea0c0.xml

De tegenstander verliest vervolgens: 'The player 'random' executed a move when it wasn't his/her turn.'

Het lijkt me dat dit mijn fout is, en dat ik zou moeten verliezen hier.
 
Berichten: 3
Reg. datum: 21 september 2007

Heb ik eveneens gemerkt inderdaad.. :Y
 
Berichten: 18
Reg. datum: 24 juni 2007

om het zoeken naar je eigen partijen in de logs te vergemakkelijken heb ik de vrijheid genomen een pagina te maken die de partijen gesorteerd weergeeft en een verkort overzicht van de partij uit de xml-files haalt.

http://hemminga-online.nl/~vincent/index.php
 
quote:
vdeboer schreef op zaterdag 22 september 2007 @ 22:41:
om het zoeken naar je eigen partijen in de logs te vergemakkelijken heb ik de vrijheid genomen een pagina te maken die de partijen gesorteerd weergeeft en een verkort overzicht van de partij uit de xml-files haalt.

http://hemminga-online.nl/~vincent/index.php
Ziet er leuk uit! :)

Ik ben trouwens het meest benieuwd naar of de Java Server VM gebruikt wordt. De HotSpot Client VM is veel trager... Maar goed, het is inmiddels al weer 19 dagen terug dat deze vraag gesteld is ;(

http://www.stuq.nl

Berichten: 3
Reg. datum: 21 september 2007

quote:
quote:
:Y d:)b

Heb trouwens een vraag mbt de Java PC's die zometeen gereed staan. Is daar behalve de JDK ook AXIS2 al op geinstalleerd? Of moet dit bij je eigen project zitten? (en dat geldt eigenlijk voor alle toegestane externe jar's)

Verder vroeg ik me nog af of je programma zometeen heel het tournement moet blijven draaien, of dat het na een partij opnieuw opgestart mag/moet worden?
 
quote:
AfterSiX schreef op zondag 23 september 2007 @ 00:39:
[...]
Verder vroeg ik me nog af of je programma zometeen heel het tournement moet blijven draaien, of dat het na een partij opnieuw opgestart mag/moet worden?
Ik denk het laatste. Omdat er maar 2 pc's zijn en iedereen om de beurt zijn/haar engine daarop moet draaien. Als je het hele tournament door mag blijven draaien kun je alle resources van de mensen na jou gebruiken om alvast vooruit te denken...

Je kunt natuurlijk wel een daemon laten draaien die de boel flink bezig houdt nadat je aan de beurt geweest bent. Of de JVM aanpassen, zodat bepaalde classes ontzettend traag worden (en uiteraard weer terugzetten als je zelf weer aan de beurt bent).

Je kunt zoveel doen zonder de spelregels te overtreden O-)

Wie maakt zijn engine eigenlijk in Java? En wie in .Net?

http://www.stuq.nl

Berichten: 18
Reg. datum: 24 juni 2007

tja, ik hoop wel dat de tegenstanders in een partij op aparte computers gaan draaien. Het is anders op de dag zelf nog best mogelijk om je programma wat aan te passen zodat ie allerlei mooie getallen uitrekent terwijl je niet aan de beurt bent, het liefst in meerdere threads :) Lijkt me echter niet het doel van de wedstrijd.

Waar stond dat er maar 2 pc's zijn trouwens? Dan gaat het wel lang duren. Een voorzichtige schatting van 20 deelnemers en 9 rondes met 6 minuten per partij levert al een wedstrijd van 9 uur op, en dat is dan zonder de tijd die het kost om na iedere partij 2 nieuwe programmas op te starten...

Ik programmeer in java dus, zal ook wel gebleken zijn door mn vraag naar het geheugen voor java. Eigenlijk is dat altijd een nadeel volgens mij voor programmeerwedstrijden, maar blijf stug doorzetten :)

vdeboer wijzigde dit bericht 23-09-2007 14:28 (14%)

 
Berichten: 7
Reg. datum: 05 januari 2001

quote:
vdeboer schreef op zaterdag 22 september 2007 @ 22:41:
om het zoeken naar je eigen partijen in de logs te vergemakkelijken heb ik de vrijheid genomen een pagina te maken die de partijen gesorteerd weergeeft en een verkort overzicht van de partij uit de xml-files haalt.

http://hemminga-online.nl/~vincent/index.php
Goed bezig Vincent d:)b
Dat is zeker makkelijker!
quote:
_Daan_ schreef op zondag 23 september 2007 @ 12:56:
[...]
Wie maakt zijn engine eigenlijk in Java? En wie in .Net?
Mijn programma gebruikt het .NET framework.
 
Berichten: 9.114
Reg. datum: 13 september 2000

quote:
vdeboer schreef op zondag 23 september 2007 @ 14:06:
Ik programmeer in java dus, zal ook wel gebleken zijn door mn vraag naar het geheugen voor java. Eigenlijk is dat altijd een nadeel volgens mij voor programmeerwedstrijden, maar blijf stug doorzetten :)
Ik denk dat het ten opzichte van C# geen nadeel is. Ik gebruik zelf overigens ook Java.
quote:
vdeboer schreef op zondag 23 september 2007 @ 14:06:
[..]
Waar stond dat er maar 2 pc's zijn trouwens? Dan gaat het wel lang duren. Een voorzichtige schatting van 20 deelnemers en 9 rondes met 6 minuten per partij levert al een wedstrijd van 9 uur op, en dat is dan zonder de tijd die het kost om na iedere partij 2 nieuwe programmas op te starten...
[..]
Hier (eerder in deze thread):
quote:
Sjaaky schreef op maandag 03 september 2007 @ 15:54:
@_Daan_
1. Op wat voor soort machine wordt de applicatie uitgevoerd?
De wedstrijden worden gespeeld op een core2duo E6400 met 2GB geheugen. Alleen weten we nog niet of je de cpu en geheugen helemaal voor jezelf krijgt. Dat is uiteraard wel zo eerlijk en daar streven we ook naar. Maar bij veel inschrijvingen zullen we toch het aantal gelijktijdige partijen op
moeten schroeven om totale wedstrijdduur binnen de perken te houden.
Ik snap dat dit voor jullie op dit moment geen handig antwoord is, want het nut van meerdere berekeningthreads staat hiermee ook nog niet vast.
Als ik er meer over weet, dan horen jullie het.
[..]
We hebben nog niets gehoord, het is dan ook nog maar 3 weken terug gevraagd. :|

http://www.stuq.nl

Berichten: 11
Reg. datum: 26 oktober 2005

Ik vroeg me af of jullie ook nog wat pers uitgenodigd hebben? Altijd leuk als je gewonnen hebt en nog in de krant komt ook.
 
Berichten: 11
Reg. datum: 26 oktober 2005

quote:
Heb trouwens een vraag mbt de Java PC's die zometeen gereed staan. Is daar behalve de JDK ook AXIS2 al op geinstalleerd? Of moet dit bij je eigen project zitten? (en dat geldt eigenlijk voor alle toegestane externe jar's)
Het zou eerlijker zijn om deze al op de game pc te hebben staan. Dat is de enige manier om zeker te weten dat iedereen dezelfde heeft. Het zou wel handig zijn als dit nu alvast verteld wordt.
quote:
Verder vroeg ik me nog af of je programma zometeen heel het tournement moet blijven draaien, of dat het na een partij opnieuw opgestart mag/moet worden?
Ben ik ook benieuwd naar.
 
Berichten: 608
Reg. datum: 09 oktober 2000

Allereerst bedank voor de bugmeldingen en het geduld.
quote:
_Daan_ schreef op zaterdag 01 september 2007 @ 17:03:
-De laatste zet wordt niet opgeslagen.
-Onderin staat de laatste zet, positie 0. De FinishReason bovenin het bestand is echter: The player 'login' executed a move on field '5', the move is invalid. Maar, positie 5 is niet gezet, maar positie 0!
Beide opgelost.

GetTime(string playerId) is geïmplementeerd
C#:
1
2
3
4
5
6
/// <summary>
/// Gets the remaining time in milliseconds
/// </summary>
/// <param name="playerId">The players unique identifier.</param>
/// <returns></returns>
long GetTime(string playerId);

JNI ed zijn we inderdaad vergeten op te nemen.
JNI, unsafe code, COM interop, p/invoke, etc.. zijn allemaal verboden. Ik hoop dat jullie geen gebruik hebben van deze vrijheid. Het wordt voor de jury een stuk lastiger controleren wat er gebeurd als dat soort trucs worden uitgehaald. Bovendien is het voor het maken van een awale-engine absoluut niet nodig om dat soort technieken te gebruiken.
quote:
Regel 4.3.3 uit de spelregels is niet correct geimplementeerd op de game-server.
De bug op de testserver is opgelost.
quote:
Hierover was op de introductiebijeenkomst al onduidelijkheid. Mag je nou wel of niet alle zaden van de tegenstander slaan als er zetten zijn waarbij de tegenstander wel zaden over houd?
Als je een zet kunt doen waarbij je de tegenstander niet leeg eet, mag je de tegenstander niet leeg eten. Ik zie dat ik dat alleen in de startpost heb geupdate, niet echt duidelijk, sorry :)

Resign is gefixt.
quote:
Op het moment dat ik zou moeten beginnen, maar dat ik dat niet doe en een zet aan de tegenstander vraag, lijkt het erop dat de tegenstander inderdaad een zet gaat doen.
Ook gefixt.
quote:
tja, ik hoop wel dat de tegenstanders in een partij op aparte computers gaan draaien. Het is anders op de dag zelf nog best mogelijk om je programma wat aan te passen zodat ie allerlei mooie getallen uitrekent terwijl je niet aan de beurt bent, het liefst in meerdere threads :) Lijkt me echter niet het doel van de wedstrijd.
Pondering (denken in de tijd van de tegenstander) is toegestaan, zie de startpost. Daarom hebben we ook per speler een pc.
quote:
Je kunt natuurlijk wel een daemon laten draaien die de boel flink bezig houdt nadat je aan de beurt geweest bent. Of de JVM aanpassen, zodat bepaalde classes ontzettend traag worden (en uiteraard weer terugzetten als je zelf weer aan de beurt bent).
:X Ik denk dat we in dat soort gevallen hard na gaan denken over diskwalificatie.

De vragen over servers/geheugen/hoe op te starten staan dus nog open. Java en .Net krijgen evenveel geheugen. Met welke parameters de jvm wordt opgestart weten we nog niet precies.

One of the major reasons for the downfall of the Roman Empire was, lacking zero, they had no way to indicate termination of their C strings.

quote:
Sjaaky schreef op maandag 24 september 2007 @ 16:50:
[..]
De vragen over servers/geheugen/hoe op te starten staan dus nog open. Java en .Net krijgen evenveel geheugen. Met welke parameters de jvm wordt opgestart weten we nog niet precies.
Suggestie:
code:
1
java -server -Xms512m -Xmx2048m

http://www.stuq.nl

Berichten: 18
Reg. datum: 24 juni 2007

kan het zijn dat er nog een bug zit in de regel dat je moet feeden?

<Move User="1" Field="5" Time="130881381885" Position="2|1|1|2|18|0|24|0|0|0|0|0|0|0"/>
<Move User="0" Field="4" Time="130938258341" Position="3|2|2|3|0|2|36|0|0|0|0|0|0|0"/>

Ik kwam deze situatie tegen. Mijn programma speelt daar het veld met 18 seeds en speelt random daarmee leeg, De FinishReason is echter dat ik verloren heb omdat ik de tegenstander niet heb gefeed. Volgens mij kan dat echter ook niet... geen van de andere velden haalt de kant van de tegenstander.

Het lijkt wel goed te gaan als de tegenstander nog seeds heeft die geslagen worden als dat de enige mogelijkheid is, maar je kan em dus ook leegslaan als ie daarvoor al leeg was...

Nog een kleiner dingetje: als de tegenstander niet meer kan zetten dan krijg je alle seeds die er nog aan jouw kant liggen. Dit lijkt niet te gebeuren in de xml files. In de partij waarin het slaan wel goed ging was de score 25-0 terwijl het eigenlijk 48-0 is dan. Dat maakt in die situatie natuurlijk niet uit, maar als het 22-23 staat en de 22 hongert de ander uit dan wint ie met 25-23. Dan is het wel raar als de score 22-23 blijft.

vdeboer wijzigde dit bericht 26-09-2007 10:46 (23%)

 
Berichten: 608
Reg. datum: 09 oktober 2000

Ga ik naar kijken.

-> opgelost

Sjaaky wijzigde dit bericht 26-09-2007 17:45 (32%)

One of the major reasons for the downfall of the Roman Empire was, lacking zero, they had no way to indicate termination of their C strings.

Is er tijdens de laatste voorbereidingen voor de wedstrijd een internetverbinding beschikbaar?

Nog een vraag: worden de engines tegelijkertijd gestart?

En hoe vaak mag je pollen voor de zet van de tegenstander? 10x per seconde zoals eerder gesuggereerd? En wat gebeurt er als je vaker polled?

_Daan_ wijzigde dit bericht 28-09-2007 20:55 (55%)

http://www.stuq.nl

Berichten: 608
Reg. datum: 09 oktober 2000

Ga er van uit dat er morgenochtend geen internet beschikbaar is.

Mocht het echt nodig (en dat zal best wel :)) kunnen we altijd naar een normale werkplek gaan om daar dingen uit te zoeken, libraries te downloaden, onvoorziene problemen op te lossen.

Trouwens nog een mededeling!

De testserver start direct na het inloggen een partij. De echte server doet dit NIET. Dat betekent dat je na het inloggen moet vragen of er al een partij gestart is met GetMatchStatus(), zolang deze None of Waiting terug geeft moet je even (0.1 sec oid) slapen en dat nog een keer proberen.
Je kan datzelfde ook doen met GetServerStatus maar wij zorgen ervoor dat de clients pas op worden gestart als er een actieve ronde beschikbaar is.

10x per seconde vinden wij heel redelijk.
De engines worden tegelijk gestart.

--edit--

We gaan een run.bat gebruiken die door iedereen zelf ingeregeld kan worden met de juiste parameters etc..

Sjaaky wijzigde dit bericht 28-09-2007 21:46 (11%)

One of the major reasons for the downfall of the Roman Empire was, lacking zero, they had no way to indicate termination of their C strings.

Berichten: 9.114
Reg. datum: 13 september 2000

Op de huidige testserver verandert de match status anders niet meer zodra je gewonnen hebt. Werkt de echte server anders?

Of moet je eigenlijk StartMatch proberen?
Berichten: 11
Reg. datum: 26 oktober 2005

quote:
Soultaker schreef op vrijdag 28 september 2007 @ 22:21:
Op de huidige testserver verandert de match status anders niet meer zodra je gewonnen hebt.
Welke testserver gebruik jij? Bij mij verandert de match status in 'won' zodra ik gewonnen heb.
 
Berichten: 608
Reg. datum: 09 oktober 2000

Dat weet ik niet.
Maar als een partij afgelopen is mag je sowieso niet verder draaien (we killen het process). Dus dat gedeelte is niet heel erg van belang.

Sjaaky wijzigde dit bericht 28-09-2007 23:55 (9%)

One of the major reasons for the downfall of the Roman Empire was, lacking zero, they had no way to indicate termination of their C strings.

Pagina: 1 2 3 4 5 6 last



VNU Media logo Powered by True

© 1998 - 2009 Tweakers.net - Alle rechten voorbehouden - Uw Privacy - Algemene Voorwaarden

Uitgever van: