Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash CS5 Professional

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-12-2011, 20:25   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 10
Spiel einarmiger Bandit...

Hallo Flasher,
ich starte gerade Überlegungen für ein Spiel und stehe vor 2 Herausforderungen die mich gerade zum intensiven Kopfkratzen bringen.

Es soll ein einfaches Automatenspiel sein. Soweit keine grosse Herausforderung aber folgende Probleme bereiten mir Kopfzerbrechen:

1. Jeder Mitspieler hat 3 Versuche, danach soll er eine bestimmte Zeit warten (15-30 min) bis er wieder spielen darf. Frage: Wie löse ich das ohne dass der Spieler mit einem einfachen Reload oder Browserwechsel erkannt wird?



2. Das Spiel läuft über einen Zeitraum von sagen wir mal 20 Tagen. In diesen 20 Tagen sollen genau 10 Gewinne ausgelost werden. Frage: Wie löse ich es, dass über einen definierten Zeitraum genau 10 Leute gewinnen und die Verteilung möglichst gut verteilt ist.

Bin über jeden Denkanstoss dankbar.

THX Micha
Michaniker ist offline   Mit Zitat antworten
Alt 04-12-2011, 22:29   #2 (permalink)
i ate pixels
 
Benutzerbild von pixelslave
 
Registriert seit: Mar 2004
Ort: Augsburg
Beiträge: 528
Den ersten Punkt kannst du entweder mit einer Benutzerregistrierung - am einfachsten wohl Facebook Connect - oder eben mit einer IP Sperrung, das ist aber relativ einfach zu umgehen. Als weitere Sicherheit könntest du ein Flashcookie setzen, die kann nicht jeder entfernen, da relativ wenig über die bekannt ist.

Zum Punkt 2:
Ich denke das ist eine etwas heiklere Angelegenheit, da du natürlich sicherstellen musst, das niemand betrügen kann. Das andere Problem was ich sehe, ist das du deine Slot-Maschine bewusst beeinflussen möchtest, diese aber dem Zufallsprinzip unterliegen sollte und du damit vermutlich gegen irgendwelche Auflagen verstößt.

Evtl. ist eine Slotmaschine nicht der richtige Mechanismus?

Grüße

Martin
pixelslave ist offline   Mit Zitat antworten
Alt 04-12-2011, 23:10   #3 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
2. Das Spiel läuft über einen Zeitraum von sagen wir mal 20 Tagen. In diesen 20 Tagen sollen genau 10 Gewinne ausgelost werden. Frage: Wie löse ich es, dass über einen definierten Zeitraum genau 10 Leute gewinnen und die Verteilung möglichst gut verteilt ist.
dafür muss bei jedem Spiel der Server dem Client mitteilen, was für ein Ergebnis er "gewürfelt" hat; keine Spiellogik auf dem Client, nur Anzeigelogik.
damit es "fair" ist, berechnest du bspw von vornherein, 20 Zeitpunkte, an denen ein Gewinn erspielt wird (bspw gleichmäßiger Abstand +- random von 1-2 Stunden) der Spieler, der als erstes nach diesem Zeitpunkt spielt, dem berechnet dein Server einen Gewinn, allen anderen ein zufälliges Verlierer-Ergebnis
also bspw soll um 12:34:56.123 ein Gewinn ausgeschüttet werden, dann gewinnt der erste Client, der zu oder nach diesem Zeitpunkt ein Ergebnis anfragt.

also:
  • User startet ein Spiel (Hebel runterdrücken)
  • Client startet die Animation
  • Client sendet eine Anfrage an den Server, um ein Ergebnis anzufordern
  • Server schaut nach, was für ein Ergebnis es sein soll (Gewinn, oder Verlust) und berechnet dementsprechend etwas
    und nebenbei speichert er direkt ab, wer gewonnen hat, sowie wann ein Spieler zuletzt gespielt hat || wann er wieder darf
  • Antwort an den Client mit dem Ergebnis
  • der Client beendet die Animation so, dass das Ergebnis rauskommt, das der Server ihm mitgeteilt hat
