php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-06-2010, 09:54
Tamelon
 Registrierter Benutzer
Links : Onlinestatus : Tamelon ist offline
Registriert seit: Jun 2010
Beiträge: 2
Tamelon befindet sich auf einem aufstrebenden Ast
Question suche ansatz zu "finde einen leeren planeten für einen neuen spieler"

Hallo,

ja ich progge an nem browsergame rum, ja es ist das 1635423ste erfolglose game was es gibt und ja, ich progge das um php besser zu verstehen weil ich in unserer firma die homepage betreuen soll.

da mir das proggen aber so ein spass macht würde ich zumindest das game einmal funktionsfertig hinkriegen, keine grafik, kein sound, nur tabellen und text.

un zu meinem problem:

ich habe eine datenbank die galaxien heisst da stehen leere unbewohnte sonnensysteme drinnen. zu beginn erst mal ein 20x20 universum.

was ich nun suche ist eine idee, ich denke da seit 2 tagen drüber nach komme aber auf keinen ansatz, wie lokalisiere ich in dieser datenbank ein unbewohntes sonnensystem das sich möglichst dich am zentrum befindet?

zusatzinfo: es gibt 2 datenbanken, eine galaxies und eine planeten. in galaxies sind quasi nur die sonnensysteme definiert mit position x,y welche sonne sie haben und wieviele planeten das sonnensystem hat. diese informationen reichen um eine weltraumkarte anzuzeigen (diese funktoniert). in planeten stehen dann die besiedelten planeten drinnen, also die x,y position, wer ihn besitzt, welche gebäude, rohstoffe etc. werte die also in galaxies alle null wären. da man davon ausgehen kann das bei weitem nicht alle planeten besiedelt (bzw besiedelbar) sind, halte ich das für den geschicktesten aufbau.

grundproblem: wie finde ich die letzte besiedelte welt? einfach den planeten-datenbankeintrag mit der letzten erstellung suchen funktioniert nicht, es könnte ja ein spieler einen anderen planeten ganz aussen am rand besiedelt haben (mit kolonieschiff) und dann findet er garkein planet mehr.

folgende ansätze führten ins leere:
einfach links oben anfangen x+1, wenn x = 10, y+1 x=1 und wieder eine zeile durchsuchen. nein, ich möchte gerne vom zentrum aus anfangen, sonst haben die ersten spieler nur eine richtung zum ausbreiten und das finde ich doof. ausserdem dauert das bei (utopischen) 1000 betreits besiedelten welten viel zu lange.

spiralförmig von innen nach aussen gehen scheitert ebenfalls an der zeit.
die position des letzten automatisch zugewiesenen heimatplaneten separat speichern könnte helfen... und dann von da aus suchen aber auch das ist nicht so einfach wie es scheint.

mein einziger ansatz wäre: ich muss den planeten in der galaxie datenbank irgendwie eine reihenfolge beibringen. evtl ein weiteres feld das den abstand zum zentrum angibt?

ich weis nimmer weiter... vieleicht hat hier jemand ne idee?
Mit Zitat antworten
  #2 (permalink)  
Alt 09-06-2010, 10:23
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

immer, wenn du von Galaxie sprichst, meinst du ein Planetensystem, oder? Das sind zwei verschiedene Sachen.

Wenn ich es richtig verstanden habe, stehen bei dir nur die besiedelten Planeten in der DB. Warum eigentlich? Wenn gleich alle drin stünden, müsstest du nicht raten, welcher noch frei ist.

