Programming Contest: Koehandel

Pagina: 1 2 3 4 Laatste
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 13:18
Ik heb hem :)

Ik heb even met Java Sockets tegen mijn apache tomcat container aangebabbeld, en ik krijg pas een response als ik de request afsluit met \n\n.
Met een enkele \n reageert de container nergens op.

@Arjan: kun je de request beëindigen met twee maal een carriage return? In jouw geval zou dat dus \r\n\r\n worden als ik je logfile zo bekijk.

[ Voor 11% gewijzigd door JeroenTheStig op 31-10-2010 15:15 ]


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

Ah, dat is waarschijnlijk wel het probleem waarom niemand requests binnen krijgt, die 2e newline geeft aan dat alle headers verstuurd zijn, en tot die tijd gaat de server niet beginnen met het verwerken van de request :)

-niks-


Acties:
  • 0 Henk 'm!

Verwijderd

mijn servercode doet het eindelijk

hij draait alleen wel in de soep met IE omdat die blijkbaar de boel cachet als je daar geen header informatie over geeft... (ofzo, hij doet het alleen via een proxy)

nu nog even een leuk algoritme bedenken :)

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Openingspost al wat bijgewerkt. Ik weet niet wat Arjan verder al aan de server heeft aangepast. Heeft iemand een recent log id met veel bijzonderheden?

Acties:
  • 0 Henk 'm!

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 13:18
Bolukan schreef op zondag 31 oktober 2010 @ 20:58:
Openingspost al wat bijgewerkt. Ik weet niet wat Arjan verder al aan de server heeft aangepast. Heeft iemand een recent log id met veel bijzonderheden?
Nee, ik heb nog niet weer getest. Ik kan ook pas verder als de extra line feed is toegevoegd aan de request header waarmee hopelijk het probleem met de niet reagerende webservers is opgelost.

Acties:
  • 0 Henk 'm!

Verwijderd

jazeker:
ik krijg soms de message:
type=information&message=second_bluff_not_allowed
en
message=no_opponement_specified

deze staan niet in de startpost.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Paar uur weggeweest en nu doet mijn IIS-server het ook gewoon plotseling. Arjan heeft iets goeds veranderd.
(Wireshark toont nu een extra \n\r\n\r dus dat was het waarschijnlijk, ook al deed mijn telnet dat niet?)

Nu kan ik dus inhoudelijk beginnen met mijn server/ algoritme

@darkstone: die twee berichten krijg ik ook

[ Voor 7% gewijzigd door joppybt op 31-10-2010 21:13 ]


Acties:
  • 0 Henk 'm!

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 21:14

Skinny

DIRECT!

Requests komen nu idd goed binnen, nu maar eens naar de inhoud kijken ;-)

SIZE does matter.
"You're go at throttle up!"


Acties:
  • 0 Henk 'm!

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 13:18
Ah, goed nieuws. Ik ga direct aan de slag :)

[ Voor 3% gewijzigd door JeroenTheStig op 31-10-2010 21:18 ]


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Is "Market" niet uniek bij elk nieuw spel? Of is hij per ongeluk weer vanaf nul begonnen met tellen?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Verwijderd schreef op zondag 31 oktober 2010 @ 21:06:
jazeker:
ik krijg soms de message:
type=information&message=second_bluff_not_allowed
en
message=no_opponement_specified

deze staan niet in de startpost.
Mbt no_opponement_specified:
Als de kaarten op zijn en je probeert toch een auction of je loopt tegen een time-out aan, dan verwacht de server een trade waarbij je een opponent opgeeft.

Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

De startpost is nog niet helemaal bijgewerkt, maar second_bluff_not_allowed betekent volgens mij, dat je bij de auction de eerste keer de ronde hebt gewonnen, maar niet kon betalen. De andere spelers krijgen dan al je geldkaarten te zien.
Dan wordt de auction overgedaan en vervolgens ben je weer aan het overbieden. Dat mag niet. Ik neem aan dat deze information voor de anderen als een pass wordt doorgestuurd.

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
Als je een trade opzet of ontvangt, hoe werk je dan als beide spelers 2 handelswaren hebben. Moet je dan goods=AA opgeven? Of mag je ervan uit gaan dat dit automatisch wordt uitgezocht en je bij levering het juiste aantal ontvangt/weggeeft?

Als ik op een auction biedt, krijg ik een tweede auction met mijn geld en geen opponent (want dat ben ik). Het gebeurt niet altijd. Hoe kan je zoiets interpreteren.

Laatste information regel lijkt niet volledig.
code:
1
2
3
4
5
6
GET ?market=29&id=1849&type=auction&auctioneer=W&goods=A&opponent=W&message=N0E0
?money=t
GET ?market=29&id=1849&type=auction&auctioneer=W&money=t&goods=A&message=N0E0
GET ?market=29&id=1849&type=receive&goods=A
GET ?market=29&id=1849&type=collect&money=t&opponent=W
GET ?market=29&id=1849&type=information&money=t

[ Voor 53% gewijzigd door Bolukan op 31-10-2010 23:07 ]


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Hmm, mijn server geeft als vast antwoord altijd
?money=t
Dan komt de gameserver echter in een oneindige loop terecht waarbij continue de volgende drie regels worden herhaald:
code:
1
2
3
4
2010:10:31 20:28:02:740 GET /default.asp?market=42&id=1901&type=auction&goods=D&message=W0N0E0 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:10:31 20:28:02:813 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\nSet-Cookie: ASPSESSIONIDASRBBCAC=MLIEBEOCAIPLFCKNOBHKLBHD; path=/\r\nDate: Sun, 31 Oct 2010 21:27:11 GMT\r\n\r\n?money=t
2010:10:31 20:28:02:813 parsed player response: goods:type:opponent: money:tauctioneer: message:
2

Zie http://houbenweb.nl:56789/?log=1901

Ik hoop dat Arjan een heel grote schijf heeft voor al die logfiles.
(van mij mogen ze een uur na een spel wel automatisch verwijderd worden)

Acties:
  • 0 Henk 'm!

Verwijderd

volgens mij gaat er sowieso een boel fout.

als ik 4x mijzelf invoer staat er in de logfile:
code:
1
2010:10:26 17:25:17:549 could not connect to 82.***.***.212 45678 /KoeHandel/

op elke 2e regel.

is dat misschien arjan zn PC?

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

De GET-requests gaan bij mijn nu ook goed. :)

Maar de log-file staan af en toe foutmeldingen met het opzetten van de verbinding ( "could not connect to ....."), terwijl ik dit op een (snelle) webserver heb staan die nauwelijks wordt belast.
Ik zie dat ongeveer 1 op de 100 pogingen mislukt. De server gaan dan gewoon door met de volgende actie.


Is het mogelijk om bij een mislukte verbinding, nog een aantal pogingen te doen om de verbinding op te zetten?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

Verwijderd

nog even een vraag, als ik bied op iets, respond ik dan met een money=50 string, of money=f?

in de TS staat namelijk de type=collect, vervolgens moet ik teruggeven met welke kaarten ik wens te betalen.

edit: zou je het logID willen toevoegen aan de eerste connectie? dan kunnen wij dat ID opslaan

[ Voor 19% gewijzigd door Verwijderd op 01-11-2010 18:06 ]


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
edit: zou je het logID willen toevoegen aan de eerste connectie? dan kunnen wij dat ID opslaan
Het logID is toch gelijk aan de parameter id die je met elke GET krijgt?

Maar meer algemeen zou een extra GET
code:
1
?market=1234&type=open&id=1891

aan het begin erg handig zijn zodat je intern je datastructuren kunt initialiseren. Nu moet ik telkens intern controleren of de market al geïnitialiseerd is omdat HTTP stateless is

Helemaal geweldig zou zijn als ik als antwoord op deze request een eigen
code:
1
?cookie=87654
kan teruggeven die vanaf de gameserver dan bij elke request weer meegegeven wordt.
Met die 'cookie' kunnen spelers zo eenvoudiger een soort van 'Sessie-variabelen' creëren.

Acties:
  • 0 Henk 'm!

Verwijderd

ID is uniek, kan je dat niet als cookie gebruiken?

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Verwijderd schreef op maandag 01 november 2010 @ 20:01:
ID is uniek, kan je dat niet als cookie gebruiken?
Op zich wel maar stel dat ik bijvoorbeeld php gebruik, Dan kan ik nu het volgende doen bij de type 'open' als cookie ondersteund wordt:
code:
1
2
session_start();
echo '?cookie=' . session_id();

en bij alle andere type's
code:
1
session_id($_GET["cookie"]);

Vervolgens kan ik alles wat ik wil bewaren over requests heen in session-variabelen stoppen ipv een tekstbestandje.
Disclaimer: het is maar een brainstorm want zelf gebruik ik IIS/ASP en een SQLite database maar daar zou ik het ook wel kunnen gebruiken.

[ Voor 3% gewijzigd door joppybt op 01-11-2010 20:17 ]


Acties:
  • 0 Henk 'm!

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 21:14

Skinny

DIRECT!

- Iedere speler begint met 90 aan geld
- Mijn speler gaat continue van start met een auction en bied meer zolang hij geld heeft. Hierbij ga ik net even door het echte maximum van mijn geld heen.

