Ik kan met redelijk grote zekerheid zeggen dat deze optie niet werkt, of ik doe het verkeerd. ik stuur nu elke keer als er een information komt ?leavemealone=true terug maar ik krijg daarna nog steeds een request.Arjan schreef op zondag 07 november 2010 @ 23:07:
Er is nu een 'leavemealone' optie, als je "leavemealone=true" meestuurd dan neem je niet langer deel aan het spel, dit kunnen jullie dus gebruilken om requests te beperken
Heb je misschien een logfile voor me?remielowik schreef op maandag 08 november 2010 @ 02:52:
[...]
Ik kan met redelijk grote zekerheid zeggen dat deze optie niet werkt, of ik doe het verkeerd. ik stuur nu elke keer als er een information komt ?leavemealone=true terug maar ik krijg daarna nog steeds een request.
oprecht vertrouwen wordt nooit geschaad
Even snel testje: dit werkt voor mijn IIS server weer goed nu.Arjan schreef op maandag 08 november 2010 @ 00:05:
[...]
Probeer het nog eens, mogelijkheden om je response af te sluiten:
• connectie verbreken
• tweede lege regel sturen ( als je headers meestuurt bevatten deze een \n\n, de eerst volgende \n\n beeindigd je respons. Als je geen headers stuurt gewoon 4x \n sturen )
• content-length meesturen
http://houbenweb.nl:56789/?log=3497
Ik zie niet 1x leavemealone in de log terugkomen maar als ik een van de requests zelf probeer( in dit geval /koehandel/?market=215&id=3497&type=information&money=-QQQQQ90&goods=H&opponent=N , staat in de log ) dan krijg ik wel gewoon ?leavemealone=true terug als output.
Ik zie niet 1x leavemealone in de log terugkomen maar als ik een van de requests zelf probeer( in dit geval /koehandel/?market=215&id=3497&type=information&money=-QQQQQ90&goods=H&opponent=N , staat in de log ) dan krijg ik wel gewoon ?leavemealone=true terug als output.
Het is mij niet duidelijk wat je precies doet, maar laat ik hier een voorbeeld maken.
http://houbenweb.nl:56789/?log=3513
Hier zie je dat ik als antwoord op een van de request "?leavemealone=true" geef, waarop de server ' player disconnects' print en ik geen requests meer krijg
http://houbenweb.nl:56789/?log=3513
Hier zie je dat ik als antwoord op een van de request "?leavemealone=true" geef, waarop de server ' player disconnects' print en ik geen requests meer krijg
oprecht vertrouwen wordt nooit geschaad
Probeer hetzelfde eens alleen nu met type=information, want dan werkt het niet.
ah, nee dat klopt, het is een response op een request, maar een information, end en dergelijke types zijn eigenlijk geen requests en de server gaat dan ook niet nodeloos wachten op response ( tijdbesparing )
oprecht vertrouwen wordt nooit geschaad
Natuurlijk moet je wachten totdat de server klaar is. Anders is de data die je als informatie hebt verzonden nog niet verwerkt en opgeslagen. Om tijd te besparen mag je ondertussen natuurlijk wel doorgaan met requests naar de andere servers als de eerste server de communicatie niet heeft gesloten.Arjan schreef op maandag 08 november 2010 @ 16:04:
ah, nee dat klopt, het is een response op een request, maar een information, end en dergelijke types zijn eigenlijk geen requests en de server gaat dan ook niet nodeloos wachten op response ( tijdbesparing )
Speel ook Balls Connect en Repeat
Zodra ik de data over de socket verzonden heb sluit ik de connectie. Hierdoor wordt eventuele response op types als information, end, receive en collect zonder money gewoon genegeerd.Onbekend schreef op maandag 08 november 2010 @ 16:17:
[...]
Natuurlijk moet je wachten totdat de server klaar is. Anders is de data die je als informatie hebt verzonden nog niet verwerkt en opgeslagen. Om tijd te besparen mag je ondertussen natuurlijk wel doorgaan met requests naar de andere servers als de eerste server de communicatie niet heeft gesloten.
Is er trouwens nog behoefte aan een trade-voorbeeld in de openingspost?
oprecht vertrouwen wordt nooit geschaad
Ik heb liever dat de connection problemen opgelost worden. Tot die tijd is het spel gewoon onspeelbaar en begin ik niet eens aan het trade-aspect.Arjan schreef op maandag 08 november 2010 @ 20:24:
[...]
Is er trouwens nog behoefte aan een trade-voorbeeld in de openingspost?
De errors komen ook regelmatig voor in de logfiles van andere mensen, bijv log=3613, het ligt niet (alleen) aan mij.
Ja[b][message=34993311,noline]
Is er trouwens nog behoefte aan een trade-voorbeeld in de openingspost?
Dat ben ik...Ik heb er altijd minimaal 1....Vaak is ie niet essentieel, dus ik knutsel maar gewoon even verder.joppybt schreef op maandag 08 november 2010 @ 20:48:
De errors komen ook regelmatig voor in de logfiles van andere mensen, bijv log=3613, het ligt niet (alleen) aan mij.
Misschien kan je even kort wachten totdat je de volgende request stuurt...zeg 100ms. Mijn server is singlethreaded en forked ook niet (scheelt een hoop moelijke locking van de statefile). Misschien dat ik daarom af en toe wat mis.Arjan schreef op maandag 08 november 2010 @ 16:04:
ah, nee dat klopt, het is een response op een request, maar een information, end en dergelijke types zijn eigenlijk geen requests en de server gaat dan ook niet nodeloos wachten op response ( tijdbesparing )
Maarre traden dus!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| 2010:11:08 19:05:09:337 GET ?market=248&id=3629&type=start HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:08 19:05:09:378 connecting to player took 41 milliseconds 2010:11:08 19:05:09:428 player took 90 milliseconds to respond 2010:11:08 19:05:09:428 raw player response:?type=trade&opponent=E&goods=H&\n 2010:11:08 19:05:09:428 parsed player response: goods:H type:trade opponent:E money: auctioneer: message: 2010:11:08 19:05:09:428 2010:11:08 19:05:09:429 2010:11:08 19:05:09:429 GET ?market=248&id=3629&type=trade&goods=H&opponent=W&message=equal_bid HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:08 19:05:09:470 connecting to player took 41 milliseconds 2010:11:08 19:05:09:505 player took 76 milliseconds to respond 2010:11:08 19:05:09:505 raw player response:?\n 2010:11:08 19:05:09:505 parsed player response: goods: type: opponent: money: auctioneer: message: 2010:11:08 19:05:09:505 2010:11:08 19:05:09:505 2010:11:08 19:05:09:505 GET ?market=248&id=3629&type=information&message=no_opponent_specified HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n |
Money is leeg omdat ik random bied, maar dat wordt als 0 gezien dus we gaan verder. Tegenstander bied (zoals verwacht) ook 0. Nu gaat ie fout denk ik... Ik krijg een request met opponent West terwijl ik East heb uitgedaagd. Er staat een message bij equal_bid, dat snap ik. Wat moet ik nu precies antwoorden? Alleen een nieuw bod, of ook de opponent nog een keer?
[ Voor 12% gewijzigd door veldsla op 08-11-2010 21:30 ]
Een trade starten zonder minstens één money kaartje te bieden is zinloos. Elke reactie van de server daarop is ongedefinieerd zou ik zeggen.
Dat is natuurlijk niet waar. Je MOET traden, ook als je geen geld hebt.
Ik denk ik zal het even controleren in de handleiding (ik heb het spel), maar het staat niet zo hard in de regels. Er staat wel dat spelers met alleen complete kwartetten worden overgeslagen. Het zal in de praktijk wel niet vaak voorkomen. (Ik heb het nog nooit meegemaakt)
Nog een aardig dingetje uit de regels, als er twee keer achter elkaar een gelijk bod is uitgebracht dan wint de uitdager.
Nog ietsje beter gelezen.....(een bladzijde terug helpt ook):
Speler A begint de koehandel door speler B een geldbedrag te bieden. Dat doet hij door een of meerdere geldkaarten blind op tafel te leggen.
Maw, je hebt gelijk
Ik denk ik zal het even controleren in de handleiding (ik heb het spel), maar het staat niet zo hard in de regels. Er staat wel dat spelers met alleen complete kwartetten worden overgeslagen. Het zal in de praktijk wel niet vaak voorkomen. (Ik heb het nog nooit meegemaakt)
Nog een aardig dingetje uit de regels, als er twee keer achter elkaar een gelijk bod is uitgebracht dan wint de uitdager.
Nog ietsje beter gelezen.....(een bladzijde terug helpt ook):
Speler A begint de koehandel door speler B een geldbedrag te bieden. Dat doet hij door een of meerdere geldkaarten blind op tafel te leggen.
Maw, je hebt gelijk
[ Voor 93% gewijzigd door veldsla op 08-11-2010 22:03 ]
Volgens de Wikipedia spelregels:
Het zou ook wat vreemd zijn. Als je tegenstander ook niets biedt gaat het kaartje (gratis) naar de veilingmeester. Als de tegenstander zijn laagste geldkaart biedt wint hij weliswaar maar raakt hij wel dat geldkaartje kwijt.
Effectief zou je als veilingmeester zonder geld bieden zomaar hetzij het goederenkaartje, hetzij geld krijgen zonder dat het jezelf ook maar iets kan kosten. Dat kan niet de bedoeling zijn.
- De veilingmeester geeft aan met welke speler hij wil handelen en om welk dier het gaat.
- Vervolgens legt de veilingmeester één of meerdere geldkaarten gedekt op tafel neer, zonder te zeggen hoeveel geld dit vertegenwoordigt.
Het zou ook wat vreemd zijn. Als je tegenstander ook niets biedt gaat het kaartje (gratis) naar de veilingmeester. Als de tegenstander zijn laagste geldkaart biedt wint hij weliswaar maar raakt hij wel dat geldkaartje kwijt.
Effectief zou je als veilingmeester zonder geld bieden zomaar hetzij het goederenkaartje, hetzij geld krijgen zonder dat het jezelf ook maar iets kan kosten. Dat kan niet de bedoeling zijn.
Dus wat wordt het dan....Een beurt overslaan? Wat wordt daarvoor de request?
Ik heb de Qt error string bij de timeout gezet, als iemand nog een timeout ontvangt, graag even laten weten wat erbij staat.joppybt schreef op maandag 08 november 2010 @ 20:48:
[...]
Ik heb liever dat de connection problemen opgelost worden. Tot die tijd is het spel gewoon onspeelbaar en begin ik niet eens aan het trade-aspect.
De errors komen ook regelmatig voor in de logfiles van andere mensen, bijv log=3613, het ligt niet (alleen) aan mij.
Geen idee waarom er zoveel timeouts zijn.. hopelijk levert bovenstaande errorstring wat op.veldsla schreef op maandag 08 november 2010 @ 21:16:
[...]
Dat ben ik...Ik heb er altijd minimaal 1....Vaak is ie niet essentieel, dus ik knutsel maar gewoon even verder.
Dat kan, maar als ik in je log kijk zitten er seconden tussen de query die goed ging en die wat een timeout had...[...]
Misschien kan je even kort wachten totdat je de volgende request stuurt...zeg 100ms. Mijn server is singlethreaded en forked ook niet (scheelt een hoop moelijke locking van de statefile). Misschien dat ik daarom af en toe wat mis.
dat is niet waar, ze komen idd kort na elkaar, zal kijken dat ik wat ademruimte inbouw
Die opponent die veranderd heb ik gefixt. Je moet een nieuw bod doen, de opponent blijft gelijk en hoef je niet in te vullen. ( moet ik nog even aanpassen )Maarre traden dus!
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2010:11:08 19:05:09:337 GET ?market=248&id=3629&type=start HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:08 19:05:09:378 connecting to player took 41 milliseconds 2010:11:08 19:05:09:428 player took 90 milliseconds to respond 2010:11:08 19:05:09:428 raw player response:?type=trade&opponent=E&goods=H&\n 2010:11:08 19:05:09:428 parsed player response: goods:H type:trade opponent:E money: auctioneer: message: 2010:11:08 19:05:09:428 2010:11:08 19:05:09:429 2010:11:08 19:05:09:429 GET ?market=248&id=3629&type=trade&goods=H&opponent=W&message=equal_bid HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:08 19:05:09:470 connecting to player took 41 milliseconds 2010:11:08 19:05:09:505 player took 76 milliseconds to respond 2010:11:08 19:05:09:505 raw player response:?\n 2010:11:08 19:05:09:505 parsed player response: goods: type: opponent: money: auctioneer: message: 2010:11:08 19:05:09:505 2010:11:08 19:05:09:505 2010:11:08 19:05:09:505 GET ?market=248&id=3629&type=information&message=no_opponent_specified HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n
Money is leeg omdat ik random bied, maar dat wordt als 0 gezien dus we gaan verder. Tegenstander bied (zoals verwacht) ook 0. Nu gaat ie fout denk ik... Ik krijg een request met opponent West terwijl ik East heb uitgedaagd. Er staat een message bij equal_bid, dat snap ik. Wat moet ik nu precies antwoorden? Alleen een nieuw bod, of ook de opponent nog een keer?
Als je op het laatst geen geld hebt dan zijn de huidige regels voldoende om het verdere verloop van het spel te impliceren, je kan niet bieden -> pass -> pass = opgeven. Dat zijn meteen al je opties wanneer je op het laatst zonder geld zit
oprecht vertrouwen wordt nooit geschaad
log=3771 bevat weer diverse keren 'Could not connect'.Arjan schreef op dinsdag 09 november 2010 @ 00:42:
[...]
Ik heb de Qt error string bij de timeout gezet, als iemand nog een timeout ontvangt, graag even laten weten wat erbij staat.
Vaak staat er geen foutmelding achter maar wel een keer met
code:
1
2
3
4
| 2010:11:09 15:49:52:552 GET /v3/vc/?market=283&id=3771&type=auction&auctioneer=W&goods=J&opponent=W&message=N0E0 HTTP/1.1\r\nHost: g*i*m*n*d*n*n*.*r*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:09 15:49:57:576 could not connect to g*i*m*n*d*n*n*.*r* 82 /v3/vc/ 2010:11:09 15:49:57:576 2010:11:09 15:49:57:576 response timed out: Socket operation timed out |
Overigens hebben tegelijkertijd mij clients met log 3769 geen fouten en en 3770 en 3772 ook fouten.
Ik kan het niet laten om verder te testen.
In plaats van mijn domeinnaam op te geven heb ik eens rechtstreeks mijn IP-adres gebruikt en zowaar: ik heb nu zo'n 10 potjes kunnen spelen zonder connection errors.
Daar tussendoor heb ik ook een paar keer geprobeerd met mijn (dyndns) domein naam en dat gaf eigenlijk altijd wel errors.
Het lijkt dus op ip-adres altijd goed te gaan.
Welke DNS-server gebruik je!
In plaats van mijn domeinnaam op te geven heb ik eens rechtstreeks mijn IP-adres gebruikt en zowaar: ik heb nu zo'n 10 potjes kunnen spelen zonder connection errors.
Daar tussendoor heb ik ook een paar keer geprobeerd met mijn (dyndns) domein naam en dat gaf eigenlijk altijd wel errors.
Het lijkt dus op ip-adres altijd goed te gaan.
Welke DNS-server gebruik je!
212.54.40.25 en 212.54.35.25, beide van Sicko de clownjoppybt schreef op dinsdag 09 november 2010 @ 20:26:
Ik kan het niet laten om verder te testen.
In plaats van mijn domeinnaam op te geven heb ik eens rechtstreeks mijn IP-adres gebruikt en zowaar: ik heb nu zo'n 10 potjes kunnen spelen zonder connection errors.
Daar tussendoor heb ik ook een paar keer geprobeerd met mijn (dyndns) domein naam en dat gaf eigenlijk altijd wel errors.
Het lijkt dus op ip-adres altijd goed te gaan.
Welke DNS-server gebruik je!
Ik zou het ip kunnen resolven en daarna connecten, maar volgens mij geeft dat problemen voor gedeelde webhosts
[ Voor 9% gewijzigd door Arjan op 09-11-2010 20:46 ]
oprecht vertrouwen wordt nooit geschaad
Dit kan wel maar dan zou je de header "host" mee moeten geven met de correct domainnaam.
[ Voor 5% gewijzigd door remielowik op 09-11-2010 22:23 ]
remielowik schreef op dinsdag 09 november 2010 @ 22:22:
Dit kan wel maar dan zou je de header "host" mee moeten geven met de correct domainnaam.
Vanaf nu probeert de server naar ip te connecten wanneer hij deze informatie heeft
Dat werkte niet ivm. poort nummer, spijtig maar helaas
[ Voor 9% gewijzigd door Arjan op 10-11-2010 22:51 ]
oprecht vertrouwen wordt nooit geschaad
Die server is nu onbereikbaar..... Van programmeren zal het weer niet van komen.
Speel ook Balls Connect en Repeat
weet niet waarom ie niet draaide, maar nu draait t weer
Als iemand een oplossing heeft ( of een snelle alternatieve DNS server ) voor het DNS probleem dan hoor ik dat graag
Als iemand een oplossing heeft ( of een snelle alternatieve DNS server ) voor het DNS probleem dan hoor ik dat graag
[ Voor 52% gewijzigd door Arjan op 11-11-2010 07:53 ]
oprecht vertrouwen wordt nooit geschaad
Ik heb thuis ook Ziggo. Als ik Ubuntu gebruik, en dat doe ik meestal
, moet er soms tijdens het browsen al opnieuw gekeken worden waar een domeinnaam geresolved wordt.
Mijn oplossing: http://www.opendns.com/ ingesteld in mijn router. Ook niet fantastisch, maar in ieder geval beter. Een andere mogelijkheid: Googles public dns. Geen ervaring mee, maar bij Google hebben ze genoeg kennis in huis om een fatsoenlijke DNS server in elkaar te zetten.
Mijn oplossing: http://www.opendns.com/ ingesteld in mijn router. Ook niet fantastisch, maar in ieder geval beter. Een andere mogelijkheid: Googles public dns. Geen ervaring mee, maar bij Google hebben ze genoeg kennis in huis om een fatsoenlijke DNS server in elkaar te zetten.
Je had gelijk, sorry daarvoor, ik ga even zorgen dat ik een mailtje krijg als er iets misgaat en zorgen dat de server zelf weer startveldsla schreef op donderdag 11 november 2010 @ 19:29:
Server weer down?
Ook probeer ik vanavond nog even een trade voorbeeld in de openingspost te zetten.
Daarnaast heb ik de server de google public DNS laten gebruiken zoals werd aangeraden, dus als iemand nog connectie problemen ondervind graag even melden
oprecht vertrouwen wordt nooit geschaad
Vooralsnog lijkt het goed te gaan, zonder connection errors.
Om wat meer zekerheid te krijgen wil ik na afloop van een markt de logfiles automatisch downloaden om ze op connection fouten te kunnen analyseren.
Normaal gesproken gebruik ik daarvoor de Windows component MSXML2.ServerXMLHTTP.4.0. Die geeft nu echter een foutmelding "The server returned an invalid or unrecognized response". Voor zover ik kan zien wordt bij de logfiles helemaal geen http-header meegestuurd.
Firefox doet er overigens gelukkig niet moeilijk over maar IE8 weigert ook überhaupt de logfiles te tonen.
Kun je de HTTP-headers toevoegen aan het downloaden van de logfiles?
Om wat meer zekerheid te krijgen wil ik na afloop van een markt de logfiles automatisch downloaden om ze op connection fouten te kunnen analyseren.
Normaal gesproken gebruik ik daarvoor de Windows component MSXML2.ServerXMLHTTP.4.0. Die geeft nu echter een foutmelding "The server returned an invalid or unrecognized response". Voor zover ik kan zien wordt bij de logfiles helemaal geen http-header meegestuurd.
Firefox doet er overigens gelukkig niet moeilijk over maar IE8 weigert ook überhaupt de logfiles te tonen.
Kun je de HTTP-headers toevoegen aan het downloaden van de logfiles?
Als beginner in c#, heb ik veel tijd gestoken om een threaded webserver via een games-singleton te koppelen aan de juiste game class obv market/id. En dan ben ik nog niet begonnen aan de echte inhoud.
Help, ik wil een ?S=AABCDEFFHJQ7&W=ABBCEFFGGIQ13&N=CDDDEGGHHIIQ13&E=ABCEHIJJJQ11
(in de logs)
Zijn er al spelers om mee te oefenen?
Help, ik wil een ?S=AABCDEFFHJQ7&W=ABBCEFFGGIQ13&N=CDDDEGGHHIIQ13&E=ABCEHIJJJQ11
(in de logs)
Zijn er al spelers om mee te oefenen?
donejoppybt schreef op vrijdag 12 november 2010 @ 14:59:
[...]
Kun je de HTTP-headers toevoegen aan het downloaden van de logfiles?
oprecht vertrouwen wordt nooit geschaad
Nou...bijna. Ik heb volgens mij een speler die alles netjes bijhoudt. Slim is ie niet, maar daar zou ik nu dan een beetje mee kunnen gaan beginnen....Echter....Als ik mijn speler tegen zichzelf laat spelen (2 van mij en 2x de passende server) dan zijn beide spelers het aan het einde niet eens over welke kaarten waar zijn.Bolukan schreef op vrijdag 12 november 2010 @ 15:46:
Zijn er al spelers om mee te oefenen?
De laatste keer (market 426) had speler 1 (id 4341) 39 kaarten op de verschillende handen en speler 2 34 (id 4342). Ik ging uit van een foutje aan mijn kant, maar ik zie het toch echt niet. Als ik in de beide logs elke regel tel waar information/goods en receive/goods in voorkomt dan zie ik ook 39 requests naar speler 1 en 36 naar speler 2. Ik zie geen timeouts. Mis ik iets?
Nee hoor, je mist helemaal niets.veldsla schreef op vrijdag 12 november 2010 @ 21:40:
Mis ik iets?
Het probleem (waar ik nu ook mee bezig ben op te lossen) zit 'em in het feit dat de request met informatie niet wacht tot jouw script klaar is. Het kan dus zijn dat jij nog bezig bent met de informatie weg te schrijven, en dat er opnieuw een informatie-request wordt gedaan. Aan het begin van dat nieuwe request heb je nog niet de data beschikbaar die dat andere scriptje nog aan het wegschrijven is.
Vervolgens mis je dus gewoon informatie.....
Speel ook Balls Connect en Repeat
Klinkt overtuigend, maar ik heb het niet over mijn logs. In de server log staan niet voldoende requests.
Hier ben ik ook al wel tegenaan gelopen.
Zoek in de logfiles maar eens op &type=auction&money=
Dat komt in log=4341 1 keer voor (40-1=39) en in log=4342 6 keer (40-6-34) wat precies je missende kaartjes verklaar.
Uitleg aan de hand van het begin van log=4341
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| 2010:11:12 19:08:50:447 GET ?market=426&id=4341&type=start HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:12 19:08:50:627 connecting to player took 179 milliseconds 2010:11:12 19:08:50:778 player took 330 milliseconds to respond 2010:11:12 19:08:50:778 raw player response:?type=auction\n 2010:11:12 19:08:50:778 parsed player response: goods: type:auction opponent: money: auctioneer: message: 2010:11:12 19:08:50:778 2010:11:12 19:08:50:931 2010:11:12 19:08:50:931 GET ?market=426&id=4341&type=auction&money=t&goods=A&opponent=W&message=W10N0E0 HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:12 19:08:50:978 connecting to player took 47 milliseconds 2010:11:12 19:08:51:016 player took 85 milliseconds to respond 2010:11:12 19:08:51:016 raw player response:\n 2010:11:12 19:08:51:017 parsed player response: goods: type: opponent: money: auctioneer: message: 2010:11:12 19:08:51:017 2010:11:12 19:08:51:161 2010:11:12 19:08:51:161 GET ?market=426&id=4341&type=receive&money=t&opponent=W HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:12 19:08:51:213 connecting to player took 52 milliseconds 2010:11:12 19:08:51:213 added money nnttttf -> nnttttft 2010:11:12 19:08:51:347 2010:11:12 19:08:51:347 GET ?market=426&id=4341&type=auction&auctioneer=W&goods=A&opponent=W&message=N0E0 HTTP/1.1\r\nHost: a*n*.*o*e*p*n*t:8080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n |
Regel 4: Jij start hier een auction,
Regel 8: W heeft 10 (t) geboden voor het A-kaartje, verder biedt niemand.
Regel 11: Jij maakt geen gebruik van het zelfkooprecht.
Regel 15: Jij krijgt dus het t-kaartje van W
Regel 19: de volgende ronde is begonnen
Wat echter mist: een information dat het het A-kaartje naar W is gegaan.
Op dit moment heb ik ingebouwd dat als ik het zelfkooprecht niet uitoefen dat ik dan automatisch registreer dat het kaartje naar de opponent gaat. (dat gaat echter mislopen als er meerdere opponents bieden?)
Samenvattend: als je bij een auction geen gebruik maakt van het zelfkooprecht krijg je geen information over wie het kaartje dan wel krijgt. Dit moet volgens mij toegevoegd worden door de server.
Er klopt iets niet inderdaad, als ik grep op je logs zie ik inderdaad dat er maar 37 kaarten zijn uitgedeeld, iets wat ik nog niet eerder heb gezien, ik ga proberen dit te reproduceren.veldsla schreef op vrijdag 12 november 2010 @ 21:40:
[...]
De laatste keer (market 426) had speler 1 (id 4341) 39 kaarten op de verschillende handen en speler 2 34 (id 4342). Ik ging uit van een foutje aan mijn kant, maar ik zie het toch echt niet. Als ik in de beide logs elke regel tel waar information/goods en receive/goods in voorkomt dan zie ik ook 39 requests naar speler 1 en 36 naar speler 2. Ik zie geen timeouts. Mis ik iets?
ah, joppybt heeft 'm al gespot zie ik
[ Voor 3% gewijzigd door Arjan op 12-11-2010 22:18 ]
oprecht vertrouwen wordt nooit geschaad
En je gaat het fixen? Dat spaart mij een hele ugly hack 
Thanks joppybt, goeie info!
Thanks joppybt, goeie info!
Een heel andere vraag: wanneer eindigt het spel eigenlijk? Als niemand meer wil handelen?
Stel Zuid heeft 1xA en Noord heeft 2xA. West en Oost vinden alles best en passen op alles.
Zuid start een trade om een kaartje van Noord te bemachtigen. Dat vind Noord wel best en vervolgens heeft Zuid dus 2xA en Noord 1xA
Even later is Noord de veilingmeester en hij start ook een trade op om zijn kaartje terug te krijgen. Dat lukt ook en we zijn weer terug bij de uitgangssituatie. Even later start Zuid weer een nieuwe trade. Je voelt wel aan dat dit heel lang kan duren.
Met echte mensen zal iemand dit wel snel zat zijn en anders gaan bieden/ reageren of wat dan ook. Computers kunnen echter zeer consequent zijn en vooral zeer geduldig als het om herhalende taken gaat.
Ofwel: is er een oneindige handel bescherming?
Stel Zuid heeft 1xA en Noord heeft 2xA. West en Oost vinden alles best en passen op alles.
Zuid start een trade om een kaartje van Noord te bemachtigen. Dat vind Noord wel best en vervolgens heeft Zuid dus 2xA en Noord 1xA
Even later is Noord de veilingmeester en hij start ook een trade op om zijn kaartje terug te krijgen. Dat lukt ook en we zijn weer terug bij de uitgangssituatie. Even later start Zuid weer een nieuwe trade. Je voelt wel aan dat dit heel lang kan duren.
Met echte mensen zal iemand dit wel snel zat zijn en anders gaan bieden/ reageren of wat dan ook. Computers kunnen echter zeer consequent zijn en vooral zeer geduldig als het om herhalende taken gaat.
Ofwel: is er een oneindige handel bescherming?
die ga ik fixen javeldsla schreef op vrijdag 12 november 2010 @ 22:22:
En je gaat het fixen? Dat spaart mij een hele ugly hack
Thanks joppybt, goeie info!
Je hebt gelijk dat dit een risico is, normaal gesproken ga je ervan uit dat iemand dan achter de passende speler aangaat waardoor er daarna om een kwartet gespeeld wordt. Ik zal bedenken of ik een passende oplossing kan vinden.joppybt schreef op vrijdag 12 november 2010 @ 22:52:
Een heel andere vraag: wanneer eindigt het spel eigenlijk? Als niemand meer wil handelen?
Stel Zuid heeft 1xA en Noord heeft 2xA. West en Oost vinden alles best en passen op alles.
Zuid start een trade om een kaartje van Noord te bemachtigen. Dat vind Noord wel best en vervolgens heeft Zuid dus 2xA en Noord 1xA
Even later is Noord de veilingmeester en hij start ook een trade op om zijn kaartje terug te krijgen. Dat lukt ook en we zijn weer terug bij de uitgangssituatie. Even later start Zuid weer een nieuwe trade. Je voelt wel aan dat dit heel lang kan duren.
Met echte mensen zal iemand dit wel snel zat zijn en anders gaan bieden/ reageren of wat dan ook. Computers kunnen echter zeer consequent zijn en vooral zeer geduldig als het om herhalende taken gaat.
Ofwel: is er een oneindige handel bescherming?
oprecht vertrouwen wordt nooit geschaad
Verwijderd
Bij mij is het daarvoor te laat. Ik vond het wel enigszins te begrijpen dat dit niet werd herhaald aangezien je het kon afleiden uit de 'auction' berichten maar het is waarschijnlijk wel duidelijker als het nog eens expliciet vermeld wordt. Gelieve dat dan te melden zodat ik geen goederen dubbel begin te tellen.veldsla schreef op vrijdag 12 november 2010 @ 22:22:
En je gaat het fixen? Dat spaart mij een hele ugly hack
En dan nog een kleine hint/opmerking,die ik zelf niet meteen door had: als je wil traden en zowel jij als je opponent hebben 2 kaarten, worden beide kaarten ingezet, wat ook vermeld moet worden in het 'goods' field. Dan moet je dus bvb goods=AA doorgeven ipv goods=A.
Mijn speler is bijna af, maar nog enkele zaken moeten juist afgehandeld worden (equal_bid en nog wat randgevallen). Als hij dan stabiel draait dan maak ik hem waarschijnlijk wel beschikbaar als sparring partner.
Overigens na er gisteren geen last van te hebben gehad treden er nu toch weer regelmatig connection errors op en mis ik messages.
Ik vind ze bijvoorbeeld in de logfiles 4357, 4359, 4360 bij mijn eigen player maar ook bijvoorbeeld in log=4362, log=4363, log=4364 waar de player h*u*e*w*b*n* 56789 is, een interne player van Arjan?
Ik vind ze bijvoorbeeld in de logfiles 4357, 4359, 4360 bij mijn eigen player maar ook bijvoorbeeld in log=4362, log=4363, log=4364 waar de player h*u*e*w*b*n* 56789 is, een interne player van Arjan?
Ik heb er weer 1!
Als ik alle kwartetten compleet heb, dan krijg ik toch nog een type=start naar mijn hoofd geslingerd...Dat kan natuurlijk niet. Het spel is afgelopen.
(wel een fijne score: GET ?market=448&id=4429&type=end&message=S38500W0N0E0
)
Dit kom ik ook nog wel eens tegen:
Ik wil traden met E, maar de server zegt no opponent specified.
Okee. Dit is hoop ik echt de laatste. Ik mis nog steeds goederen als ik met 2 spelers speel (het geval dat ik niet overbied op een zelf gestarte auction zit er intussen al in)
West auctioned (mijn speler 2). Ik bied tien. Dan ontvang ik 60, W heeft dus overboden. Moet ik nu zelf echt weten dat kaartje H naar West is gegaan?
Als ik alle kwartetten compleet heb, dan krijg ik toch nog een type=start naar mijn hoofd geslingerd...Dat kan natuurlijk niet. Het spel is afgelopen.
(wel een fijne score: GET ?market=448&id=4429&type=end&message=S38500W0N0E0
Dit kom ik ook nog wel eens tegen:
code:
1
2
3
4
5
6
7
8
| 2010:11:13 13:47:51:188 GET ?market=450&id=4438&type=start HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:9081\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:13 13:47:51:219 connecting to player took 30 milliseconds 2010:11:13 13:47:51:258 player took 69 milliseconds to respond 2010:11:13 13:47:51:258 raw player response:?type=trade&opponent=E&goods=GG&money=n\n 2010:11:13 13:47:51:258 parsed player response: goods:GG type:trade opponent:E money:n auctioneer: message: 2010:11:13 13:47:51:258 2010:11:13 13:47:51:258 2010:11:13 13:47:51:259 GET ?market=450&id=4438&type=information&message=no_opponent_specified HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:9081\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n |
Ik wil traden met E, maar de server zegt no opponent specified.
Okee. Dit is hoop ik echt de laatste. Ik mis nog steeds goederen als ik met 2 spelers speel (het geval dat ik niet overbied op een zelf gestarte auction zit er intussen al in)
code:
1
2
3
4
5
6
7
8
| 2010:11:13 14:06:06:430 GET ?market=451&id=4441&type=auction&auctioneer=W&goods=H&opponent=W&message=N0E0 HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:9080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:13 14:06:06:461 connecting to player took 31 milliseconds 2010:11:13 14:06:06:497 player took 67 milliseconds to respond 2010:11:13 14:06:06:498 raw player response:?money=t\n 2010:11:13 14:06:06:498 parsed player response: goods: type: opponent: money:t auctioneer: message: 2010:11:13 14:06:06:498 2010:11:13 14:06:06:664 2010:11:13 14:06:06:664 GET ?market=451&id=4441&type=receive&money=tf&opponent=W HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:9080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n |
West auctioned (mijn speler 2). Ik bied tien. Dan ontvang ik 60, W heeft dus overboden. Moet ik nu zelf echt weten dat kaartje H naar West is gegaan?
[ Voor 93% gewijzigd door veldsla op 13-11-2010 16:22 ]
Vanaf heden wordt ook de verliezer bij een auction op de hoogte gesteld van de hoeveelheid geld / goederen die verhandeld zijnVerwijderd schreef op vrijdag 12 november 2010 @ 23:14:
[...]
Bij mij is het daarvoor te laat. Ik vond het wel enigszins te begrijpen dat dit niet werd herhaald aangezien je het kon afleiden uit de 'auction' berichten maar het is waarschijnlijk wel duidelijker als het nog eens expliciet vermeld wordt. Gelieve dat dan te melden zodat ik geen goederen dubbel begin te tellen.
[...]
Erg vervelend! Het is geen interne speler, maar gewoon iemand die het server adres heeft ingevuld als spelerjoppybt schreef op zaterdag 13 november 2010 @ 11:45:
Overigens na er gisteren geen last van te hebben gehad treden er nu toch weer regelmatig connection errors op en mis ik messages.
Ik vind ze bijvoorbeeld in de logfiles 4357, 4359, 4360 bij mijn eigen player maar ook bijvoorbeeld in log=4362, log=4363, log=4364 waar de player h*u*e*w*b*n* 56789 is, een interne player van Arjan?
fixedveldsla schreef op zaterdag 13 november 2010 @ 15:24:
Ik heb er weer 1!
Als ik alle kwartetten compleet heb, dan krijg ik toch nog een type=start naar mijn hoofd geslingerd...Dat kan natuurlijk niet. Het spel is afgelopen.
[...]
fixedIk wil traden met E, maar de server zegt no opponent specified.
Dit is volgens mij hetzelfde als bovengenoemde, namelijk dat de verliezer en de winnaar niet ingelicht werden over de verhandelde goederen, bij een auction zal de verliezer nu ook ingelicht worden.Okee. Dit is hoop ik echt de laatste. Ik mis nog steeds goederen als ik met 2 spelers speel (het geval dat ik niet overbied op een zelf gestarte auction zit er intussen al in)
code:
1 2 3 4 5 6 7 8 2010:11:13 14:06:06:430 GET ?market=451&id=4441&type=auction&auctioneer=W&goods=H&opponent=W&message=N0E0 HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:9080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:13 14:06:06:461 connecting to player took 31 milliseconds 2010:11:13 14:06:06:497 player took 67 milliseconds to respond 2010:11:13 14:06:06:498 raw player response:?money=t\n 2010:11:13 14:06:06:498 parsed player response: goods: type: opponent: money:t auctioneer: message: 2010:11:13 14:06:06:498 2010:11:13 14:06:06:664 2010:11:13 14:06:06:664 GET ?market=451&id=4441&type=receive&money=tf&opponent=W HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:9080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n
West auctioned (mijn speler 2). Ik bied tien. Dan ontvang ik 60, W heeft dus overboden. Moet ik nu zelf echt weten dat kaartje H naar West is gegaan?
vanaf heden draait de server met deze aanpassingen
oprecht vertrouwen wordt nooit geschaad
Ik stap wel definitief over op IP-adres gebruik. Daar heb ik vooralsnog nooit een connection error mee gehad.Arjan schreef op zaterdag 13 november 2010 @ 20:04:
Erg vervelend! Het is geen interne speler, maar gewoon iemand die het server adres heeft ingevuld als speler
Weet je het zeker?vanaf heden draait de server met deze aanpassingen
code:
1
2
3
4
5
6
7
8
9
10
11
12
| 2010:11:13 18:51:36:215 GET /v3/vx/?market=453&id=4449&type=auction&money=f&goods=G&opponent=E&message=W0N0E50 HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:13 18:51:36:237 connecting to player took 21 milliseconds 2010:11:13 18:51:36:271 player took 55 milliseconds to respond 2010:11:13 18:51:36:271 raw player response:HTTP/1.1 200 OK\r\nCache-Control: private\r\nContent-Length: 1\r\nContent-Type: text/html\r\nServer: Microsoft-IIS/7.0\r\nDate: Sat, 13 Nov 2010 19:50:39 GMT\r\n\r\n? 2010:11:13 18:51:36:271 parsed player response: goods: type: opponent: money: auctioneer: message: 2010:11:13 18:51:36:271 2010:11:13 18:51:36:377 2010:11:13 18:51:36:377 GET /v3/vx/?market=453&id=4449&type=receive&money=f&opponent=E HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:13 18:51:36:400 connecting to player took 23 milliseconds 2010:11:13 18:51:36:400 added money nnttttff -> nnttttfff 2010:11:13 18:51:36:688 2010:11:13 18:51:36:688 GET /v3/vx/?market=453&id=4449&type=auction&auctioneer=W&money=f&goods=C&opponent=N&message=N50E0 HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n |
Tussen twee auctions door zit geen information wie het goederen kaartje gekregen heeft.
Dank, goed bezig. Alleen als de verliezer ook auctioneer is wordt hij nog steeds niet ingelicht.Arjan schreef op zaterdag 13 november 2010 @ 20:04:
Dit is volgens mij hetzelfde als bovengenoemde, namelijk dat de verliezer en de winnaar niet ingelicht werden over de verhandelde goederen, bij een auction zal de verliezer nu ook ingelicht worden.
vanaf heden draait de server met deze aanpassingen
Met 2 spelers net een goed spel gehad. Met 4 gaat er weer iets mis, maar dat ga ik eerst wel weer even bij mezelf zoeken.
== != != 
Verliezer zou nu een melding moeten krijgen
Verliezer zou nu een melding moeten krijgen
oprecht vertrouwen wordt nooit geschaad
Ik heb mijn probleem ook gevonden. Bij de afhandeling van een trade met de niet tradende spelers komt eerst de info met wie het beest krijgt en hoeveel geld hij daarvoor betaalt. Daarna komt pas wie het beest levert en het geld krijgt. In mijn implementatie is de beestkaart nog helemaal niet beschikbaar. Als ik de information gebruik om alvast het beest bij de opponent af te nemen kom ik bij de volgende request in de knoop, maar nog belangrijker er is geen onderscheid meer tussen de information bij een auction (waarbij de kaart uit de pot komt) en bij een trade.
Is het een optie om die 2 requests in 1 te bouwen?
Of in 4 (eerst allebei afnemen en dan weer weggeven) dan kan je altijd een een correcte gamestate houden tussen elke request.
@hierbeneden. Ik track nog geen geld, dat is bij mij een onuitputbare bron
Is het een optie om die 2 requests in 1 te bouwen?
Of in 4 (eerst allebei afnemen en dan weer weggeven) dan kan je altijd een een correcte gamestate houden tussen elke request.
@hierbeneden. Ik track nog geen geld, dat is bij mij een onuitputbare bron
[ Voor 14% gewijzigd door veldsla op 14-11-2010 14:25 ]
Grappig, net twee uur geleden liep ik tegen exact hetzelfde probleem met geldkaartjes aan bij auctions.
Ik krijgt eerst een notificatie dat iemand er een geldkaartje bijkrijgt en even later pas een notificatie dat iemand anders een geldkaartje inlevert. Heel eventjes zijn er dan teveel geldkaartjes in het spel.
Ik krijgt eerst een notificatie dat iemand er een geldkaartje bijkrijgt en even later pas een notificatie dat iemand anders een geldkaartje inlevert. Heel eventjes zijn er dan teveel geldkaartjes in het spel.
Nog een information gebrek probleempje:
Regel 1: een auction voor een kaartje E die ik graag wil hebben. Opponent is W
Regel 5: Ik bied een f (50)
Regel 8: Ik krijg het E-kaartje
Regel 12: Ik moet 50 inleveren
Regel 16: Ik vertel niet hoe ik wil betalen dus:
Regel 20: De server vertelt mij dat hij een f-kaartje afpakt
Regel 23: De volgende auction begint.
Er is geen information geweest dat W het f-kaartje van mij gekregen heeft.
Met een hack omzeil ik dit nu wel en eindelijk kan ik een auction potje spelen waarbij ik aan het einde zowel de beesten als de geld-administratie in overeenstemming heb met de logfiles van de server! Tijd om te gaan traden....
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| 2010:11:14 11:09:17:031 GET /v3/vb/?market=496&id=4622&type=auction&auctioneer=W&goods=E&opponent=W&message=N0E0 HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:14 11:09:17:053 connecting to player took 21 milliseconds 2010:11:14 11:09:17:092 player took 60 milliseconds to respond 2010:11:14 11:09:17:092 raw player response:HTTP/1.1 200 OK\r\nCache-Control: private\r\nContent-Length: 8\r\nContent-Type: text/html\r\nServer: Microsoft-IIS/7.0\r\nDate: Sun, 14 Nov 2010 12:08:20 GMT\r\n\r\n?money=f 2010:11:14 11:09:17:092 parsed player response: goods: type: opponent: money:f auctioneer: message: 2010:11:14 11:09:17:092 2010:11:14 11:09:17:153 2010:11:14 11:09:17:154 GET /v3/vb/?market=496&id=4622&type=receive&goods=E HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:14 11:09:17:175 connecting to player took 21 milliseconds 2010:11:14 11:09:17:175 added goods B -> BE 2010:11:14 11:09:17:176 2010:11:14 11:09:17:176 GET /v3/vb/?market=496&id=4622&type=collect&money=f&opponent=W HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:14 11:09:17:194 connecting to player took 18 milliseconds 2010:11:14 11:09:17:246 player took 70 milliseconds to respond 2010:11:14 11:09:17:246 raw player response:HTTP/1.1 200 OK\r\nCache-Control: private\r\nContent-Length: 1\r\nContent-Type: text/html\r\nServer: Microsoft-IIS/7.0\r\nDate: Sun, 14 Nov 2010 12:08:20 GMT\r\n\r\n? 2010:11:14 11:09:17:247 parsed player response: goods: type: opponent: money: auctioneer: message: 2010:11:14 11:09:17:247 2010:11:14 11:09:17:247 removed money (50)ftttnntff -> ffttttnn 2010:11:14 11:09:17:247 2010:11:14 11:09:17:247 GET /v3/vb/?market=496&id=4622&type=information&money=f HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:14 11:09:17:268 connecting to player took 20 milliseconds 2010:11:14 11:09:17:558 2010:11:14 11:09:17:558 GET /v3/vb/?market=496&id=4622&type=auction&auctioneer=N&goods=D&opponent=N&message=E0 HTTP/1.1\r\nHost: 8*.*5*1*3*1*:82\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n |
Regel 1: een auction voor een kaartje E die ik graag wil hebben. Opponent is W
Regel 5: Ik bied een f (50)
Regel 8: Ik krijg het E-kaartje
Regel 12: Ik moet 50 inleveren
Regel 16: Ik vertel niet hoe ik wil betalen dus:
Regel 20: De server vertelt mij dat hij een f-kaartje afpakt
Regel 23: De volgende auction begint.
Er is geen information geweest dat W het f-kaartje van mij gekregen heeft.
Met een hack omzeil ik dit nu wel en eindelijk kan ik een auction potje spelen waarbij ik aan het einde zowel de beesten als de geld-administratie in overeenstemming heb met de logfiles van de server! Tijd om te gaan traden....
[ Voor 4% gewijzigd door joppybt op 14-11-2010 15:33 . Reden: Hack aanvulling ]
Even meedenkendend om dit tegen te gaanArjan schreef op vrijdag 12 november 2010 @ 23:12:
[...oneindige handel...]
Je hebt gelijk dat dit een risico is, normaal gesproken ga je ervan uit dat iemand dan achter de passende speler aangaat waardoor er daarna om een kwartet gespeeld wordt. Ik zal bedenken of ik een passende oplossing kan vinden.
Er zijn twee acties die onomkeerbaar zijn: een auction waarbij een extra kaartje in het spel komt en het vormen van een kwartet (die niet meer getrade'd kan worden).
Je zou op de server kunnen bijhouden wanneer voor het laatst een van deze twee acties is geweest. Als dat meer dan 10 (of 40 of whatever) rondes geleden is dan beëindig je het spel. Niet ideaal maar je moet toch iets.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| 2010:11:14 12:35:45:853 removed money (t)ftnn -> fnn 2010:11:14 12:35:45:958 2010:11:14 12:35:45:958 GET /Koehandel/Start.php?market=504&id=4653&type=auction&auctioneer=N&goods=C&opponent=N&message=E0 2010:11:14 12:35:45:984 connecting to player took 26 milliseconds 2010:11:14 12:35:46:165 player took 207 milliseconds to respond 2010:11:14 12:35:46:165 raw player response:*** 2010:11:14 12:35:46:165 parsed player response: goods: type: opponent: money:t auctioneer: message: 2010:11:14 12:35:46:166 2010:11:14 12:35:46:201 2010:11:14 12:35:46:201 GET /Koehandel/Start.php?market=504&id=4653&type=receive&goods=C HTTP/1.1\r\n*** 2010:11:14 12:35:46:232 connecting to player took 31 milliseconds 2010:11:14 12:35:46:233 added goods CDCBEE -> CDCBEEC 2010:11:14 12:35:46:233 2010:11:14 12:35:46:233 GET /Koehandel/Start.php?market=504&id=4653&type=collect&money=t&opponent=N 2010:11:14 12:35:46:259 connecting to player took 26 milliseconds 2010:11:14 12:35:46:517 player took 283 milliseconds to respond 2010:11:14 12:35:46:517 raw player response:*** 2010:11:14 12:35:46:517 parsed player response: goods: type: opponent: money:t auctioneer: message: 2010:11:14 12:35:46:517 2010:11:14 12:35:46:517 removed money (10)fnn -> nn 2010:11:14 12:35:46:517 2010:11:14 12:35:46:518 GET /Koehandel/Start.php?market=504&id=4653&type=information&money=f 2010:11:14 12:35:46:552 connecting to player took 34 milliseconds |
Ik heb de kaarten fnn. Ik bied t.
Vervolgens is er een collect van t. En daarna een information dat er alsnog f weggehaald wordt. Maar hoe weet ik dat die collect van t niet geaccepteerd is, en dus ook niet wordt uitgevoerd?
Speel ook Balls Connect en Repeat
Je wordt geacht exact te weten/bij te houden welke kaartjes je zelf hebt. Jij biedt aan te betalen met een t-kaartje wat je helemaal niet hebt. Daar trapt de server niet in.Onbekend schreef op zondag 14 november 2010 @ 15:33:
Ik heb de kaarten fnn. Ik bied t.
Vervolgens is er een collect van t. En daarna een information dat er alsnog f weggehaald wordt. Maar hoe weet ik dat die collect van t niet geaccepteerd is, en dus ook niet wordt uitgevoerd?
De manier om te weten of je bod geaccepteerd zal worden is dan ook door te weten of je die kaartjes ook daadwerkelijk hebt.
Zelf antwoord ik nooit op de 'collect' van de server zodat hij altijd voor mij beslist hoe ik moet gaan betalen. Ik reageer dus eigenlijk ook niet op de collect maar op de information
[ Voor 6% gewijzigd door joppybt op 14-11-2010 15:44 ]
Ik ben al tientallen uren kwijt om de communicatie uit te zoeken. Als je 1 ding al mist of verkeerd afhandelt, kan je de winst al op je buik schrijven. En dan heb ik nog niets aan de slimheid van de speler zelf geprogrammeerd.
Ik zet dit project in de ijskast. Misschien dat ik er over een maandje ofzo naar kijk, maar dit is niet leuk meer.
Jammer....
Ik zet dit project in de ijskast. Misschien dat ik er over een maandje ofzo naar kijk, maar dit is niet leuk meer.
[ Voor 46% gewijzigd door Onbekend op 14-11-2010 15:48 ]
Speel ook Balls Connect en Repeat
wil het ook wel eens proberen, ik kan logisch nadenken en heb wel een beetje programmeer ervaring. Meestal prog ik in C, maar ik wilde dit in python doen vanwege de makkelijke integratie met apache. Ik heb inmiddels een programma gemaakt wat een GET naar een webserver stuurt. Maar nu moet ik nog wat in elkaar flansen wat zelf GET's kan ontvangen. Is er een makkelijkere manier dan via apache?
Verwijderd
Ik heb zelf weinig ervaring met python maar waarschijnlijk is de gemakkelijkste optie de http server van de standard library:
http://docs.python.org/library/simplehttpserver.html
http://docs.python.org/library/simplehttpserver.html
nou het werkt, misschien een basis voor anderen die mee willen doen:
Een get ontvangen:
Een get versturen:
Bron python help en http://fragments.turtlemeat.com/pythonwebserver.php
Een get ontvangen:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| import string,cgi,time from os import curdir, sep from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer #import pri class MyHandler(BaseHTTPRequestHandler): def do_GET(self): print self.path def main(): try: server = HTTPServer(('', 80), MyHandler) print 'started httpserver...' server.serve_forever() except KeyboardInterrupt: print '^C received, shutting down server' server.socket.close() if __name__ == '__main__': main() |
Een get versturen:
Python:
1
2
3
4
5
6
7
8
| import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", 80)) s.send("GET /test_python=1\n") s.close() |
Bron python help en http://fragments.turtlemeat.com/pythonwebserver.php
Ik zou het makkelijker vinden als bij het starten van de server iedere speler afzonderlijk zijn ID toegestuurd krijgt.
De afhandeling doe ik op het moment zo: ik start een server door spelers op te geven, in mijn geval 4 dezelfde spelers. Iedere speler houdt een sessie bij van het spel. Bij iedere request kijk ik of er al een game bestaat, als dat niet zo is dan instantieer ik een nieuwe game en zet ik de speler zijn ID.
De afhandeling doe ik op het moment zo: ik start een server door spelers op te geven, in mijn geval 4 dezelfde spelers. Iedere speler houdt een sessie bij van het spel. Bij iedere request kijk ik of er al een game bestaat, als dat niet zo is dan instantieer ik een nieuwe game en zet ik de speler zijn ID.
Je bedoelt iets als joppybt in "Programming Contest: Koehandel"?
(de namen zouden voor jou vraag nog niet direct nodig zijn).
Dit is nog niet geïmplementeerd voor zover ik weet.
(de namen zouden voor jou vraag nog niet direct nodig zijn).
Dit is nog niet geïmplementeerd voor zover ik weet.
Vinden jullie het goed ls ik gewoon een type=information&message=begin stuur?T i M schreef op dinsdag 16 november 2010 @ 14:08:
Ik zou het makkelijker vinden als bij het starten van de server iedere speler afzonderlijk zijn ID toegestuurd krijgt.
De afhandeling doe ik op het moment zo: ik start een server door spelers op te geven, in mijn geval 4 dezelfde spelers. Iedere speler houdt een sessie bij van het spel. Bij iedere request kijk ik of er al een game bestaat, als dat niet zo is dan instantieer ik een nieuwe game en zet ik de speler zijn ID.
Dan staat de markt en player id er al bij.
Verder ga ik joppybts id voor een eeuwigdurend spel implementeren, als alle kaartjes in het spel zijn en er tien ronden lang geen kwartet gevormd wordt is het spel ten einde
[ Voor 3% gewijzigd door Arjan op 16-11-2010 20:22 ]
oprecht vertrouwen wordt nooit geschaad
En wil je ook nog iets doen aan het geven van (geld en) beestkaartjes aan personen voordat ze zijn vrijgekomen?
Anders moet ik een een of ander heel smerig extra kaartjes leensysteem gaan bouwen of zo
Anders moet ik een een of ander heel smerig extra kaartjes leensysteem gaan bouwen of zo
bijna vergeten, ja heb ik omgedraaid.veldsla schreef op dinsdag 16 november 2010 @ 20:17:
En wil je ook nog iets doen aan het geven van (geld en) beestkaartjes aan personen voordat ze zijn vrijgekomen?
Anders moet ik een een of ander heel smerig extra kaartjes leensysteem gaan bouwen of zo
server is trouwens geupdate
oprecht vertrouwen wordt nooit geschaad
Hoe zit die open get er precies uit?
Stel ik heb ip adres 12.345.678.90 en mijn servertje draait op poort 56789.
Dan doe ik
GET /?connect&url1=12.345.678.90:56789\n
Maar dat werkt niet. Ook alles op poort 80 zetten werkt ook niet, ook niet als ik het poortnummer in de get weg haal.
Stel ik heb ip adres 12.345.678.90 en mijn servertje draait op poort 56789.
Dan doe ik
GET /?connect&url1=12.345.678.90:56789\n
Maar dat werkt niet. Ook alles op poort 80 zetten werkt ook niet, ook niet als ik het poortnummer in de get weg haal.
Gebruik een site als http://web-sniffer.net/ om te testen of je kan verbinden met jouw server vanuit het internet, pas als dat werkt kan je verder gaan zoeken
-niks-
die websniffer werkt gewoon...
Maar geen connect volgens de log (echte ip veranderd):
en als ik zelf in de browser intyp:
12.345.678.90?market=765&id=5697&type=information&message=begin
zie ik het wel binnenkomen.
Maar geen connect volgens de log (echte ip veranderd):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 2010:11:17 06:31:46:991 player connected from 80 12.345.678.90 2010:11:17 06:31:46:992 2010:11:17 06:31:46:992 GET 12.345.678.90?market=765&id=5697&type=information&message=begin HTTP/1.1\r\nHost: :80\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:17 06:31:46:993 could not connect to 80 12.345.678.90 2010:11:17 06:31:46:993 2010:11:17 06:31:46:994 GET 12.345.678.90?market=765&id=5697&type=start HTTP/1.1\r\nHost: :80\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:17 06:31:46:994 could not connect to 80 12.345.678.90 2010:11:17 06:31:46:994 2010:11:17 06:31:46:994 response timed out: Host not found 2010:11:17 06:31:46:996 2010:11:17 06:31:46:996 GET 12.345.678.90?market=765&id=5697&type=auction&goods=A&message=W0N0E0 HTTP/1.1\r\nHost: :80\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:17 06:31:46:996 could not connect to 80 12.345.678.90 2010:11:17 06:31:46:996 2010:11:17 06:31:46:997 response timed out: Host not found |
en als ik zelf in de browser intyp:
12.345.678.90?market=765&id=5697&type=information&message=begin
zie ik het wel binnenkomen.
[ Voor 99% gewijzigd door pientertje op 17-11-2010 08:36 ]
Je kan proberen http:// voor je adres te zetten, QUrl heeft anders nog wel eens moeite met het parsen van een adres. Als dat niet lukt dan moet je eens met telnet naar je server connecten en even posten wat je terugkrijgtpientertje schreef op woensdag 17 november 2010 @ 08:21:
die websniffer werkt gewoon...
Maar geen connect volgens de log (echte ip veranderd):
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 2010:11:17 06:31:46:991 player connected from 80 12.345.678.90 2010:11:17 06:31:46:992 2010:11:17 06:31:46:992 GET 12.345.678.90?market=765&id=5697&type=information&message=begin HTTP/1.1\r\nHost: :80\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:17 06:31:46:993 could not connect to 80 12.345.678.90 2010:11:17 06:31:46:993 2010:11:17 06:31:46:994 GET 12.345.678.90?market=765&id=5697&type=start HTTP/1.1\r\nHost: :80\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:17 06:31:46:994 could not connect to 80 12.345.678.90 2010:11:17 06:31:46:994 2010:11:17 06:31:46:994 response timed out: Host not found 2010:11:17 06:31:46:996 2010:11:17 06:31:46:996 GET 12.345.678.90?market=765&id=5697&type=auction&goods=A&message=W0N0E0 HTTP/1.1\r\nHost: :80\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:17 06:31:46:996 could not connect to 80 12.345.678.90 2010:11:17 06:31:46:996 2010:11:17 06:31:46:997 response timed out: Host not found
en als ik zelf in de browser intyp:
12.345.678.90?market=765&id=5697&type=information&message=begin
zie ik het wel binnenkomen.
oprecht vertrouwen wordt nooit geschaad
En/ of misschien een / achteraan het adresArjan schreef op woensdag 17 november 2010 @ 09:40:
[...]
Je kan proberen http:// voor je adres te zetten, QUrl heeft anders nog wel eens moeite met het parsen van een adres. Als dat niet lukt dan moet je eens met telnet naar je server connecten en even posten wat je terugkrijgt
(maar dan wel URL encoded, gebruik http://www.houbenweb.nl/market.html)
Ik denk dat ik ook mee ga doen, het is weer eens wat anders.
Nadat ik de beginselen geprogrammeerd had dacht ik, ik zet twee van mijn spelers in 1 spel, dan krijg ik misschien meer nuttige informatie binnen. Het resultaat was, dat ik gelijk in een oneindige loop zat, wordt hier iets tegen gedaan tijdens het tournooi?
Nu ligt het er natuurlijk aan, dat de door mij geprogrammeerde speler nog erg stom is, maar het lijkt mij dat dit tijdens een tournooi ook voor kan komen.
Nadat ik de beginselen geprogrammeerd had dacht ik, ik zet twee van mijn spelers in 1 spel, dan krijg ik misschien meer nuttige informatie binnen. Het resultaat was, dat ik gelijk in een oneindige loop zat, wordt hier iets tegen gedaan tijdens het tournooi?
Nu ligt het er natuurlijk aan, dat de door mij geprogrammeerde speler nog erg stom is, maar het lijkt mij dat dit tijdens een tournooi ook voor kan komen.
Graag even melden wat het probleem was, er waren wat situaties die ik nog niet voorzien had, dus ik sluit niet uit dat er nog een situatie is waarin een oneindige loop ontstaat. Let wel, zolang nog niet alle kaarten in het spel zijn, kun je met twee spelers elkaar constant handelswaar afpakken zonder dat er echt iets veranderd.Sneezydevil schreef op donderdag 18 november 2010 @ 08:05:
Ik denk dat ik ook mee ga doen, het is weer eens wat anders.
Nadat ik de beginselen geprogrammeerd had dacht ik, ik zet twee van mijn spelers in 1 spel, dan krijg ik misschien meer nuttige informatie binnen. Het resultaat was, dat ik gelijk in een oneindige loop zat, wordt hier iets tegen gedaan tijdens het tournooi?
Nu ligt het er natuurlijk aan, dat de door mij geprogrammeerde speler nog erg stom is, maar het lijkt mij dat dit tijdens een tournooi ook voor kan komen.
Zodra alle kaarten in het spel zijn kan dit echter maar 10x achter elkaar voordat de server besluit dat het genoeg is geweest en het spel ten einde brengt.
oprecht vertrouwen wordt nooit geschaad
Het was inderdaad zo, dat nog niet alle kaarten in het spel waren. Omdat mijn speler het geld nog niet bijhoudt, komt het wel es voor dat hij gaat bluffen. Als er maar 1 van mijn spelers in het spel is, is dit niet erg want dan zegt de server gewoon: "no_second_bluf_allowed". Als er echter 2 van deze spelers in het spel zitten, gaan ze tegen elkaar lopen bluffen en dit in het oneindige.Arjan schreef op donderdag 18 november 2010 @ 08:37:
[...]
Graag even melden wat het probleem was, er waren wat situaties die ik nog niet voorzien had, dus ik sluit niet uit dat er nog een situatie is waarin een oneindige loop ontstaat. Let wel, zolang nog niet alle kaarten in het spel zijn, kun je met twee spelers elkaar constant handelswaar afpakken zonder dat er echt iets veranderd.
Zodra alle kaarten in het spel zijn kan dit echter maar 10x achter elkaar voordat de server besluit dat het genoeg is geweest en het spel ten einde brengt.
http://houbenweb.nl:56789/?market=819
Ik heb mijn speler maar even offline gehaald, zodat het spel toch tot een einde kon komen.
Nu eerst maar eens zorgen dat de speler zijn geld bijhoudt, zodat ik dit kan voorkomen.
Haha, ja dat is een goede! Ik zal zorgen dat de server de boel onderbreekt zodra iemand meer geld biedt dan dat er in het spel is op dat moment 
edit:
server is aangepast
server is aangepast
[ Voor 10% gewijzigd door Arjan op 18-11-2010 11:02 ]
oprecht vertrouwen wordt nooit geschaad
Het lijkt nog steeds te gebeuren, als ik die niet zo slimme speler gebruik.
weet je zeker dat je meer biedt dan dat er geld in het spel is?Sneezydevil schreef op donderdag 18 november 2010 @ 11:46:
[...]
Het lijkt nog steeds te gebeuren, als ik die niet zo slimme speler gebruik.
het spel start met 360 ( 4 * 90 ), zodra er meer geboden wordt wordt dat bod op 0 gezet alsof de speler gepast had.
oprecht vertrouwen wordt nooit geschaad
Je hebt gelijk. Ik bied veel minder dan de twee spelers die telkens passen hebben, aan die loop ga ik zelf dus maar iets doen.Arjan schreef op donderdag 18 november 2010 @ 12:01:
[...]
weet je zeker dat je meer biedt dan dat er geld in het spel is?
het spel start met 360 ( 4 * 90 ), zodra er meer geboden wordt wordt dat bod op 0 gezet alsof de speler gepast had.
Feest
Semi random speler is af. Alle kwartetten eindigen compleet en mijn score is gelijk aan de server score.
Semi random speler is af. Alle kwartetten eindigen compleet en mijn score is gelijk aan de server score.
Ik ben ook eindelijk zover, het was toch lastiger dan gedacht om die kaarten goed bij te houden.veldsla schreef op donderdag 18 november 2010 @ 20:46:
Feest![]()
Semi random speler is af. Alle kwartetten eindigen compleet en mijn score is gelijk aan de server score.
misschien zo langzamerhand maar eens een 'trade-off'
gaan organiseren? Ik zal eens kijken of ik een soort test-tournooi opzet kan opzetten
oprecht vertrouwen wordt nooit geschaad
PS: Alle mogelijke gebruiken die ik kon bedenken (lees: uit log-files destilleerde) van de velden message, goods en money in OP gezet.
Ik was benieuwd hoe een trade en de informatievoorziening verloopt en vond het volgende voorbeeld:
Speler 6481 biedt 10 voor good I aan speler 6482. Deze biedt 60 terug en ontvangt de goederen voor deze 60, maar ontvangt niet de 10 van speler 6481. Dit gaat dus niet goed!
PS2: Is het mogelijk om zelf ook een information over bluffed te krijgen (opponent leeg,
wel je money)
Ik was benieuwd hoe een trade en de informatievoorziening verloopt en vond het volgende voorbeeld:
Speler 6481 biedt 10 voor good I aan speler 6482. Deze biedt 60 terug en ontvangt de goederen voor deze 60, maar ontvangt niet de 10 van speler 6481. Dit gaat dus niet goed!
code:
1
2
3
4
5
6
7
8
9
| 2010:11:21 17:13:39:306 GET ?market=961&id=6481&type=start HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:10080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:21 17:13:39:404 raw player response:?type=trade&opponent=W&goods=I&money=t\n 2010:11:21 17:13:39:404 parsed player response: goods:I type:trade opponent:W money:t auctioneer: message: 2010:11:21 17:13:39:404 2010:11:21 17:13:39:490 GET ?market=961&id=6481&type=collect&goods=I&opponent=W HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:10080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:21 17:13:39:523 removed goods HHACGIIGGG -> HHACGIGGG 2010:11:21 17:13:39:643 2010:11:21 17:13:39:643 GET ?market=961&id=6481&type=receive&money=tf&opponent=W HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:10080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:21 17:13:39:675 added money Ffttttnnn -> Ffttttnnntf |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| 2010:11:21 17:13:39:405 GET ?market=961&id=6482&type=trade&money=Q&goods=I&opponent=E HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:10080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:21 17:13:39:489 raw player response:?money=tf\n 2010:11:21 17:13:39:489 parsed player response: goods: type: opponent: money:tf auctioneer: message: 2010:11:21 17:13:39:489 2010:11:21 17:13:39:524 2010:11:21 17:13:39:524 GET ?market=961&id=6482&type=receive&goods=I&opponent=E HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:10080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:21 17:13:39:557 added goods IECCHEHEEC -> IECCHEHEECI 2010:11:21 17:13:39:557 2010:11:21 17:13:39:557 GET ?market=961&id=6482&type=collect&money=tf&opponent=E HTTP/1.1\r\nHost: 8*.*4*.*5*1*4:10080\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n 2010:11:21 17:13:39:642 raw player response:?money=tf\n 2010:11:21 17:13:39:643 parsed player response: goods: type: opponent: money:tf auctioneer: message: 2010:11:21 17:13:39:643 2010:11:21 17:13:39:643 removed money (tf)FThhffftttnfff -> FThhfffffttn |
PS2: Is het mogelijk om zelf ook een information over bluffed te krijgen (opponent leeg,
[ Voor 11% gewijzigd door Bolukan op 23-11-2010 12:13 ]
Ik snap niet helemaal wat er misgaat, als ik de market bekijk lijkt alles ook gewoon te kloppenBolukan schreef op maandag 22 november 2010 @ 20:16:
[...]
PS2: Is het mogelijk om zelf ook een information over bluffed te krijgen (opponent leeg,wel je money)
Ook snap ik de informatie over bluffed niet helemaal.. wat bedoel je precies?
oprecht vertrouwen wordt nooit geschaad
De kaarten moeten onderling worden gewisseld en nu gaan alleen de kaarten van de hoogste bieder over (in ruil voor de goods). Als de een 100 biedt en de andere 110, krijgt de speler met 110 dus 100 + de goods. Ik mis nu de overdracht van de 100 en zie alleen de 110 en goods overgaan.
Belangrijk bij het bieden is dat het geboden geld bij de huidige eigenaar blijft. Biedt er dus iemand op jouw hond 200 (gesloten, je ziet het dus nog niet) en doe jij een tegenbod van 210 dan is de hond dus voor jou, terwijl bij een veiling dit dier bijvoorbeeld voor 150 is verkocht. goeie deal! Je hebt dus eigenlijk maar een tientje betaald! In geen geval mag tegen de andere spelers verteld worden hoeveel geld er is geboden. Maar aan de opmerkingen kan je meestal wel opmaken dat er iemand flink @#$%!#$ is.
Mbt bluffed: In http://houbenweb.nl:56789/?market=907 krijgt N geen bericht dat ie betrapt is op bluffen. Lijkt me toch aardig te weten dat je betrapt bent. Is dat inmiddels verholpen? De opmerking over de money was grappig bedoeld: een mooie check om te controleren of je eigen admie werkt.Als speler B een tegenbod wil doen, dan legt hij eveneens een aantal geldkaarten gedekt op tafel. Beide spelers tellen het hun door de ander aangeboden bedrag, en houden dit geld. De speler die het hoogste bedrag aan de ander betaald heeft, krijgt van de andere speler het dier.
[ Voor 106% gewijzigd door Bolukan op 23-11-2010 22:43 . Reden: quote toegevoegd ]
Mijn testspeler is beschikbaar op http://84.245.25.144:10080/ Connecties worden alleen beantwoord als ze van de scheidsserver af komen. Maak em maar even een paar keer in dan heb ik weer een reden om door te klussen!
Verwijderd
Even volledig terzijde, zijn er hier op GoT ook programmeer contest voor Java. Koehandel zou je natuurlijk in java kunnen doen, maar het is niet echt ideaal.
Wat precies is er niet ideaal aan koehandel in Java (en ja ik probeer het met Java) ???
Volgens mij boeit het niet welke taal je gebruikt.
Ik moet wel zeggen dat de laatste contest (zeelslag denk ik) iets gemakkelijker was qua programmeren want dat is eigenlijk een min-max-algoritme en koehandel niet.
Mijn code houdt de kaarten/geld goed bij (en de score ook afaik) en meer niet. Ik moet dus 'alleen' nog een algoritme bedenken.
Volgens mij boeit het niet welke taal je gebruikt.
Ik moet wel zeggen dat de laatste contest (zeelslag denk ik) iets gemakkelijker was qua programmeren want dat is eigenlijk een min-max-algoritme en koehandel niet.
Mijn code houdt de kaarten/geld goed bij (en de score ook afaik) en meer niet. Ik moet dus 'alleen' nog een algoritme bedenken.
Verwijderd
Okee, ik las aardig wat over GET_ commando's enzo in dit topic en dacht dat dit vooral voor PHP van toepassing was. Ik ga me dan maar eens verdiepen in deze contest en de classes die ik daarbij nodig heb dan.
Verwijderd
Die GET variabele zijn gewoon dingen die meegegeven worden in url, dus; http://www.example.com/?dit=dus, heeft er verder niet mee te maken of dit opgepakt wordt door PHP, Java of welke andere mogelijke programmeertaal.Verwijderd schreef op zondag 28 november 2010 @ 23:25:
Okee, ik las aardig wat over GET_ commando's enzo in dit topic en dacht dat dit vooral voor PHP van toepassing was. Ik ga me dan maar eens verdiepen in deze contest en de classes die ik daarbij nodig heb dan.
Het was m'n bedoeling om vandaag een begin te maken, helaas niet gelukt. Van de week al wel goed doorgelezen hoe het spel gaat, dus komende week in eerste instantie maar eens zorgen dat ik de basis dingen kan doen, en dan een algoritme bouwen, ben benieuwd hoe dit er uit gaat komen. Zat er in eerste instantie nog aan te denken om het in Obj-C te bouwen, maar daar ben ik nog niet zo lang mee bezig, dus gaat 'gewoon' PHP worden.
Verwijderd
http://download.oracle.co.../urls/readingWriting.html
Daarnet gevonden, Dus ik doe mee!
Ik zag er niks over staan in de hoofdpost, maar spelen wij de korte of lange variant van het spel? Op wikipedia staat namelijk:
Daarnet gevonden, Dus ik doe mee!
Ik zag er niks over staan in de hoofdpost, maar spelen wij de korte of lange variant van het spel? Op wikipedia staat namelijk:
Het spel kan verkort worden door bij een veiling in plaats van één kaart meerdere kaarten om te draaien (bijvoorbeeld 2 of 3).
Lange variant (gemiddeld potje is binnen minuut klaar
)

[ Voor 5% gewijzigd door Bolukan op 28-11-2010 23:46 ]
Verwijderd
Als ik connect door een GET te sturen met connect moet ik een IP opgeven. Hoofdpost zegt hier, http:iets.nl maar hier moet ik mijn IP invullen neem ik aan?
Verwijderd
Als ik dit stuk mag geloven, dan krijg je bij een auction dus altijd toegestuurd het aantal kaarten+de totale waarde van deze kaarten. Want in de voorbeelden daaronder staat er alleen maar QQQQ en niet QQQQ250 bijv.Elke combinatie hiervan is mogelijk. Dit geldt voor zowel ontvangen als verzenden.
Daarnaast kan er nog een min '-' teken voorstaan, dit heeft alleen betekenis als het type information is. Als deze min ervoor staat, betekent dit dat de betreffende speler deze hoeveelheid heeft moeten afstaan. Daarnaast kan er ook de letter 'Q' in voorkomen. Elke letter staat gelijk aan een item, maar de exacte waarde hiervan is onbekend. In geval van een auction staat de waarde er als nummer achter, bijvoorbeeld "money=QQ60". Dit kan betekenen dat er "tf" gebruikt is om te betalen, maar het zou ook "ff" kunnen zijn, indien de speler niet anders kon betalen.
Bedoel je niet bij het trade voorbeeld? want daar staan inderdaad geen waardes bij, das met opzetVerwijderd schreef op donderdag 02 december 2010 @ 19:51:
[...]
Als ik dit stuk mag geloven, dan krijg je bij een auction dus altijd toegestuurd het aantal kaarten+de totale waarde van deze kaarten. Want in de voorbeelden daaronder staat er alleen maar QQQQ en niet QQQQ250 bijv.
oprecht vertrouwen wordt nooit geschaad
Komt hier nog een aanpassing voor?Bolukan schreef op dinsdag 23 november 2010 @ 22:01:
De kaarten moeten onderling worden gewisseld en nu gaan alleen de kaarten van de hoogste bieder over (in ruil voor de goods). Als de een 100 biedt en de andere 110, krijgt de speler met 110 dus 100 + de goods. Ik mis nu de overdracht van de 100 en zie alleen de 110 en goods overgaan..
Na het starten van een nieuwe market krijg ik als als 4e een pakketje die ik niet thuis kan brengen.
Voor een auction pakketje mist die gegevens, en voor een trade is het het verkeerde type en ik krijg die maar één keer, maar altijd als 4e. Ik kan ook niks in de TS over dat pakketje vinden dus nu wou ik graag weten wat de bedoeling is van dat pakketje.
code:
1
2
3
| 3e packetje = ?market=1119&id=7113&type=start response = parsed player response: goods: type:auction opponent: money: auctioneer: message: 4e packetje = ?market=1119&id=7113&type=auction&goods=I&message=W0N0E0 |
Voor een auction pakketje mist die gegevens, en voor een trade is het het verkeerde type en ik krijg die maar één keer, maar altijd als 4e. Ik kan ook niks in de TS over dat pakketje vinden dus nu wou ik graag weten wat de bedoeling is van dat pakketje.
Wat mis je?Domdo schreef op vrijdag 03 december 2010 @ 13:22:
Voor een auction pakketje mist die gegevens
Jij bent de auctioneer. West, North en East hebben allemaal gepast (bedrag 0) en nu mag jij normaal gesproken je zelfkooprecht uitoefenen. Omdat de anderen niets geboden hebben krijg je het kaartje even later echter vanzelf gratis:
code:
1
| 2010:12:03 13:10:35:924 GET ?market=1119&id=7113&type=receive&goods=I |
(de money regel erna is vanwege het geldkaartje wat er in de volgende ronde aan komt)
code:
1
| 2010:12:03 13:10:35:960 GET ?market=1119&id=7113&type=receive&money=f |
Ik mis het opponent veldje .. maar het klinkt logisch als ik zelf begonnen ben.
[ Voor 5% gewijzigd door Domdo op 03-12-2010 18:26 ]
Niet stilgelegd, maar ik weet niet of we genoeg deelnemers hebben voor een echt 'toernooi'.
Misschien even een opsomming maken van mensen die een poging willen wagen?
Als het niet meer dan zeg, zes mensen zijn, dan is het makkelijker voor mij om de rondes handmatig op te zetten.
Misschien even een opsomming maken van mensen die een poging willen wagen?
Als het niet meer dan zeg, zes mensen zijn, dan is het makkelijker voor mij om de rondes handmatig op te zetten.
oprecht vertrouwen wordt nooit geschaad