0 Daumen
918 Aufrufe

Erstmal vorweg ich habe folgende Angaben:

game_x: 14789
game_y: 2547
modxpos: 5
modypos: 51
xpos: 50
ypos: 510
xsec: 14793.973958333
ysec: 2597.734375

berechnet wird das ganze so:

modxpos = game_x % 192
xpos = modxpos * 10
modypos = game_y % 192
ypos = modypos * 10

xsec = (game_x - ((xpos / 10)) / 192) + modxpos
ysec = (game_y - ((ypos / 10)) / 192) + modypos

nun muss ich mit diesen zahlen irgendwie auf 27092 kommen (das weiß ich von einem tool welches diese formel kennt) kenne die formel dazu aber nicht, sodass es auch mit anderen zahlen funktioniert .. kann mir da vielleicht jemand helfen wie ich nun auf eine formel komme? wie würde man da überhaupt anfangen??

danke im voraus

Nachtrag:

ich sollte vielleicht noch dazu sagen, dass alle werte ausser x_game und y_game berechnet werden anhand von x_game und y_game (desshalb hab ich die formeln zu den anderen werten mit angegeben)

Ich gebe euch mal einige game_x, game_y und region wertepaare damit ihr die formeln die ihr aufstellt überprüfen könnt:

game_x = 14714; game_y = 2593; region = 27091

game_x = 14789; game_y = 2547; region = 27092

game_x = 20668; game_y = 6336; region = 32242

game_x = 20402; game_y = 6334; region = 31985

game_x = 15679; game_y = 3285; region = 28120

Avatar von

Weißt du denn was die 27092 bedeuten sollen? Der Rest ist ja klar aber was diese Zahl aussagen soll ist mir nicht ganz klar. Sicher kann man einfacher auf eine Formel kommen, wenn man die Bedeutung kennt.

Ein wenig wirr das Ganze...

2*(14789+5)-2547+51 = 27092
die formel passt leider nich ganz, für die werte game_x = 14789 und game_y = 2547 passt es zwar, aber wenn ich die werte game_x = 14714 und game_y = 2593 nehme müsste mit deiner formel 27091 rauskommen damit sie allgemeingültig ist, es kommt aber 27222 raus ..

wie bist du denn auf "-2547" gekommen?
Ich habe ein wenig mit den Ausgangsdaten herumgespielt.
@Der_Mathecoach: das ist etwas kompliziert zu erklären.. in einem spiel gibt es einen befehl um sich auf der karte zu "teleportieren" der wird wie folgt aufgerufen: /warp region xpos 1000 ypos

region wäre in diesem fall 27091 bzw. 27092

game_x und game_y sind die x und y koordinaten die einem im spiel angezeigt werden, mit denen kann der befehl aber nichts anfangen die müssen vorher umgewandelt werden (siehe formel oben) warum das so is weiß ich nich haben die programmierer mal so festgelegt denke ich ..

ich weiß sonst zur region auch nur dass man damit noch weitere werte berechnen kann die dann den bereich der region auf der karte festlegen:

region % 256 = x region

region / 256 = y region

@Anonym: und wie genau bist du nun auf -2547 gekommen? wenn du den wert auch mit den ausgangswerten berechnet hast könnte die gleichung schon funktionieren


//edit: ich sollte vielleicht noch dazu sagen, dass alle werte ausser x_game und y_game berechnet werden anhand von x_game und y_game (desshalb hab ich die formeln zu den anderen werten mit angegeben)
@Anonym: game_y: 2547
oh, das hab ich garnich gesehen .... jah aber selbst wenn ich nun statt -2547 -game_y nehme passt die formel noch nicht für andere werte sondern nur für game_x = 14789 game_y = 2547
Ich gebe euch mal einige game_x, game_y und region wertepaare damit ihr die formeln die ihr aufstellt überprüfen könnt:

game_x = 14714; game_y = 2593; region = 27091

game_x = 14789; game_y = 2547; region = 27092

game_x = 20668; game_y = 6336; region = 32242

game_x = 20402; game_y = 6334; region = 31985

game_x = 15679; game_y = 3285; region = 28120
2*(14789+5)-2547+51 = 27092

Wäre wegen

game_x: 14789
game_y: 2547
modxpos: 5
modypos: 51

2(game_x + modxpos) - game_y + modypos

D.h. du müsstest vermutlich modxpos und modypos auch noch überall angeben.

Offenbar musst du diese Zahlen berechnen. Rechnest du jetzt bei % und /  "modulo 192" oder "modulo 256" und weshalb?
ja so siehts bei mir ja auch aus, wie gesagt das funktioniert nur für game_x = 14789; game_y = 2547; wenn ich mit dieser formel von dir die region für game_x = 14714; game_y = 2593; berechnen will kommt 27176 raus und nicht 27091 so wie es sein sollte ..
bei % 192 rechne ich modulo 192 und bei % 256 rechne ich modulo 256 und bei / 256 rechne ich geteilt durch 256
das problem is immer noch nich gelöst, falls noch jemand eine idee für nen lösungsansatz hat .....
Ohne zusätzliche Informationen nur anhand einiger Daten auf einen irgendwie gearteten funktionalen Zusammenhang zu schließen, wird kaum möglich sein. Es ist sicher möglich, Funktionen zu finden, die alle gegebenen Bedingungen erfüllen, aber darüberhinaus völlig Unterschiedliches tun. Man kann also nur hoffen, dass die Programmierer einen einfachen Zusammenhang realisiert haben, den man erraten kann.

1 Antwort

0 Daumen
falls es jemanden interessiert, habe mit bitweiser links, bzw. rechts verschiebung bitweisem oder und bitweisem und rumgespielt und bin dabei auf die folgende allgemeingültige formel gestoßen (eigentlich eher per zufall): region = (ysec << 8) | xsec

also ysec bitweise um 8 nach links verschoben und das ergebnis davon bitweise oderverknüpft mit xsec
Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
1 Antwort
0 Daumen
1 Antwort
0 Daumen
1 Antwort

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community