beetje lang log, maar waar het op neer komt is dat als ik 100 bied aan de server (wat ik dus niet heb) de server vervolgens wel een Collect voor 100 stuurt (ok, ik kan bluffen)... hier kan ik niet op in gaan dus verwacht ik eigenlijk een 'bluffed' message, maar vervolgens krijg ik (laatste regel) een information dat er geld bij mij vandaan getrokken is (terwijl ik dat dus niet had) :

Wat mis ik ?

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
20:38:03,350 [10] DEBUG Game - Processing : ?market=92&id=2101&type=start
20:38:03,426 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&goods=E&message=W0N0E0
20:38:03,431 [10] INFO  2101 - Buying it for 0
20:38:03,431 [10] INFO  Game - Sending Response : ?money=0
20:38:03,487 [10] DEBUG Game - Processing : ?market=92&id=2101&type=receive&goods=E
20:38:03,488 [10] INFO  2101 - Receiving E, now 1 in my hands
20:38:03,488 [10] INFO  2101 - S : E (total money : 90
20:38:03,488 [10] INFO  2101 - W :  (total money : 90)
20:38:03,488 [10] INFO  2101 - N :  (total money : 90)
20:38:03,489 [10] INFO  2101 - E :  (total money : 90)
20:38:03,510 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&auctioneer=W&goods=C&opponent=W&message=N0E0
20:38:03,512 [10] INFO  2101 - Bidding on C for t
20:38:03,512 [10] INFO  2101 - S : E (total money : 90
20:38:03,513 [10] INFO  2101 - W :  (total money : 90)
20:38:03,513 [10] INFO  2101 - N :  (total money : 90)
20:38:03,513 [10] INFO  2101 - E :  (total money : 90)
20:38:03,514 [10] INFO  Game - Sending Response : ?money=t
20:38:03,586 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&auctioneer=W&money=t&goods=C&message=N0E0
20:38:03,587 [10] INFO  2101 - Money : 10 with confidence 1
20:38:03,588 [10] INFO  2101 - Bidding on C for f
20:38:03,588 [10] INFO  2101 - S : E (total money : 90
20:38:03,588 [10] INFO  2101 - W :  (total money : 90)
20:38:03,588 [10] INFO  2101 - N :  (total money : 90)
20:38:03,589 [10] INFO  2101 - E :  (total money : 90)
20:38:03,589 [10] INFO  Game - Sending Response : ?money=f
20:38:03,646 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&auctioneer=W&money=f&goods=C&message=N0E0
20:38:03,646 [10] INFO  2101 - Money : 50 with confidence 1
20:38:03,647 [10] INFO  2101 - Bidding on C for ft
20:38:03,647 [10] INFO  2101 - S : E (total money : 90
20:38:03,647 [10] INFO  2101 - W :  (total money : 90)
20:38:03,648 [10] INFO  2101 - N :  (total money : 90)
20:38:03,648 [10] INFO  2101 - E :  (total money : 90)
20:38:03,649 [10] INFO  Game - Sending Response : ?money=ft
20:38:03,706 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&auctioneer=W&money=ft&goods=C&message=N0E0
20:38:03,706 [10] INFO  2101 - Money : 60 with confidence 1
20:38:03,707 [10] INFO  2101 - Bidding on C for ftttt
20:38:03,707 [10] INFO  2101 - S : E (total money : 90
20:38:03,707 [10] INFO  2101 - W :  (total money : 90)
20:38:03,708 [10] INFO  2101 - N :  (total money : 90)
20:38:03,708 [10] INFO  2101 - E :  (total money : 90)
20:38:03,708 [10] INFO  Game - Sending Response : ?money=ftttt
20:38:03,773 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&auctioneer=W&money=ftttt&goods=C&message=N0E0
20:38:03,774 [10] INFO  2101 - Money : 90 with confidence 1
20:38:03,774 [10] INFO  2101 - Bidding on C for fttttt
20:38:03,774 [10] INFO  2101 - S : E (total money : 90
20:38:03,775 [10] INFO  2101 - W :  (total money : 90)
20:38:03,775 [10] INFO  2101 - N :  (total money : 90)
20:38:03,775 [10] INFO  2101 - E :  (total money : 90)
20:38:03,776 [10] INFO  Game - Sending Response : ?money=fttttt
20:38:03,845 [10] DEBUG Game - Processing : ?market=92&id=2101&type=auction&auctioneer=W&money=fttttt&goods=C&message=N0E0
20:38:03,845 [10] INFO  2101 - Money : 100 with confidence 1
20:38:03,846 [10] INFO  2101 - S : E (total money : 90
20:38:03,846 [10] INFO  2101 - W :  (total money : 90)
20:38:03,846 [10] INFO  2101 - N :  (total money : 90)
20:38:03,847 [10] INFO  2101 - E :  (total money : 90)
20:38:03,905 [10] DEBUG Game - Processing : ?market=92&id=2101&type=receive&goods=C
20:38:03,905 [10] INFO  2101 - Receiving C, now 1 in my hands
20:38:03,906 [10] INFO  2101 - S : CE (total money : 90
20:38:03,906 [10] INFO  2101 - W :  (total money : 90)
20:38:03,906 [10] INFO  2101 - N :  (total money : 90)
20:38:03,907 [10] INFO  2101 - E :  (total money : 90)
20:38:03,933 [10] DEBUG Game - Processing : ?market=92&id=2101&type=collect&money=fttttt&opponent=W
20:38:03,933 [10] INFO  2101 - Money : 100 with confidence 1
20:38:03,934 [10] INFO  2101 - Collecting fttttt for W
20:38:03,934 [10] INFO  2101 - S : CE (total money : -10
20:38:03,934 [10] INFO  2101 - W :  (total money : 90)
20:38:03,934 [10] INFO  2101 - N :  (total money : 90)
20:38:03,935 [10] INFO  2101 - E :  (total money : 90)
20:38:04,003 [10] DEBUG Game - Processing : ?market=92&id=2101&type=information&money=ff

SIZE does matter.
"You're go at throttle up!"


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Vlak voordat een auction met letter G langs komt heb je telkens 'ezelgeld' ontvangen via
code:
1
2
3
4
/?market=92&id=2101&type=receive&money=f
/?market=92&id=2101&type=receive&money=h
/?market=92&id=2101&type=receive&money=T
/?market=92&id=2101&type=receive&money=F

ofwel je hebt meer geld dan je zelf denkt.

Acties:
  • 0 Henk 'm!

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 21:14

Skinny

DIRECT!

Die komen toch pas NA deze ronde ?

Ik kijk nu via http://houbenweb.nl:56789/?log=2101 en volgens mij heb ik tot de regel

code:
1
2010:11:01 18:38:47:545 GET /?market=92&id=2101&type=collect&money=fttttt&opponent=W HTTP/1.1\r\nHost: 2*.*3*.*8*.*0:9898\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n


geen geld ontvangen..

(disclaimer : weekend vol disaster recovery, dus ik kan iets gruwelijk missen ;-)

SIZE does matter.
"You're go at throttle up!"


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Enkele regels lager staat dat bij jou twee keer een f wordt afgepakt, samen 100 waard.
code:
1
2010:11:01 18:38:47:608 removed money nnttttff  -> ttttnn

Dit is voor het eerst dat er iets met je geld gebeurt. De gameserver denkt (onterecht) dat jij twee keer een f-geldkaart had en dus niet blufte.
Dat klopt niet, je hoort met nnttttf te beginnen. Foutje in de gameserver volgens mij.

Acties:
  • 0 Henk 'm!

  • veldsla
  • Registratie: April 2000
  • Laatst online: 12-09 14:18
Hmm...ik weet niet helemaal wat er mis ging bij market 109, player 2169, maar de server bleef de hele tijd een auction aanbieden, ik antwoordde braaf dat ik wel 50 wilde lappen (geen idee of ik het ook echt had), en dat totdat ik de boel maar heb gestopt!

http://houbenweb.nl:56789/?log=2169

De server wordt in ieder geval wel lekker op de proef gesteld met al die testcode :)

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Onbekend schreef op zondag 31 oktober 2010 @ 21:37:
Is "Market" niet uniek bij elk nieuw spel? Of is hij per ongeluk weer vanaf nul begonnen met tellen?
Deze reset zich elke keer als de server opnieuw gestart wordt, de player id niet.
Vaan Banaan schreef op zondag 31 oktober 2010 @ 21:54:
De startpost is nog niet helemaal bijgewerkt, maar second_bluff_not_allowed betekent volgens mij, dat je bij de auction de eerste keer de ronde hebt gewonnen, maar niet kon betalen. De andere spelers krijgen dan al je geldkaarten te zien.
Dan wordt de auction overgedaan en vervolgens ben je weer aan het overbieden. Dat mag niet. Ik neem aan dat deze information voor de anderen als een pass wordt doorgestuurd.
correct
Bolukan schreef op zondag 31 oktober 2010 @ 22:33:
Als je een trade opzet of ontvangt, hoe werk je dan als beide spelers 2 handelswaren hebben. Moet je dan goods=AA opgeven? Of mag je ervan uit gaan dat dit automatisch wordt uitgezocht en je bij levering het juiste aantal ontvangt/weggeeft?
Dit wordt automatisch rechtgetrokken ja
Als ik op een auction biedt, krijg ik een tweede auction met mijn geld en geen opponent (want dat ben ik). Het gebeurt niet altijd. Hoe kan je zoiets interpreteren.

Laatste information regel lijkt niet volledig.
code:
1
2
3
4
5
6
GET ?market=29&id=1849&type=auction&auctioneer=W&goods=A&opponent=W&message=N0E0
?money=t
GET ?market=29&id=1849&type=auction&auctioneer=W&money=t&goods=A&message=N0E0
GET ?market=29&id=1849&type=receive&goods=A
GET ?market=29&id=1849&type=collect&money=t&opponent=W
GET ?market=29&id=1849&type=information&money=t
De laatste regel geeft aan hoe het geld bij jou vandaag is gehaald, in dit geval dus mbv. één 't' kaart.
Onbekend schreef op zondag 31 oktober 2010 @ 23:24:
De GET-requests gaan bij mijn nu ook goed. :)

Maar de log-file staan af en toe foutmeldingen met het opzetten van de verbinding ( "could not connect to ....."), terwijl ik dit op een (snelle) webserver heb staan die nauwelijks wordt belast.
Ik zie dat ongeveer 1 op de 100 pogingen mislukt. De server gaan dan gewoon door met de volgende actie.


Is het mogelijk om bij een mislukte verbinding, nog een aantal pogingen te doen om de verbinding op te zetten?
Dit is raar, ik kan eventueel instellen dat je in totaal 5 seconden krijgt, dus niet 0.5 voor connect en 5 voor reply.

[edit]
Dit is aangepast, je hebt nu 5 seconden in totaal voor je antwoord, hier zit connetietijd bij. Als blijkt dat dit te weinig is dan kunnen we dat nog aanpassen natuurlijk :)
Verwijderd schreef op maandag 01 november 2010 @ 16:33:
nog even een vraag, als ik bied op iets, respond ik dan met een money=50 string, of money=f?

in de TS staat namelijk de type=collect, vervolgens moet ik teruggeven met welke kaarten ik wens te betalen.

edit: zou je het logID willen toevoegen aan de eerste connectie? dan kunnen wij dat ID opslaan
je respond altijd met kaarten, alleen de server geeft soms een getal terug wanneer je niet mag weten hoe de kaarten waren samengesteld.
joppybt schreef op maandag 01 november 2010 @ 22:24:
Enkele regels lager staat dat bij jou twee keer een f wordt afgepakt, samen 100 waard.
code:
1
2010:11:01 18:38:47:608 removed money nnttttff  -> ttttnn

Dit is voor het eerst dat er iets met je geld gebeurt. De gameserver denkt (onterecht) dat jij twee keer een f-geldkaart had en dus niet blufte.
Dat klopt niet, je hoort met nnttttf te beginnen. Foutje in de gameserver volgens mij.
pff, ja domme fout, is aangepast :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

Verwijderd

bug: als iedereen (hetzelfde) blijft bieden stopt de pot nooit

edit: het lijkt gefixt? :P

edit: nee, als ik in mn eentje in een game ga krijg ik deze oneindige loop

action=auction&goods=j&message=W0N0E0

[ Voor 39% gewijzigd door Verwijderd op 02-11-2010 00:35 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Omdat ik graag zou willen meedoen maar een beetje nieuw ben in het ontvangen- en verzenden van HTTP requests voor toepassingen als deze, heb ik een klein vraagje. :)

Stel ik gebruik het HttpServer package van Java om een request te ontvangen, de body van deze request zal dan leeg zijn, right? Dan het gebruik van HttpExchange.getRequestURI genoeg moeten zijn om alle informatie te ontvangen die ik nodig heb? Maar mijn eigenlijke vraag is of ik dan een response moet sturen die enkel een 200 statuscode geeft om te melden dat ik de data heb ontvangen en vervolgens een nieuwe request opstellen voor de server met mijn antwoord i.v.m. het spelletje, of is het de bedoeling dat mijn antwoord voor het spelletje rechtstreeks in de response zit (die ik binnen dezelfde instantie van HttpExchange verstuur)? Ik geraak er niet helemaal uit. (ik hoop dat jullie mijn vraag snappen)
Ik zou simpelweg de code van Janoz van de zeeslagcompetitie kunnen gebruiken, maar ik wil liever iets bijleren en vandaar dacht ik mijn eigen webservercode te schrijven, de keuze op Java en niet simpelweg PHP werd gemaakt omdat we dat op de Universiteit nu aan het leren zijn en ik dit een goede oefening acht.

Acties:
  • 0 Henk 'm!

Verwijderd

je moet je response in de body achterlaten, als jij een pagina online gooit met deze inhoud:
code:
1
?money=t


heb je feitelijk een werkende speler

Acties:
  • 0 Henk 'm!

Verwijderd

Dus basically in de outputStream van HttpExhange.getResponseBody() gewoon "?money=t" of dergelijke wegschrijven?

Iets als:
Java:
1
2
3
4
5
handle(HttpExchange exchange) {
    OutputStream responseBody = .getResponseBody();
    responseBody.write("?money=t");
    responseBody.close();  
}  

maar dan uiteraard binnen de HttpHandler en met een ietwat zinnige waarde. :)

Acties:
  • 0 Henk 'm!

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 21:14

Skinny

DIRECT!

Arjan schreef op maandag 01 november 2010 @ 23:32:

pff, ja domme fout, is aangepast :)
Thanks.. volgende uitdaging :-)

code:
1
2
3
00:23:48,750 [11] DEBUG Game - Processing : ?market=6&id=2193&type=information&message=second_bluff_not_allowed
00:23:48,781 [11] DEBUG Game - Processing : ?market=6&id=2193&type=receive&goods=D
00:23:48,813 [11] DEBUG Game - Processing : ?market=6&id=2193&type=collect&money=ftttt&opponent=W


zie ook http://houbenweb.nl:56789/?log=2193

Ik bluf, twee maal, en krijg daarna alsnog de 'good' ? en daarna wordt het orginele (maximale bod) bij mij gecollect

SIZE does matter.
"You're go at throttle up!"


Acties:
  • 0 Henk 'm!

Verwijderd

als ik een geldezel trek, dan word ik niet geïnformeerd over de ontvangst van de overige personen, is dat by design? het lijkt mij een bug.

volgens mij zou ik 3x een information&opponent=X&money=F moeten ontvangen bij het trekken van de geldezel

Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 15:44

Dricus

ils sont fous, ces tweakers

Ik kan me zo voorstellen dat dat by design is, omdat je die notificatie van de server niet persé nodig hebt om te weten dat je tegenstanders geld krijgen.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Verwijderd schreef op dinsdag 02 november 2010 @ 00:28:
bug: als iedereen (hetzelfde) blijft bieden stopt de pot nooit

edit: het lijkt gefixt? :P

edit: nee, als ik in mn eentje in een game ga krijg ik deze oneindige loop

action=auction&goods=j&message=W0N0E0
Wat er gebeurde, als je auctioneer was en je als enige aan het bieden was, dan kwam het voor dat het hoogste bod 0 was, en de auctioneer dit voor een bedrag wilde overkopen. Als de auctioneer echter geen geld hiervoor had lukte dit niet en moest de veiling opnieuw..
Ik heb dit aangepast en nu zal de auctioneer in een dergelijk geval de kaart gewoon ontvangen.
Verwijderd schreef op dinsdag 02 november 2010 @ 02:00:
als ik een geldezel trek, dan word ik niet geïnformeerd over de ontvangst van de overige personen, is dat by design? het lijkt mij een bug.

volgens mij zou ik 3x een information&opponent=X&money=F moeten ontvangen bij het trekken van de geldezel
Het zou logischer zijn als iedereen op de hoogte wordt gesteld, ik heb dit dan ook aangepast.

De server is geupdate met deze aanpassingen :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 12-09 15:38
Ik ga ook proberen mee te doen, maar ik loop vast op de HTTP requests:

Ik krijg een request naar ?goods=F&auctioneer=E&type=auction&id=2338&market=18&opponent=E en daar reply ik op met ?money=t, waarna ik de connectie sluit. Als ik dit handmatig in de browser probeert werkt dit ook goed :) Echter, de server zegt vervolgens dit in zijn log:
code:
1
2
3
4
5
6
2010:11:02 14:01:33:924 GET /?market=18&id=2338&type=auction&auctioneer=E&goods=F&opponent=E HTTP/1.1\r\nHost: 8*.*2*1*9*4*:8000\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n
2010:11:02 14:01:33:948 connecting to player took 24 milliseconds
2010:11:02 14:01:33:949 waiting maximal 4976 milliseconds for response
2010:11:02 14:01:33:975 waited 26 milliseconds for player response
2010:11:02 14:01:33:976 raw player response: HTTP/1.0 200 OK\r\n
2010:11:02 14:01:33:976 parsed player response: goods: type: opponent:  money: auctioneer:  message:

De response komt dus niet aan. Moet ik nog speciale headers meesturen o.i.d.?

Overigens maak ik gebruik van BaseHTTP/0.3 uit Python 2.6.5.

Acties:
  • 0 Henk 'm!

Verwijderd

verstuur je het in stukken?

ik verstuur simpelweg een pakket met HTTP/1.0 200 OK\r\n\r\n?money=t, probeer dat eens :)

edit goed ik verstuur
code:
1
2
3
4
5
6
HTTP/1.0 200 OK\r\n
Location: ip-adres:port \r\n
Connection: close\r\n
Content-Type: text/html; charset=UTF-8\r\n
\r\n
?money=t


maar dat zou niet zoveel verschil moeten maken.

[ Voor 46% gewijzigd door Verwijderd op 02-11-2010 16:21 ]


Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 12-09 15:38
Volgens mij komt het inderdaad omdat ik in stukken verstuurde, nu ik het in 1x verstuur lukt het wel. Is het er alsnog op neergekomen dat ik zelf HTTP aan het implementeren ben, maar het werkt nu.

Overigens kan ik nog gewoon 2x achter elkaar bluffen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
[16:43:06] [2357][REQUEST] ?goods=A&money=t&message=W10N0E0&type=auction&id=2357&market=23&opponent=W
[16:43:06] [2357][REPLY] [42dc1bb4372c1a12272c2e001df7edda] ?money=t
[16:43:06] [2358][REQUEST] ?money=nn&message=bluffed&type=information&id=2358&market=23&opponent=E
[16:43:06] [2358][REPLY] [01fdf4f5ff763e89ccfb9da9285899b8] ?
[16:43:06] [2358][REQUEST] ?goods=A&auctioneer=E&type=auction&id=2358&market=23&opponent=E
[16:43:06] [2358][REPLY] [bef2dadd27edeaae4aa7def6b5261d52] ?money=t
[16:43:06] [2357][REQUEST] ?goods=A&money=t&message=W10N0E0&type=auction&id=2357&market=23&opponent=W
[16:43:06] [2357][REPLY] [703a1f7e54db0b876cc753970332b8e4] ?money=t
[16:43:06] [2358][REQUEST] ?money=nn&message=bluffed&type=information&id=2358&market=23&opponent=E
[16:43:06] [2358][REPLY] [3a6f9ddcebf350b5bafb4237cfb182ee] ?
[16:43:06] [2358][REQUEST] ?goods=A&auctioneer=E&type=auction&id=2358&market=23&opponent=E
[16:43:06] [2358][REPLY] [69d78c501dcc21f5b0e00f015572afbe] ?money=t

En dat blijft zich herhalen. (eerste veld is tijd, 2e veld is playerid, derde veld is type, 4e veld is ETag header). Log is deze.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Het lijkt dat ik niet altijd de 'information' krijg over wie een kaartje uiteindelijk gewonnen heeft.
In deze logfile vind je de auction regel
code:
1
2010:11:02 16:11:59:294 GET /v2/?market=34&id=2401&type=auction&money=f&goods=B&opponent=W&message=W50N0E0

Echter, dat is de laatste regel met goods=B. 'Zuid' krijgt nooit te horen wie gewonnen heeft.
Toevallig is West ook een speler van mij (die heel gretig B verzameld) en die heeft wel een receive gekregen dat hij hem ontvangen heeft.

Acties:
  • 0 Henk 'm!

Verwijderd

Afbeeldingslocatie: http://i.imgur.com/04dbE.png

weet iemand wat de gemarkeerde regel voorstelt? en dan in het bijzonder het "opponement" gedeelte :)