du kannst auch einfach nur Gewinn || Verlust an den Client schicken, und der berechnet dann ein entsprechendes Ergebnis.

Zitat:
1. Jeder Mitspieler hat 3 Versuche, danach soll er eine bestimmte Zeit warten (15-30 min) bis er wieder spielen darf. Frage: Wie löse ich das ohne dass der Spieler mit einem einfachen Reload oder Browserwechsel erkannt wird?


ich vermute du meinst, dass er nicht tricksen kann, oder?
Das schaffst du nur mit einem Login, nur dann kannst du sicherstellen, dass jeder Login nur eine bestimmte Anzahl an Versuchen hat.
Das schützt dich aber nicht davor, dass sich ein Spieler mehrmals anmeldet.

Wartezeit einhalten: eine Anfrage an den Server, wenn das Spiel gestartet wurde, und danach in flash nachhalten, wie lange der Spieler noch warten muss. Alles weitere wäre imo überflüssig, da es eh umgangen werden kann.

Wenn du merkst, dass der Spieler trickst (Spiel fragt nach einem Ergebnis, obwohl es noch gar kein Spiel zulassen sollte) hast du zwei Möglichkeiten zu reagieren:
1. du sperrst den Spieler. das ist aber völlig kontraproduktiv, da es sich a) um einen Fehler in deinem eigenen Code gehandelt haben könnte und sich b) der Spieler dann einfach einen neuen Account anlegt.
2. du sorgst schlicht dafür: solange der Spieler nicht Spielen durfte, gewinnt er nicht (auch wenn die Anfrage genau zum richtigen Zeitpunkt kam).


lies dir auch mal folgenden Thread durch: Woher kommen Daten (PHP / SWF)
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 05-12-2011, 08:47   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 10
Erstmal Danke für eure Meinungen und Anregungen. Ich werde mir das Ganze dann mal anschauen. Die Verlosungssache sollte machbar sein, die zeitlich Begrenzung wird wohl etwas tricky. Insbesondere die Cookie-Lösung ist Neuland für mich...

lg
Micha
Michaniker ist offline   Mit Zitat antworten
Alt 05-12-2011, 09:28   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
habe früher oft solche dinger gemacht (für messestände u.ä.)
da gab's eine menge X hauptpreise, eine menge Y sachpreise, eine menge Z trostpreise ...
dazu wurde immer eine einstellmöglichkeit für die betreiber erstellt.

- z.b. eine werbemanschaft vor einem einkaufszentrum hat unterschiedlich viele preise dabei. die mengen sind eingebbar (wenn Y alle ist, dann gibts automatisch nur noch Z)
- die anzahl der teilnehmer ist nur zu raten (wieviele und wann diese spielen). blöd wenn dann nur trostpreise vergeben werden.
- und bei z.b. einer 5 tägigen verlosungsdauer ist es blöde, wenn der/die hauptgewinne schon am ersten tag rausgehen. noch blöder, wenn der hauptgewinn nicht ausgespielt wird.

einstellungen z.b.:
- die gewinnprozentwerte und die gewinnmengen sind von den betreuern einstellbar
- für die ausschüttung des hauptpreises kann ein zeitfenster eingestellt werden.

p.s. keine flash-cookies! die können manipuliert werden. beim internet wichtige daten nur auf dem server halten.


glücksspiele sind so eine rechtliche sache und i.d.R. wollen die betreiber adressen haben.
die hauptgewinne werden verlost. so erhält man adressen/emails und rechtlich kann jeder an der verlosung teilnehmen, auch ohne spielen zu müssen!
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (05-12-2011 um 09:33 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS5] Einarmiger Bandit magic_al Flash Einsteiger 5 08-01-2011 17:09
Einarmiger Bandit - Spieleprogrammierung xxkEv ActionScript 2 6 22-12-2009 21:56
[Flash 3] Einarmiger Bandit sunny85 Flash Einsteiger 1 25-08-2009 12:44
Einarmiger Bandit im Flash ToniMontana Flash Einsteiger 1 11-04-2006 16:00
einarmiger Bandit Delay Flash MX 8 07-01-2003 14:28


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele