Koordinatensystem - Probleme mit dem Auslesen (MySQL)

Fällt dann die zweite Abfrage wirklich weg?
Kann ich mir kaum vorstellen..aber wenn ich es manuell durchrechne, scheint es echt zu funktionieren.. ;)

EDIT scheint leider doch nicht zu funktionieren.. sobald ich das ins Script einbaue, findet er alles, aber nicht das Objekt, was er finden soll.. ^^

AAABBBERR jetzt hab ich noch ein Problem:
Ich baue ein Haus mit 3x3 Größe.. Wie teste ich jetzt, ob das in eines der belegten Felder reicht..?

paD
 
Zuletzt bearbeitet:
So, wie es scheint, zäumst Du die Sache falsch auf.

(Mein letzter Eintrag war auch eher darauf ausgerichtet, die Abfrage mit Tricks schneller zu machen)

Wenn es ein Browsergame ist, dann macht es vielleicht Sinn, die SQL-Abfragen soweit zu minimieren, indem Du den Sichtbereich komplett abfragst und in ein mehrdimensionales Array speicherst. Somit hast Du die Infos, ob bauen oder nicht, ohne SQL-Abfrage. Jedesmal abfragen wird sicherlich nicht nötig sein.. oder?

mfg chmee (frohes neues..)
 
Soweit habe ich auch schon gedacht.
Quasi eine Array-Map anzulegen und prüfen ob gebaut werden darf oder nicht.

Mein Problem:
Beim bauen muss später so oder so geprüft werden, ob wirklich gebaut werden darf.
Weil POST oder GET Variablen zu fälschen ist ja kein Problem. Also ich meinte ca. so:

MAP:
<? php array, mit erlaubt oder nicht erzeugen und an JS übergeben ?>
<JS beim verschieben der Häuser aus dem Array auslesen ob bauen darf oder nicht />
<WENN Bauplatz frei, dann öffne bauen.php?x=1&y=2&hausid=123 >

-> Ich könnte nun aber einfach hingehen und die 1/2 fälschen. Also muss das Script bauen.php so oder so prüfen ob 1/2 belegt ist. Und nur noch da bin ich am scheitern mit dem Problem:

-> Wie überprüfe ich, ob ein Haus das auf 1/1 steht und 3/3 groß ist die Koordinaten 1/3 bedeckt. Oder wenn ein Haus auf 3/3 steht und ich auf 2/2 ein Haus mit der Größe 2x2 bauen will, wirklich gebaut / nicht gebaut werden darf..?

Also die Rechnung von oben in sofern umzuwandeln habe ich leider noch nicht geschafft :(

Das Optimieren, wenn es wirklich zu langsam wird, geht wohl am besten mit dem Array, was wir später wohl auch einsetzen werden ;-)

Du kannst dir das Spiel gerne anschauen. Steht in meiner Signatur. Dort wirst du feststellen, dass es sich um Automaten anstatt um Häuser handelt ;)

paD
 
Ja, natürlich. Wenn man davon ausgeht, dass primär geguckt und Eigenschaften der Spielgeräte geändert werden, wird die Spielfeldbelegung aus der SQL-DB lediglich beim Bauen ausgelesen. Ich hab noch nicht reingeschaut, aber es scheint, jeder user hat sein eigenes Casino, somit fällt glücklicherweise auch die Echtzeitüberprüfung mit anderen Online-Usern weg. Man kann sich also auf voll auf einen Userzugriff konzentrieren, und dahingehend optimieren - was kann man beim Client abspeichern und was wird aus der DB benötigt.

mfg chmee
 
Also beim bauen braucht man keine Echtzeitüberprüfung mit den anderen Usern, das stimmt :-)
Das könnte im Normalfall also dahingehend helfen, dass man nicht immer eine Abfrage erstellen muss.

Heißt im Regelfall:
- SELECT automaton FROM user WHERE casino....
-> Array(map) erstellen
-> Beim bauen mit JS prüfen - einfaches ja / nein
Wenn frei ist, bauen.php aufrufen.

bauen.php -> HIER findet dann die einzige wirkliche Überprüfung (mit MySQL) statt, ob der Platz wirklich frei ist, um aus zu schließen, dass der User POST oder GET Variablen gefälscht hat.

Habe ich das insoweit richtig verstanden?

Wäre alles kein Problem.. Nur das mit dem wirklichen überprüfen *G*

paD
 
Zurück