volgens mij betekent dat dat opponement E goods A heeft overgekocht van mij, maar ik zie dus nergens iets staan over goods die E ontvangt.

Acties:
  • 0 Henk 'm!

  • Japius
  • Registratie: April 2003
  • Laatst online: 30-08 20:57
Komt dat niet in de regel daarna?

Uit de startpost:
Arjan schreef op maandag 25 oktober 2010 @ 23:22:
type=collect
Ook dit type kun je alleen maar ontvangen en wordt gebruikt om duidelijk te maken dat de server heeft besloten dat er geld of goederen bij jou weggehaald moeten worden.
Als er money opgehaald wordt, dan kun je nog aangeven hoe dit opgehaald moet worden, zo kun je de waarde 50 betalen met 1xf, of 5xt. Indien je niks aangeeft maakt de server een inschatting en bericht je wat hij voor betaling heeft gedaan via type=information.

type=receive
Dit is ongeveer hetzelfde als het collect type, alleen wordt er nu aangeduid dat je geld of goederen ontvangt.
Ik zou verwachten dat er t money van jou naar E gaat, en dat jij vervolgens een A van E krijgt. Dat zou dan in de volgende request moeten staan, of in de request die E ontvangt.

[ Voor 8% gewijzigd door Japius op 03-11-2010 15:42 . Reden: aanvullen vervolgstappen ]


