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?
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?
Kommentar