Hejsan alla glada Pellesoftare.Är detta foolproof?
Kanske inte helt rätt att placera under C#, men hittade ingen annan lämplig sektion att placera under...
Sitter med ett sten, sax, påse spel (mutliplayer) och jag vill försäkra mig om att jag hittat en 95% säker lösning för en viss funktion.
ASP.Net, C# & Javascript används.
Alla uppdateringar/kontroller etc sker via XMLHttpRequest asynkront.
När en spelare väljer ett drag uppdateras den spelarens objekt i ett spelobjekt som hänger med i Application.
När båda spelarna har valt något utförs en funktion som kontrollerar vem som vunnit, i denna funktion sätts en property (P1SeenScore & P2SeenScore) i spelarens objekt som indikerar att han sett poängen.
Problem kan uppstå när drag ska nollställas.
Spelarnas drag ska ju nollställas när de båda fått tillbaka resultat om uträkningen, men båda spelarna måste också vara föräkrade om att motståndaren har fått resultatet skickat till sig innan nollställning.
Kan följande fungera?
Spelare 1 kommer in.
Han ser att båda spelarna inte har sett poängen ännu.
Han ser att någon av spelarnas drag är mer än 0. ( > 0 = Ett val är gjort)
Funktionen returnerar FAIL (Spelaren kommer att blir inskickad till samma funktion igen)
Spelare 2 kommer in.
Han ser att båda spelarna har sett poängen. (P1 har ju varit här redan)
Sätter P1SeenScore till P2SeenScore till false
Sätter även P1's & P2's drag till 0
Uppdaterar Application
Returnerar SUCCESS (Spelaren kommer inte att bli skickad tillbaka in hit)
Spelare 1 kommer in igen eftersom han fick FAIL
Han ser att båda spelarna inte har sett poängen ännu. (P2 satte ju dessa till false)
Han ser att båda spelarnas drag är 0 (P2 satte detta)
Sätter P1SeenScore & P2SeenScore till false
Uppdaterar Aplication
Returnerar SUCCESS
När jag tänker igenom det känns det bra, men vill bara försäkra mig om att det är en bra lösning.
Tack på förhand.
// Mikael