Acties:
  • 0 Henk 'm!

Verwijderd

zoals je ziet is de regel erna type=start, het "de regel erna", wat ik ook verwachtte, gaat dus niet op

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Precies, volgens mij is dit hetzelfde probleem als ik heb een paar posts terug. Ik krijg ook niet altijd bericht naar wie een 'goods' gegaan is.

Acties:
  • 0 Henk 'm!

  • Japius
  • Registratie: April 2003
  • Laatst online: 30-08 20:57
Je ziet het terug in de log van je tegenstander:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
....
2010:11:03 12:45:27:195 GET /?market=81&id=2591&type=receive&goods=A HTTP/1.1\r\nHost: 8*.*0*.*0*3*:4900\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n
2010:11:03 12:45:27:300 connecting to player took 104 milliseconds
2010:11:03 12:45:27:300 added goods  -> A
2010:11:03 12:45:27:300 GET /?market=81&id=2591&type=collect&money=t&opponent=W HTTP/1.1\r\nHost: 8*.*0*.*0*3*:4900\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n
2010:11:03 12:45:27:379 connecting to player took 78 milliseconds
2010:11:03 12:45:27:380 waiting maximal 4922 milliseconds for response
2010:11:03 12:45:27:530 waited 150 milliseconds for player response
2010:11:03 12:45:27:530 raw player response: HTTP/1.0 200 OK\r\nLocation: 84.28.27.53:38249\r\nConnection: close\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n
2010:11:03 12:45:27:531 parsed player response: goods: type: opponent:  money: auctioneer:  message:
2010:11:03 12:45:27:531 removed money nnttttft  -> fttttnn
2010:11:03 12:45:27:531 GET /?market=81&id=2591&type=information&money=t HTTP/1.1\r\nHost: 8*.*0*.*0*3*:4900\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n
2010:11:03 12:45:27:692 connecting to player took 161 milliseconds
...


Hierbij ga ik er van uit dat als jij player 2592 bent en er 4 in 1 game zitten, player 2591 bij jou in dezelfde market (81 dus) zit. Aangezien jij een transactie met E hebt, zal dat de speler voor je zijn, dus speler 2591.

Je ziet bij de ontvangende partij dus eerst een ontvangst, vervolgens een collect en tot slot een information. Die laatste mag wat mij betreft denk ik naar alle spelers gestuurd worden. Want hoe weten de andere twee nu wat er gebeurd is?

Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

Ik zie dat het voorbeeld is bijgewerkt, maar zou de informatie met het bedrag van wie wat krijgt en wie wat ontvangt niet 40 moeten zijn in plaats van 50? De auctioneer bied 40, maar kan niet precies betalen. Oost weet als enige dat hij 50 krijgt (?market=1&id=2&type=receive&opponent=W&money=f)
Voor de info zou ik verwachten dat er &money=Q5040 gestuurd zou worden. Aangezien de kaart(en) blind aan de hoogste bieder wordt gegeven en er maar 1 kaart wordt gestuurd, kun je concluderen dat er minimaal 50 is gegeven (kan ook 100, 200 of 500 zijn)

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

Verwijderd

het voorbeeld klopt ook nog niet, in de regel waar ik geïnformeerd word over de koop van goods moet money een negatief getal zijn.

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
@darkstone: welke regel bedoel je?
@Vaan Banaan: In de spelregels staat niet dat er blind betaald wordt bij een auction, maar er staat ook niet expliciet gemeld dat je het laat zien. Ik stel voor de implementatie van Arjan te volgen (Wat is die? Probeer het eens.)

Moet je gepast betalen als je dat kan?
Citaat: "Wie niet gepast kan betalen moet een hoger bedrag betalen."
Er staat niet "Wie gepast kan betalen moet een gepast bedrag betalen." ...

Nu ik toch de handleiding doorlees:
"Wie tijdens de veiling ontdekt dat hij het geboden bedrag niet heeft, moet al zijn geld laten zien." Het is de vraag of je wel bewust mag bluffen. Als computerprogramma heb je prima door of je het geld hebt. Dat 'ontdek' je tijdens de veiling en niet pas erna.

Acties:
  • 0 Henk 'm!

Verwijderd

Bolukan schreef op woensdag 03 november 2010 @ 21:49:
@darkstone: welke regel bedoel je?
@Vaan Banaan: In de spelregels staat niet dat er blind betaald wordt bij een auction, maar er staat ook niet expliciet gemeld dat je het laat zien. Ik stel voor de implementatie van Arjan te volgen (Wat is die? Probeer het eens.)
bekijk de eerste regel in mijn plaatje eens, er staat money= -Q10
in het voorbeeld staan alleen positieve getallen

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
In het voorbeeld had E een bod van 40 gedaan
S neemt uiteindelijk het kaartje zelf voor 50, geld wat naar E gaat.

In de laatste regels met 'verliezer krijgt geld' wordt echter telkens gesuggereerd dat W het geld krijgt.
Dat moet volgens mij E zijn.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Bolukan schreef op woensdag 03 november 2010 @ 21:49:
"Wie tijdens de veiling ontdekt dat hij het geboden bedrag niet heeft, moet al zijn geld laten zien." Het is de vraag of je wel bewust mag bluffen. Als computerprogramma heb je prima door of je het geld hebt. Dat 'ontdek' je tijdens de veiling en niet pas erna.
De tekst 'Wie tijdens de veiling ontdekt dat hij het geboden bedrag niet heeft' suggereert ten onrechte dat je het zelf nog niet wist. Dat is natuurlijk niet zo, je weet altijd hoeveel je zelf hebt.
De tekst zou moeten luiden 'Wie aan het eind van de veiling niet aan een betalingsverplichting kan voldoen (en dus gebluft heeft)'.

De gameserver weet ook best wel hoeveel geld je hebt maar zal je pas ontmaskeren op het moment dat jij echt moet gaan betalen. Als je wordt overboden door iemand anders heb je leuk de prijs opgedreven zonder betrapt te zijn.

Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
joppybt schreef op woensdag 03 november 2010 @ 22:37:
In het voorbeeld had E een bod van 40 gedaan
S neemt uiteindelijk het kaartje zelf voor 50, geld wat naar E gaat.

In de laatste regels met 'verliezer krijgt geld' wordt echter telkens gesuggereerd dat W het geld krijgt.
Dat moet volgens mij E zijn.
Aangepast. Niet dat het nu helemaal correct is. (Vind de 10 fouten :9 )

Mbt "De tekst zou moeten luiden."
Daar gaat het me juist om. We willen de handleiding volgen en die stelt iets anders dan wat je nu voorstelt en/of het is geimplementeerd. Simpel op te lossen: als uitzondering vermelden of de implementatie aan te passen.

[ Voor 63% gewijzigd door Bolukan op 04-11-2010 16:15 . Reden: Aangevuld ]


Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

Het blind geven van de geldkaarten bij een veiling was een tactische gedachtenkronkel, maar staat inderdaad nergens in de spelregels beschreven. Zoals het voorbeeld is, klopt het dus wel.
Wat ik me nog afvroeg, hoe kan ik bij een trade van een ander aangeven dat ik geen tegenbod wil doen?
Alleen ?money= sturen?

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

Verwijderd

het voorbeeld is ook fout.. start gewoon een spel en kijk wat de server teruggeeft.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Bolukan schreef op donderdag 04 november 2010 @ 16:12:
[...] We willen de handleiding volgen en die stelt iets anders dan wat je nu voorstelt en/of het is geïmplementeerd. Simpel op te lossen: als uitzondering vermelden of de implementatie aan te passen.
Voor mijn beeld stel het volgende
S start een auction
W biedt (en heeft ook wel) 50
N biedt 100 (maar heeft het eigenlijk niet en bluft dus)
E biedt 150 en wint
S hoeft de kaart niet zelf en krijgt 150 van E

De grote vraag: wordt de bluf van N nu publiek bekend gemaakt?

Alternatief
S start een auction
W biedt niets
N biedt 100 (maar heeft het eigenlijk niet en bluft dus)
E biedt niets
S wil de kaart graag zelf en koopt hem door 100 aan N te geven

Ook hier de grote vraag: wordt de bluf van N nu publiek bekend gemaakt?

Volgens zou de bluf in beide gevallen geheim moeten blijven. De essentie van bluffen is namelijk dat je er mee weg moet kunnen komen. Anders blijft er weinig van het blufgebeuren over. Zo kan Arjan het niet bedoelt hebben.

Volgens mij is alleen in het tweede geval als S de kaart niet zelf koopt, N wint en S dus het geld van N zou moeten krijgen N echt betrapt op bluffen.

Acties:
  • 0 Henk 'm!

Verwijderd

ho, ho, ho.
joppybt schreef op donderdag 04 november 2010 @ 17:53:
[...]

Voor mijn beeld stel het volgende
S start een auction
W biedt (en heeft ook wel) 50
N biedt 100 (maar heeft het eigenlijk niet en bluft dus)
E biedt 150 en wint
S hoeft de kaart niet zelf en krijgt 150 van E

De grote vraag: wordt de bluf van N nu publiek bekend gemaakt?
S krijgt 150 van E????
S krijgt helemaal niets, E betaalt 150 aan "de pot"
laat ik het zo stellen: als je moet betalen, maar je hebt het niet, word het gezien als bluf, anders word er gewoon doorgespeeld.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Verwijderd schreef op donderdag 04 november 2010 @ 18:00:
ho, ho, ho.


[...]
S krijgt 150 van E????
S krijgt helemaal niets, E betaalt 150 aan "de pot"
laat ik het zo stellen: als je moet betalen, maar je hebt het niet, word het gezien als bluf, anders word er gewoon doorgespeeld.
Anti-ho, ho, ho :)
Er gaat nooit geld terug naar de pot. Alles blijft in het spel. Anders zou de geldvoorraad onder de spelers opraken (afgezien van de paar geldkaarten die pas later in het spel komen via de geldezel)

Acties:
  • 0 Henk 'm!

Verwijderd

ahaa dat staat lekker duidelijk in de TS...

Acties:
  • 0 Henk 'm!

  • veldsla
  • Registratie: April 2000
  • Laatst online: 12-09 14:18
Heeft er iemand al een werkende speler met de server laten spelen? Want ik kom er niet uit.

Ik haal even een voorbeeld uit dit log

Het begint goed, ik start, ga voor auction, er komt een kaart, niemand bied, ik ook niet en ik ontvang hem. Dan ronde 2:
code:
1
2
3
4
5
6
2010:11:04 17:23:50:147 GET ?market=90&id=2625&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
2010:11:04 17:23:50:190 connecting to player took 43 milliseconds
2010:11:04 17:23:50:190 waiting maximal 4957 milliseconds for response
2010:11:04 17:23:50:227 waited 37 milliseconds for player response
2010:11:04 17:23:50:227 raw player response: ?money=t\n
2010:11:04 17:23:50:227 parsed player response: goods: type: opponent:  money:t auctioneer:  message:

Ik bied dus 10 op de veiling waar verder niemand op bied. Alleen W zou dus nog kunnen bieden, dan komt er dit:
code:
1
2010:11:04 17:23:50:228 GET ?market=90&id=2625&type=auction&auctioneer=W&money=t&goods=A&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

Wat is dit? Bijna dezelfde request, maar nu zonder opponent, maar met mijn bod? Waarom, wat moet ik hiermee? Omdat er auction staat gaat mijn domme client weer bieden (maar nu niks):
code:
1
2
3
4
5
2010:11:04 17:23:50:264 connecting to player took 36 milliseconds
2010:11:04 17:23:50:264 waiting maximal 4964 milliseconds for response
2010:11:04 17:23:50:298 waited 34 milliseconds for player response
2010:11:04 17:23:50:298 raw player response: \n
2010:11:04 17:23:50:298 parsed player response: goods: type: opponent:  money: auctioneer:  message:

Blijkbaar toch gewonnen, dus nu nog ontvangen en betalen:
code:
1
2
3
4
5
6
7
8
2010:11:04 17:23:50:298 GET ?market=90&id=2625&type=receive&goods=A 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:04 17:23:50:338 connecting to player took 39 milliseconds
2010:11:04 17:23:50:338 added goods D  -> DA
2010:11:04 17:23:50:338 GET ?market=90&id=2625&type=collect&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:04 17:23:50:379 connecting to player took 40 milliseconds
2010:11:04 17:23:50:379 waiting maximal 4960 milliseconds for response
2010:11:04 17:23:50:410 waited 31 milliseconds for player response
2010:11:04 17:23:50:410 raw player response: ?money=t\n

Het lijkt me dat ik nu 10 betaald heb, maar wat en daarna staat...Neemt de server mij intern nu nntf af?
code:
1
2
2010:11:04 17:23:50:410 parsed player response: goods: type: opponent:  money:t auctioneer:  message:
2010:11:04 17:23:50:410 removed money nnttttf  -> ttt

Ik vrees het wel, want later wordt ik beticht van bluffen. (of er zit een bug in mijn geldvoorraad).

Doet iemand het beter dan ik?

offtopic, ik zie zo af en toe nog wel eens een timeout in de logs. Heb mijn server via het lokale netwerk getest en doe bijna 400 request/s. Vervolgens van extern getest en dan antwoord ik 90% binnen 40ms, maar de rest duurt meer dan 3 sec :X . Maw port forwarden met een el cheapo belkin is niet aan te bevelen!

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
veldsla schreef op donderdag 04 november 2010 @ 20:28:
Heeft er iemand al een werkende speler met de server laten spelen? Want ik kom er niet uit.
code:
1
2010:11:04 17:23:50:228 GET ?market=90&id=2625&type=auction&auctioneer=W&money=t&goods=A&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

