Also die oberste Karte würde ich (aus Prinzip!) gerne kennen.
Der Server sendet nun die aktuell oberste Karte bei jedem Zug mit. Das bedeutet, dass auch die aller erste Karte jedem Mitspieler mitgeteilt wird. Hierdurch lässt sich auch kontrollieren, ob der Gegner einen gültigen Zug gemacht hat oder aussetzt (in beiden Fällen zieht er eine Karte, also brauch man dazwischen nicht unterscheiden). Ich hoffe, dass ich dich damit glücklich machen konnte. :D ;)
Unten ist grün markiert was hinzugekommen ist:
Ich würde mir wünschen, dass der Server bei "status": "error" mitsendet, ob ein er Verstoß gegen Spielregeln vorliegt oder ungültiger Code gesendet wurde.
Diese Anfrage habe ich dir bereits per PM beantwortet. Warum du das nochmal in den Thread reinhaust ist mir schleierhaft. Aber ich beantworte dir dennoch deine Anfrage nochmal hier:
Es ist unnötig einen Fehlercode zu versenden, da du entweder eine richtige oder eine falsche Karte legst. Ich würde dauerhaft den gleichen Fehlercode senden, wodurch das ganze sinnfrei wird. Du solltest deinen Bot natürlich so schreiben, dass er JSON korrekt parsen kann. Tut er das, dann kann er es nicht auf einmal, manchmal, falsch machen. Er wird das dann immer richtig parsen und auch korrektes JSON zurückschicken. Im Endeffekt zielt deine Anfrage nur auf die Zeit der Entwicklung ab (denn nur da macht es Sinn), aber zu einfach möchte ich es auch nicht machen. Ich denke, dass die Entwicklung auch ohne Fehlercode machbar ist.
Nun zum eigentlichen Grund dieses Beitrags:
Ich habe die genannten Bug(s) nun behoben und eine aktualisierte Version ins Git gepusht.
Der Server spuckt in seinem Log nun die korrekten Karten aus. Die Spiellogik war hiervon nie betroffen und lediglich die Ausgabe hat nicht gestimmt. Also hat der Server noch korrekt reagiert.
Wie oben erwähnt, sendet der Server vor jedem Zug auch nun die aktuelle "topCard" mit raus. Dies hat den Vorteil, dass die erste Karte jedem Bot bekannt ist und die Züge der anderen Bots (Gegner) kontrolliert werden können. Ich hoffe, dass das hilft.
Der genannte Fehler von Blackberry (den ich fälschlicherweise bestätigt hatte) war kein Fehler. Der Server hat eine Strafkarte vergeben, weil die Karte die gelegt werden sollte sich nicht mehr auf der Hand des Bots befunden hat. Demnach hat der Bot "beschissen" und wurde dafür bestraft. Ich hatte das ganze händisch gestern Abend getestet und mir ist der gleiche Fehler unterlaufen und habe dem Server eine Karte gesendet, die ich bereits 5 Züge vorher gesendet hatte. Deswegen war ich in der Annahme, dass der Server die Karten nicht richtig prüft. Dies hat sich jetzt aber erledigt. Vielen Dank nochmal an dich, blackberry, dass du mir deinen Code zum testen zur Verfügung gestellt hast!
Die neue Version des Server steht jetzt jedem zum Download zu Verfügung und die Doku werde ich heute auch noch dementsprechend anpassen!
Viele Grüße,
Barny
//EDIT:
Wenn der Wurm einmal drin ist... Es ist eine neue Version von mir hochgeladen worden, in der ich noch einen kleinen Fehler der im Zuge des letzten Fixes entstanden ist ausgebessert habe. Das sollte jetzt aber die letzte Version sein für den Contestmodus. Vielleicht kommt nochmal nen Update für den Netzwerkmodus, der hat aber nix mit dem Contest zu tun und ist daher erstmal zu vernachlässigen.
05.04.2017, 19:00
J0hn.X3r
AW: Official F-H Coding Contest 2017
Bump.. weitere Teilnehmer gerne gesehen :)
07.04.2017, 21:12
wacked
AW: Official F-H Coding Contest 2017
Oh sorry, ich auch. Hatte das irgendwann mal in die shoutbox geschrieben, ist aber untergegangen -- und hab mich dann nicht mehr drum gekümmert
09.04.2017, 14:06
Jut4h.tm
AW: Official F-H Coding Contest 2017
Also ich habe nen Kumpel der grade Coden lernt :-) Das wäre doch ne super Aufgabe nachdem er den klassischen Taschenrechner fertig hat :D
09.04.2017, 21:18
55F
AW: Official F-H Coding Contest 2017
Kannst du uns beiden dann helfen? :D Ich hab allerdings nicht mal den Taschenrechner fertig. :redface:
Ich bin aufjedenfall dran, aber ob ich es rechtzeitig schaffe bleibt fraglich. (Dass ich es schaffe steht außer frage.)
10.04.2017, 06:19
Barny
AW: Official F-H Coding Contest 2017
Einen schönen, guten Morgen allerseits! :)
Zitat:
Zitat von wacked
Oh sorry, ich auch. Hatte das irgendwann mal in die shoutbox geschrieben, ist aber untergegangen -- und hab mich dann nicht mehr drum gekümmert
Ich versteh deine Aussage nicht.^^ Eingetragen bist du bereits. :) Wie du genau reingekommen bist in die Liste weiß ich nicht mehr.^^ Kann sein, dass cih das in der Shoutbox gelesen habe. Die Liste ist auch nur da um grob zu wissen wie viele ca. mitmachen. Ich melde mich bei allen vor der Auswertung auch nochmal.
Oder was meinst du?
Zitat:
Zitat von 55F
Kannst du uns beiden dann helfen? :D Ich hab allerdings nicht mal den Taschenrechner fertig. :redface:
Ich bin aufjedenfall dran, aber ob ich es rechtzeitig schaffe bleibt fraglich. (Dass ich es schaffe steht außer frage.)
Die Serveranwendung wird ja nicht offline genommen wenn der Contest vorbei ist. :) Von daher hast du auch alle Zeit der Welt um dich dem Problem zu widmen. Zum Thema "Helfen" möchte ich aus meinem ersten Post in dem Thread etwas zitieren:
Zitat:
Zitat von Barny
[...]
Anmerkungen:
Bei diesem Contest soll der Spaß und das Lernen im Vordergrund stehen! Demnach ist es auch erlaubt zum Thema Threads zu eröffnen und darüber zu sprechen! Es sollte sich jedoch jeder darüber im Klaren sein, dass der Gewinn nicht geteilt werden kann.
[...]
Ich denke also. dass dir auch geholfen wird, wenn du nen Thread aufmachst und dort deine Fragen stellst. :)
Zitat:
Zitat von Jut4h.tm
Also ich habe nen Kumpel der grade Coden lernt :-) Das wäre doch ne super Aufgabe nachdem er den klassischen Taschenrechner fertig hat :D
Auf jedenfall! :) Schreibst du eigentlich jetzt unabhängig vom Contest auch noch nen Bot? Der würde mich nämlich mal interessieren. :D
Viele Grüße,
Barny
10.04.2017, 14:14
sn0w
AW: Official F-H Coding Contest 2017
Zitat:
Zitat von Barny
Wie du genau reingekommen bist in die Liste weiß ich nicht mehr.^^
Das war ich :D Sry :D
11.04.2017, 06:09
Barny
AW: Official F-H Coding Contest 2017
Zitat:
Zitat von sn0w
Das war ich :D Sry :D
Dann ist das auch geklärt. :D Dachte ich wär voll gewesen oder so :D
11.04.2017, 12:52
zzurc
AW: Official F-H Coding Contest 2017
topCard wird bei mir als topcard übergeben. Ist zwar nur groß/klein-Schreibung aber ich bin halt pingelig :D
Und habe ich es richtig verstanden dass man bei einer 8 Aussetzen muss und eine Karte vom Stapel ziehen?
---------- Post added at 13:52 ---------- Previous post was at 12:52 ----------
Okay ich hab keine Ahnung warum, aber jetzt wirds wieder richtig übergeben :D
11.04.2017, 13:12
Barny
AW: Official F-H Coding Contest 2017
Zitat:
Zitat von cruzz
topCard wird bei mir als topcard übergeben. Ist zwar nur groß/klein-Schreibung aber ich bin halt pingelig :D
Da das bisher niemand angemerkt hat und mir es persönlich nicht aufgefallen ist, werde ich das jetzt nicht mehr ändern. Gebe dir aber Recht. Wäre unfair das jetzt noch zu ändern, da es sich hierbei nicht um einen Fehler handelt und die Anderen damit auch entwickelt haben. Ich übergebe einmal "topcard" und einmal "topCard"... *schäm* Sollte das noch zu ernsten Problemen führen (wüsste jetzt aber nicht warum) dann mal schauen. Das kam meine ich im Zuge der Anpassung die sich blackberry gewünscht hatte.^^
Zitat:
Zitat von cruzz
Und habe ich es richtig verstanden dass man bei einer 8 Aussetzen muss und eine Karte vom Stapel ziehen?
Nein, bei einer 8 muss man nur aussetzen.
-> Spieler 1 legt eine 8 (die Karte darf er legen und wurde vom Server angenommen)
-> Spieler 2 muss aussetzen. Dies erkennt er an dem "skipped" in seiner "turnOf"-Anweisung (Bin mir gerade nicht sicher weil ich unterwegs bin und den Server nicht vor mir hab, aber sollte so stimmen)
-> Spieler 1 ist an der Reihe
Falls dir doch noch was anderes aufgefallen sein sollte, dann schreib mir mal ne PM mit dem Problem und den Teil deines Codes der den Fehler verursacht. Logs wären auch immer hilfreich. Konnten bisher so schon viele Probleme lösen, die aber nicht der Server verursacht hat, was aber nicht sofort ersichtlich war. :)