Zitat:
Zitat von thyriel
Warum willst du den Clients überhaupt mitteilen wie das Deck gemischt wurde ?
lass das am Server. Hebt ein Spieler ab bekommt nur dessen Client die gezogene Karte zugeschickt und fertig.
der Server speichert wer welche Karten hat
|
Im Prinzip richtig. Im Gedanken aber falsch.
Der Client bekommt gar KEINE Karte, er bekommt nur eine Ansicht auf seine Daten.
Die Karten (die Objekt-Instanzen) liegen im Speicher des Servers.
Zitat:
Zitat von thyriel
Das bedeutet das euch die Netzwerkkommunikation vorgegeben werden muss, sonst können die verschiedenen Programme nicht miteinander kommunizieren.
Und ohne diese Angaben, welche Netzwerkanfragen der Client beantworten können muss kann dir niemand weiterhelfen.
|
Dafür gibt es Webservices und Data Contracts.
Hier kommen Standards zum Einsatz. Der Server bietet den "Nächste Karte"-Service an, der Client bedient sich an diesem. Protokoll und Kommunikation muss man dann eben nicht selbst implementieren...
Zitat:
Zitat von thyriel
Btw ist xml als Kommunikation völlig ungeeignet, da kann jeder mitlesen wer wann welche Karten bekommt.
|
... dann ruf mal bitte schnell bei eBay, Amazon, IBM etc. an und erklär diesen dringend, dass deren Webservices alle unsicher sind

XML ist auch hier ein Standard. Zur Verschlüsselung gibt es XML-Encryption.
siehe SOAP oder WS-*
Zitat:
Zitat von thyriel
Hmm ok, jetzt wird das ganze schon etwas klarer
Aber meiner Meinung nach ist die Aufgabe überhaupt nicht lösbar.
Es gibt zwei Möglichkeiten das mischen zu behandeln, aber beide eröffnen die Möglichkeit des Betruges:
Wenn ein Client das mischen berechnet kann er da machen was er will, die anderen haben null Möglichkeit zu überprüfen ob das nach einem Zufallsalgorithmus oder geordnet abgelaufen ist.
Die zweite Möglichkeit wäre das sich alle Clients auf denselben Algorithmus einigen. Dann würde zb der Server den anderen nur die Basiszahl mitteilen aufgrund derer alle dasselbe gemischte Deck berechnen können.
Damit hätte aber jeder Client die Information vorliegen wer wann welche Karte abhebt und könnte das komplette Spiel mit offenen Karten spielen. (Was der Server sowieso immer könnte)
|
Der Server teilt den Clients einen Key vor jedem Spiel mit.
Vielleicht auch nach jedem Zug.
Nach jedem Spiel oder nach jedem Zug einen Wert.
Wert und Key lassen dann die zuletzt gezogene Karte ermitteln.