Wat is dit? Bijna dezelfde request, maar nu zonder opponent, maar met mijn bod? Waarom, wat moet ik hiermee? Omdat er auction staat gaat mijn domme client weer bieden (maar nu niks):
Dit snap ik ook niet
Blijkbaar toch gewonnen, dus nu nog ontvangen en betalen:
code:
1
2
3
4
5
6
7
8
2010:11:04 17:23:50:298 GET ?market=90&id=2625&type=receive&goods=A 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:04 17:23:50:338 connecting to player took 39 milliseconds
2010:11:04 17:23:50:338 added goods D  -> DA
2010:11:04 17:23:50:338 GET ?market=90&id=2625&type=collect&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:04 17:23:50:379 connecting to player took 40 milliseconds
2010:11:04 17:23:50:379 waiting maximal 4960 milliseconds for response
2010:11:04 17:23:50:410 waited 31 milliseconds for player response
2010:11:04 17:23:50:410 raw player response: ?money=t\n

Het lijkt me dat ik nu 10 betaald heb, maar wat en daarna staat...Neemt de server mij intern nu nntf af?
code:
1
2
2010:11:04 17:23:50:410 parsed player response: goods: type: opponent:  money:t auctioneer:  message:
2010:11:04 17:23:50:410 removed money nnttttf  -> ttt
Dit kan inderdaad niet correct zijn. Zolang je alleen auctions doet (en geen trade) zul je natuurlijk nooit je n-kaarten gaan weggeven.
Ik vrees het wel, want later wordt ik beticht van bluffen. (of er zit een bug in mijn geldvoorraad).

Doet iemand het beter dan ik?
Ik heb mijn ontwikkeling even op een laag pitje gezet totdat dit soort bugs er uit zijn (ik mis ook nog altijd soms information over goods die anderen ontvangen).
Ik ben me er van bewust dat Arjan dit ook maar in zijn vrije tijd doet dus ik wacht rustig af.

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
veldsla schreef op donderdag 04 november 2010 @ 20:28:
Heeft er iemand al een werkende speler met de server laten spelen? Want ik kom er niet uit.

Ik haal even een voorbeeld uit dit log

Het begint goed, ik start, ga voor auction, er komt een kaart, niemand bied, ik ook niet en ik ontvang hem. Dan ronde 2:
code:
1
2
3
4
5
6
2010:11:04 17:23:50:147 GET ?market=90&id=2625&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
2010:11:04 17:23:50:190 connecting to player took 43 milliseconds
2010:11:04 17:23:50:190 waiting maximal 4957 milliseconds for response
2010:11:04 17:23:50:227 waited 37 milliseconds for player response
2010:11:04 17:23:50:227 raw player response: ?money=t\n
2010:11:04 17:23:50:227 parsed player response: goods: type: opponent:  money:t auctioneer:  message:

Ik bied dus 10 op de veiling waar verder niemand op bied. Alleen W zou dus nog kunnen bieden, dan komt er dit:
code:
1
2010:11:04 17:23:50:228 GET ?market=90&id=2625&type=auction&auctioneer=W&money=t&goods=A&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

Wat is dit?
Een bug ;)
Ik heb dit gefixt, maar de nieuwe versie staat nog niet online omdat ik de logging iets aan het uitbreiden ben, ik laat wat weten zodra deze online staat.
Bijna dezelfde request, maar nu zonder opponent, maar met mijn bod? Waarom, wat moet ik hiermee? Omdat er auction staat gaat mijn domme client weer bieden (maar nu niks):
code:
1
2
3
4
5
2010:11:04 17:23:50:264 connecting to player took 36 milliseconds
2010:11:04 17:23:50:264 waiting maximal 4964 milliseconds for response
2010:11:04 17:23:50:298 waited 34 milliseconds for player response
2010:11:04 17:23:50:298 raw player response: \n
2010:11:04 17:23:50:298 parsed player response: goods: type: opponent:  money: auctioneer:  message:

Blijkbaar toch gewonnen, dus nu nog ontvangen en betalen:
code:
1
2
3
4
5
6
7
8
2010:11:04 17:23:50:298 GET ?market=90&id=2625&type=receive&goods=A 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:04 17:23:50:338 connecting to player took 39 milliseconds
2010:11:04 17:23:50:338 added goods D  -> DA
2010:11:04 17:23:50:338 GET ?market=90&id=2625&type=collect&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:04 17:23:50:379 connecting to player took 40 milliseconds
2010:11:04 17:23:50:379 waiting maximal 4960 milliseconds for response
2010:11:04 17:23:50:410 waited 31 milliseconds for player response
2010:11:04 17:23:50:410 raw player response: ?money=t\n

Het lijkt me dat ik nu 10 betaald heb, maar wat en daarna staat...Neemt de server mij intern nu nntf af?
Ook deze is gefixt :)
code:
1
2
2010:11:04 17:23:50:410 parsed player response: goods: type: opponent:  money:t auctioneer:  message:
2010:11:04 17:23:50:410 removed money nnttttf  -> ttt

Ik vrees het wel, want later wordt ik beticht van bluffen. (of er zit een bug in mijn geldvoorraad).

Doet iemand het beter dan ik?

offtopic, ik zie zo af en toe nog wel eens een timeout in de logs. Heb mijn server via het lokale netwerk getest en doe bijna 400 request/s. Vervolgens van extern getest en dan antwoord ik 90% binnen 40ms, maar de rest duurt meer dan 3 sec :X . Maw port forwarden met een el cheapo belkin is niet aan te bevelen!
Ik heb het accepten van request ed. aangepast, hopelijk is de nieuwe server iets vergefelijker

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Arjan schreef op donderdag 04 november 2010 @ 21:39:
Ik heb dit gefixt, maar de nieuwe versie staat nog niet online omdat ik de logging iets aan het uitbreiden ben, ik laat wat weten zodra deze online staat.
Ik hoop dat we dit weekend er al mee kunnen testen. :) Ik was ook namelijk gestopt met ontwikkelen vanwege de connectiefouten...

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
De server is geupdate, markets tellen vanaf nu ook door en zijn tevens als log op te vragen.

Als je de log van market 1 wilt hebben stuur je "?market=1" naar de server

Als iemand nog een leuke stylesheet wil maken voor deze logs dan plak ik deze er nog bij :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Meer informatie, altijd goed!
Nu in market=2 de allereerste auction:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
direction   goods   type    opponent    money   auctioneer  message
server -> S     start               
S -> server                     
server -> W D   auction E       E   
W -> server                     
server -> S D   auction S           W0
S -> server                     
server -> S D   receive             
server -> W D   information E           
server -> N D   information N           
server -> E D   information W           
server -> W     information E           
server -> N     information N           
server -> E     information W

S start een auction, W doet geen bod. Direct daarna gaat het kaartje al naar S toe zonder dat N en E ooit een kans hebben gekregen te bieden.
Zie ook log=2647: De allereerste GET naar N is een information. Dat kan niet kloppen, hij heeft zelf niet eens de kans gekregen te bieden.

Overigens mijn complimenten voor de logfiles. Zonder die was ik al gestopt, nu zie ik het gewoon als een extra puzzel binnen een opdracht.

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
joppybt schreef op vrijdag 05 november 2010 @ 11:01:
Meer informatie, altijd goed!
Nu in market=2 de allereerste auction:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
direction   goods   type    opponent    money   auctioneer  message
server -> S     start               
S -> server                     
server -> W D   auction E       E   
W -> server                     
server -> S D   auction S           W0
S -> server                     
server -> S D   receive             
server -> W D   information E           
server -> N D   information N           
server -> E D   information W           
server -> W     information E           
server -> N     information N           
server -> E     information W

S start een auction, W doet geen bod. Direct daarna gaat het kaartje al naar S toe zonder dat N en E ooit een kans hebben gekregen te bieden.
Zie ook log=2647: De allereerste GET naar N is een information. Dat kan niet kloppen, hij heeft zelf niet eens de kans gekregen te bieden.

Overigens mijn complimenten voor de logfiles. Zonder die was ik al gestopt, nu zie ik het gewoon als een extra puzzel binnen een opdracht.
Er verdwijnen wat regels uit de log / logica, ben dit atm. aan het verhelpen :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Volgens mij heb ik nu alle narigheid eruit, ik update de openingspost zsm. :)

Nb: Indien de auctioneer de goederen gratis ontvangt zullen de spelers niet op de hoogte worden gebracht van het feit dat de auctioneer '0' heeft ontvangen :p

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Stug volhouden: waarom staat market=13 stil?

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
arg, nu dan?

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Beter, beter, ik ga weer verder.

Acties:
  • 0 Henk 'm!

Verwijderd

http://houbenweb.nl:56789/?market=21

waarom verandert de auctioneer steeds?

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Perspectief. Elke speler denkt zelf dat hij Zuid is.

Zuid begint.
Vanuit de volgende speler (West t.o.v. speler Zuid) gezien zit de auctioneer rechts. Vanuit het perspectief van speler West is dat dan speler Oost.

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
(Arjan, kun je de regels in de market log nummeren? Dat praat gemakkelijker)

In market=20 begint ergens vlak voor de helft de eerste auction om letter C.
E heeft deze auction gestart, N is de enige die biedt.
E krijgt als laatste een type=auction voor zijn zelfkoop recht maar maakt daar geen gebruik gaan. N wint dus.
Vervolgens zie je een receive van goods C naar N en information van goods C naar zowel S als W.

Echter, het lijkt me logischer dat E hier ook gewoon een information over krijgt.
Op zich kan hij dit ook wel terug redeneren omdat hij een auction heeft laten schieten maar dat is onnodig complex.

Mij lijkt het logisch dat elke transactie (goods/geld) altijd aan alle vier de spelers expliciet wordt bevestigt, hetzij via collect/receive als je zelf betrokken bent, hetzij via information als het om anderen gaat.

Acties:
  • 0 Henk 'm!

Verwijderd

user css voor als je alleen je eigen data wil zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.N * 
{
display: none;
}

.E * 
{
display: none;
}

.W * 
{
display: none;
}


(te gebruiken met web developper firefox addon e.d.)

[ Voor 15% gewijzigd door Verwijderd op 05-11-2010 13:50 ]


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Nog een foutje volgens mij.
Achteraan log=2793
code:
1
2010:11:05 15:41:38:658 GET /v3/vx/?market=39&id=2793&type=end&message=W0N180E0 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

Ofwel: N heeft gewonnen met 180 (Zuid heeft niets)
Kijk ik echter bij N in log=2795 dan zie ik als laatste toevoeging:
code:
1
2
3
2010:11:05 15:41:37:564 GET /v3/vc/?market=39&id=2795&type=receive&goods=F 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:05 15:41:37:598 connecting to player took 33 milliseconds
2010:11:05 15:41:37:599 added goods FGCGCIDHCCB -> FGCGCIDHCCBF

Sorteren: B CCCC D FF GG H I
Alleen kwartet C is compleet. Dat is maar 90 punten waard. Waarom is dat verdubbeld?

Überhaupt is een eindscore van 180 volgens mij niet mogelijk.

Later: bij een ander potje had ik drie spelers met elk één kwartet, resp. BBBB, CCCC en DDDD.
Volgens de gameserver is dat message=W80N180E320.
Alles is verdubbeld (wat op zich voor winnaar niet uitmaakt natuurlijk)

[ Voor 10% gewijzigd door joppybt op 05-11-2010 20:25 . Reden: Update ]


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

Pfoe, net "even" dit topic doorgelezen

Misschien doe ik ook wel weer mee voor de poedelprijs ;)

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
joppybt schreef op vrijdag 05 november 2010 @ 17:54:
[...]
Later: bij een ander potje had ik drie spelers met elk één kwartet, resp. BBBB, CCCC en DDDD.
Volgens de gameserver is dat message=W80N180E320.
Alles is verdubbeld (wat op zich voor winnaar niet uitmaakt natuurlijk)
fixed :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
We gaan gestaag door:

http://houbenweb.nl:56789/?market=49 t/m http://houbenweb.nl:56789/?market=52 lijken te hangen. Waarom?

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
ja.. dat heeft er alles mee te maken als je je eigen fixes niet incheckt en gaat overschrijven.. zou weer gefixt moeten zijn!

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Hij loopt weer door inderdaad.

Helaas heb ik nog altijd eigenlijk elk potje wel een aantal keren 'could not connect to .....'. Ik zit nog in de simpele fase waar ik probeer een kloppende registratie van de goods-kaartjes te krijgen. Door de connection problemen zit ik aan het eind van het potje altijd met enkele kaartjes waarvan ik niet weet wie ze heeft.

Om uit te zoeken waar het aan ligt heb ik een pagina simpel.html gemaakt met alleen als inhoud
code:
1
?money=t

Deze pagina heb ik vervolgens geplaatst op enkele compleet verschillende webservers (IIS en Apache) die verder gewoon professioneel gehost worden (laat mijn baas het niet ontdekken). De pagina wordt altijd binnen 30 ms opgeleverd.

Ook daar krijg ik verbindingsproblemen, zie bijvoorbeeld log=2855.

Ik kan me niet voorstellen dat zo veel verschillende webservers zo veel verbindingsproblemen hebben dus ik ben bang er een stabiliteits probleem is met jou verbinding.

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
joppybt schreef op vrijdag 05 november 2010 @ 21:59:
[...]

Ik kan me niet voorstellen dat zo veel verschillende webservers zo veel verbindingsproblemen hebben dus ik ben bang er een stabiliteits probleem is met jou verbinding.
Kun je mij een url geven? ( mag via dm ) dat ik even een traceroute kan doen.

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
tja, als dit terug blijft komen wil ik wel wat tests gaan opzetten, maar momenteel zou ik zo even niks weten? Zoals je ziet zijn alle andere responses ook snel.

oeps dit moest in de DM..

[ Voor 10% gewijzigd door Arjan op 05-11-2010 23:04 ]

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • remielowik
  • Registratie: Januari 2010
  • Laatst online: 13-09 09:50
Ik heb een request :D, is het mogelijk om een information naar iedereen te sturen als de laatste kaart verhandelt is en dat je alleen nog maar kan handelen en niet meer kan auctionen ?

edit:
type=end&message=W800N0E0
dit zie je als het spel eindigt maar dit is vreemd want je ziet je eigen scoren niet, kan dit ook nog aangepast worden?

[ Voor 34% gewijzigd door remielowik op 06-11-2010 01:20 ]


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Onderdeel van het spel is dat je zult moeten gaan registreren wie welke kaarten in het bezit heeft. Als je dat al niet weet valt er ook niets te handelen. Je weet dan ook meteen wanneer alle kaarten op zijn. (Maar een information zou wel handig zijn).

Hetzelfde geldt natuurlijk ook voor het einde van het spel. Als het goed is weet je exact wat je zelf hebt. Maar ook hier geldt dat het wel handig zou zijn om je eigen 'eindscore' er ook bij te krijgen, als was het maar om tijdens ontwikkeling te zien of je je administratie goed hebt uitgevoerd.

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Eigen score is toegevoegd :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Ik heb weer wat zitten testen en het is aanzienlijk verbetert. d:)b
Ik heb zo snel geen connectie-fouten meer gezien, dus het lijkt verholpen te zijn. :)

Nog een vraagje/bevestiging:
Bij het communicatietestje zag ik soms bij type=information money=-0 staan. Dit betekent waarschijnlijk dat iemand een kaart voor niks heeft gekregen? Er wordt dan ook niet met 'n'-kaarten betaalt?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Onbekend schreef op zaterdag 06 november 2010 @ 22:33:
Ik heb weer wat zitten testen en het is aanzienlijk verbetert. d:)b
Ik heb zo snel geen connectie-fouten meer gezien, dus het lijkt verholpen te zijn. :)

Nog een vraagje/bevestiging:
Bij het communicatietestje zag ik soms bij type=information money=-0 staan. Dit betekent waarschijnlijk dat iemand een kaart voor niks heeft gekregen? Er wordt dan ook niet met 'n'-kaarten betaalt?
Als er geen 'Q' in het bericht staat zijn er inderdaad geen kaarten verhandeld. Bijvoorbeeld bij een veiling waar niemand op geboden heeft.

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Prima. :)


Ik zie dat jouw server steeds kijkt of er al data wordt teruggegeven. Zodra er data beschikbaar is, verwerk je het en ga je weer verder met de volgende actie.
Dit gaat meestal goed. Maar soms ben ik nog halverwege bezig met data schrijven, en lees je dus de rest van de data niet. Dit gaat natuurlijk fout als ik niet mijn volledige bod heb weggeschreven.

Is het niet mogelijk om te wachten totdat de verbinding wordt gesloten? Dan pas weet je zeker dat je alle data hebt. :)


Nog een puntje:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2010-11-07 16:08:28 Request: market=154&id=3253&type=auction&goods=B&message=W0N0E0
2010-11-07 16:08:28 Output: ?money=
2010-11-07 16:08:28 Request: market=154&id=3253&type=receive&goods=B
2010-11-07 16:08:28 Output: 
2010-11-07 16:08:28 Request: market=154&id=3253&type=auction&auctioneer=W&goods=F&opponent=W&message=N0E0
2010-11-07 16:08:28 Output: ?money=t
2010-11-07 16:08:28 Request: market=154&id=3253&type=receive&goods=F
2010-11-07 16:08:28 Output: 
2010-11-07 16:08:28 Request: market=154&id=3253&type=collect&money=t&opponent=W
2010-11-07 16:08:28 Output: ?money=
2010-11-07 16:08:29 Request: market=154&id=3253&type=information&money=t
2010-11-07 16:08:29 Output: 

2010-11-07 16:08:29 Request: market=154&id=3253&type=auction&auctioneer=N&goods=E&opponent=N&message=E0


Waarom staat er op regel 11 geen -t? Het geld wordt er toch bij mij afgehaald?

[ Voor 52% gewijzigd door Onbekend op 07-11-2010 16:28 ]

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Als je een information krijgt zonder opponent zal het altijd om een collect van jezelf gaan. Het minteken voegt daar geen informatie aan toe.
Een 'receive' voor jezelf wordt namelijk niet apart bevestigd met een information naar jezelf.

(denk ik...)

Overigens zie ik dat in jou logfile ook weer een 'could not connect' staat. Ik heb er zelf ook nog regelmatig last van.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Inderdaad. Ik heb niet eens meer naar die logfiles gekeken omdat ik zelf de requestafhandeling goed wilde hebben.

Maar ik zie dat de server niet wacht totdat ik klaar ben met data verzenden, dus het heeft niet zoveel zin om al die logfiles te bekijken voordat dit opgelost is.

Oja, is het ook mogelijk om de url helemaal uit de log-files te halen? Met wat gegoochel heb je zo de letters achter de sterretjes gevonden en kunnen anderen al met jouw speler testen.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Onbekend schreef op zondag 07 november 2010 @ 18:17:
Oja, is het ook mogelijk om de url helemaal uit de log-files te halen? Met wat gegoochel heb je zo de letters achter de sterretjes gevonden en kunnen anderen al met jouw speler testen.
Ik zit best wel eens te neuzen in andermans logfiles en wat me vooral opvalt is dat twee weken nadat de contest is opgestart ik nog geen enkele trade heb kunnen vinden in de logfiles van anderen. Volgens mij worstelt iedereen (net als ik) er alleen al enorm mee om de registratie van de auctions op poten te krijgen.

Acties:
  • 0 Henk 'm!

  • Domdo
  • Registratie: Juni 2009
  • Laatst online: 30-06 20:29
Ik heb besloten dat ik niet verder ga knoeien zolang er nog requests komen waarvan het mij niet duidelijk waarom ze ik ze gekregen heb, aan de hand van het voorbeeld / verwachtingen.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

De hele trade-mogelijkheid heb ik ook nog niet geprogrammeerd.
Volgens mij het ik de rest al redelijk op orde.
Soms krijg ik nog eens een melding dat ik aan het bluffen ben, terwijl ik nu nooit hoger bied dan dat ik heb. Ik denk dat dat komt omdat ik af-en-toe requests mis.
Soms krijg ik ook de melding "no_opponement_specified" terwijl ik helemaal geen trade opzet. Maar daar ga ik mij nog niet in verdiepen voordat de communicatie op orde is.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 12-09 15:38
Ik ben inmiddels zo ver dat ik een speler hebt die de auctions goed afhandelt (niet meer bied dan hij heeft, bijhoudt wie wat krijgt, etc) en ook een trade gaat starten op het moment dat er niks meer te veilen valt. Nu nog zorgen dat hij wat slimmer wordt (hij bied nu continu alles wat hij heeft en koopt alles...).

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Arjan,

Is het misschien een idee om als allereerste bericht altijd een message te duren van het nieuwe type 'open' om de markt te openen. Dat is dan een voorstelronde waarbij de vier spelers zich 'voorstellen' aan de rest dus (de namen zijn vast):
code:
1
2
3
4
5
?market=132&id=3165&type=open&S=Bob&W=Ann&N=Joe&E=Pam
resp. naar de andere spelers:
?market=132&id=3166&type=open&S=Ann&W=Joe&N=Pam&E=Bob
?market=132&id=3167&type=open&S=Joe&W=Pam&N=Bob&E=Ann
?market=132&id=3168&type=open&S=Pam&W=Bob&N=Ann&E=Joe

Het lijkt misschien triviaal maar het maakt voor ons mensen het controleren van het gebeuren in de logfiles veel eenvoudiger.
Met het nieuwe type 'open' blijft alles verder gewoon backwards compatible.

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Onbekend schreef op zondag 07 november 2010 @ 13:36:
Prima. :)


Ik zie dat jouw server steeds kijkt of er al data wordt teruggegeven. Zodra er data beschikbaar is, verwerk je het en ga je weer verder met de volgende actie.
Dit gaat meestal goed. Maar soms ben ik nog halverwege bezig met data schrijven, en lees je dus de rest van de data niet. Dit gaat natuurlijk fout als ik niet mijn volledige bod heb weggeschreven.

Is het niet mogelijk om te wachten totdat de verbinding wordt gesloten? Dan pas weet je zeker dat je alle data hebt. :)
[...]
Ik had een probleem met de QTcpSocket implementatie, ik testte de verbinding met telnet en deze sluit volgens Qt de verbinding nooit af, hetzelfde voor netcat overigens.
Ik ga even kijken of ik een manier hieromheen kan verzinnen.
Onbekend schreef op zondag 07 november 2010 @ 13:36:
[...]

Waarom staat er op regel 11 geen -t? Het geld wordt er toch bij mij afgehaald?
Omdat dit zoiets betekend als, 'dit is hoe de som die bij je weggehaald is samengesteld was', dat er geld werd weggehaald was (en hoeveel), was op dat moment al bekend.
joppybt schreef op zondag 07 november 2010 @ 16:49:
[...]
Overigens zie ik dat in jou logfile ook weer een 'could not connect' staat. Ik heb er zelf ook nog regelmatig last van.
Ik heb hier nog geen verklaring voor, als het nodig is kan ik de server elders onderbrengen, maar dat doe ik liever niet :)

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • remielowik
  • Registratie: Januari 2010
  • Laatst online: 13-09 09:50
En misschien een optie om maximaal 1 auction te doen, dit omdat als ik even iets wil testen ik(met 4 spelers) zo aan de 1300+ requests kom om 1 spel te spelen.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

remielowik schreef op zondag 07 november 2010 @ 20:48:
En misschien een optie om maximaal 1 auction te doen, dit omdat als ik even iets wil testen ik(met 4 spelers) zo aan de 1300+ requests kom om 1 spel te spelen.
Ik denk dat een "stappen"-mogelijkheid met elke keer 1 auction misschien handig is. :)

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
Ok, server is geupdate.

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 :)

Daarnaast leest de server nu totdat er gedisconnect wordt of de timeout tijd verstreken. Let wel op dat chunked transfers NIET ondersteund worden.
Dan ga ik nu de OP aanpassen.

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 13:53
Nu wordt (bij mijn IIS webserver) elke request tot de volledige 5 seconde gewacht. Dat is wel weer het andere uiterste. Zo duurt een potje wel heel erg lang.

(Volgens mij is onderdeel van HTTP/1.1 dat de connectie zo lang mogelijk wordt opgehouden?)

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

Na de &type=collect&money= krijg ik geen &type=information&money= meer. Nu weet ik dus niet of het geld daadwerkelijk eraf is gehaald.... :(
Ik krijg nu dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
2010-11-07 23:15:24 Request: market=204&id=3453&type=auction&goods=C&message=W0N0E0
2010-11-07 23:15:24 Output: ?money=
2010-11-07 23:15:25 Request: market=204&id=3453&type=receive&goods=C
2010-11-07 23:15:25 Output: 
2010-11-07 23:15:25 Request: market=204&id=3453&type=auction&auctioneer=W&goods=D&opponent=W&message=N0E0
2010-11-07 23:15:25 Output: ?money=t
2010-11-07 23:15:25 Request: market=204&id=3453&type=receive&goods=D
2010-11-07 23:15:25 Output: 
2010-11-07 23:15:25 Request: market=204&id=3453&type=collect&money=t&opponent=W
2010-11-07 23:15:25 Output: ?money=t

2010-11-07 23:15:26 Request: market=204&id=3453&type=auction&auctioneer=N&goods=I&opponent=N&message=E0


Terwijl ik vanmiddag nog dit kreeg:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2010-11-07 16:08:28 Request: market=154&id=3253&type=auction&goods=B&message=W0N0E0
2010-11-07 16:08:28 Output: ?money=
2010-11-07 16:08:28 Request: market=154&id=3253&type=receive&goods=B
2010-11-07 16:08:28 Output: 
2010-11-07 16:08:28 Request: market=154&id=3253&type=auction&auctioneer=W&goods=F&opponent=W&message=N0E0
2010-11-07 16:08:28 Output: ?money=t
2010-11-07 16:08:28 Request: market=154&id=3253&type=receive&goods=F
2010-11-07 16:08:28 Output: 
2010-11-07 16:08:28 Request: market=154&id=3253&type=collect&money=t&opponent=W
2010-11-07 16:08:28 Output: ?money=
2010-11-07 16:08:29 Request: market=154&id=3253&type=information&money=t
2010-11-07 16:08:29 Output: 

2010-11-07 16:08:29 Request: market=154&id=3253&type=auction&auctioneer=N&goods=E&opponent=N&message=E0


Ik mis dus regel 11!

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Topicstarter
joppybt schreef op zondag 07 november 2010 @ 23:27:
Nu wordt (bij mijn IIS webserver) elke request tot de volledige 5 seconde gewacht. Dat is wel weer het andere uiterste. Zo duurt een potje wel heel erg lang.

(Volgens mij is onderdeel van HTTP/1.1 dat de connectie zo lang mogelijk wordt opgehouden?)
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
Onbekend schreef op zondag 07 november 2010 @ 23:27:
Na de &type=collect&money= krijg ik geen &type=information&money= meer. Nu weet ik dus niet of het geld daadwerkelijk eraf is gehaald.... :(
Ik krijg nu dit:
[...]
Weet je zeker dat er niets anders veranderd is? Ik heb de game-logica namelijk niet aangepast.

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • hostname
  • Registratie: April 2009
  • Laatst online: 12-09 15:38
Je krijgt die tweede (type=information) alleen als er wat anders vanaf wordt gehaald dan jouw antwoord op de type=collect.
Pagina: 1 2 3 4 Laatste