Den ganzen Hintergrund mit der Besiedelung und was da passiert habe ich aber noch nicht durchschaut. Wenn du weitere Tipps möchtest, solltest du das irgendwie nachvollziehbarer beschreiben.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (09-06-2010 um 10:34 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 09-06-2010, 12:59
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Kannst du dein DB-Schema mal in der Form Tabelle(Spalte1, Spalte2, ...) angeben (für alle relevanten Tabellen)? Ich verstehe deine textuelle Erklärung nämlich nicht und bin vermutlich nicht der einzige, dem das so geht.

Ich verstehe es bisher so:
galaxie(id, sonne, anzahl_planeten, x, y, ...)
planet(galaxie_id, name, besitzer, x, y, ...)

Die Tabelle galaxie sollte besser sonnensystem heißen; hat Amica bereits erwähnt.
In der Tabelle planet hast du nur besiedelte Planeten drin? Wo hast du denn dann die unbesiedelten gespeichert? Amica erwähnte ebenfalls, dass beide Planetenmengen, besiedelte und unbesiedelte, besser in einer gemeinsamen Tabelle gespeichert werden sollten. Wäre dies bspw. die Tabelle planet, könntest du am Wert in der Spalte besitzer erkennen, ob ein Planet besiedelt ist. Wert Null heißt kein Besitzer, also unbesiedelt.

Das Problem, die nächste unbesiedelte Galaxie zu finden, ist dann ganz einfach lösbar. Du joinst galaxie und planet, filterst die Einträge heraus, die keinen Besitzer haben, sortierst aufsteigend nach der Distanz zum Ausgangspunkt und wählst das erste Element aus der Ergebnisliste. Das ist die nähste Galaxie mit einem unbesiedelten Planeten.
Die Distanz zum Ausgangspunkt ermittelst du mit
dist = sqrt(|xA - xG| + |yA - yG|)
wobei (xA,yA) die Koordinaten des Ausgangspunktes
und (xG,yG) die Koordinaten der Galaxie sind. Eventuell solltest du stattdessen die Koordinaten des Planeten benutzen – geht aus deiner Beschreibung nicht eindeutig hervor.
Mit Zitat antworten
  #4 (permalink)  
Alt 09-06-2010, 13:12
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Die Tabelle galaxie sollte besser sonnensystem heißen
Noch besser: planetensystem oder planetary_system; „Sonnensystem“ ist nur der Eigenname unseres Planetensystems, so wie „Milchstraße“ der Name unserer Galaxie ist.

Ja, sorry, aber ich bin Harald-Lesch-Fan und kann solche Sachen nicht so falsch stehen lassen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 09-06-2010, 16:13
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Ja, sorry, aber ich bin Harald-Lesch-Fan und kann solche Sachen nicht so falsch stehen lassen.


EDIT

Damit ich auch wieder a bissl onTopic schreib:
Wie meine Vorredner auch schon sagten, sollten auch die unbesiedelten Planeten bereits in die Tabelle, schon allein eigentlich wegen der Tatsache, dass sie ja da sind und nicht erst mit einer Besiedelung entstehen.

Weiterhin würde ich eine weitere Tabelle ins Spiel bringen - nämlich die Sterne selbst, an die du dann die Planeten bindest.

Nochmal EDIT
Vergiss die weitere Tabelle - ich hab mal wieder was falsch verstanden weil du ja eigentlich gar keine Galaxien hast, sondern eben nur Planetensysteme eine Anzahl von Planetensystemen.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

Geändert von Quetschi (09-06-2010 um 17:00 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 09-06-2010, 16:27
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Sry. Doppelpost.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #7 (permalink)  
Alt 12-06-2010, 14:29
Tamelon
 Registrierter Benutzer
Links : Onlinestatus : Tamelon ist offline
Registriert seit: Jun 2010
Beiträge: 2
Tamelon befindet sich auf einem aufstrebenden Ast
Standard

ich danke erstmal an alle antworten.

ich habs jetzt so gelöst:

alle besiedelbaren planeten sind in einer datenbank. die galaxien datenbank fliegt raus. die informationen sind jetzt bei den planeten mit drinnen.

dazu ein feld das den abstand zum zentrum der galaxie beschreibt. der gute phytagoras...

nun mach ich einfach ne abfrage in etwa so:

SELECT * FROM planets WHERE owner=0 ORDER BY distance LIMIT 0,10

so bekomme ich die 10 leeren dem zentrum an dichtesten planeten und muss dann nurnoch einen aussuchen.


danke für die ideen

Geändert von Tamelon (12-06-2010 um 14:33 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 12-06-2010, 21:00
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Tamelon Beitrag anzeigen
dazu ein feld das den abstand zum zentrum der galaxie beschreibt.
Du meinst sicher den Abstand zum Zentralgestirn des Planetensystems.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wir suchen einen "Hobby" Programmierer Funkübung Projekthilfe 0 05-05-2009 22:04
Wie kann es hier noch einen "is null" error geben? lennart HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 10-01-2009 18:34
Wie kann ich einen String "12-45-78" zwelegen so das ich "45" erhalte? HansDerLange HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 31-07-2008 20:50
Wie kann ich einen String wie "12.01.1987" zerlegen? HansDerLange PHP Developer Forum 1 12-01-2008 21:35
count lifert für leeren array "1" ?! syco23 PHP Developer Forum 3 05-07-2003 23:17

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:33 Uhr.