PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Felder absuchen



Leange
21.11.2016, 23:27
Hi

Folgendes Feld:




0

1

2

3

4



0

O

O
O
O
O


1

O
O
O
x
O



2

O
x
O
O
O


3

O
O
P
O
O


4

O
O
O
O
O



"P" ist meine Position und ich möchte in der angegeben Reihenfolge nach dem nächstgelegenem "x" suchen.
Also erst alle roten Felder prüfen, dann die Grünen usw.
"P" kann natürlich auch woanders sein.

Ist vielleicht einfach schon zu spät aber ich bekomms nich gebügelt (nicht ohne gefühlte 20k Zeilen Code ^^) und find auch keinen simplen Algo.

Jemand ne Idee?

MfG Leange

P.S. Tolle Formatierung oder? ^^ Hilft mir vielleicht schon wenn ichs nen bissel anstarre. xD

Cystasy
21.11.2016, 23:36
Spontan hätte ich da ein Aspekt meiner Canvas Tileset Engine genommen~

Rote O's :



int WIDTH = 5;
int rechts = P+1;
int links = P-1;
int unten = P+WIDTH;
int oben = P-WIDTH;


So hättest du schonmal die 4 Positionen der Roten O's.. das könntest du nun ähnlich mit dem Rest machen.
Du müsstets da nur Checks einbauen die kontrollieren ob du "drüber" bist (also über width und height der Tabelle / Box) damit
du nicht außerhalb des ganzen kommst.

Zumindestens würde ichs so machen & habs bei meiner Tile Engine (Spielfigur bewegen, Kollisionsdetection & Events auslösen) ähnlich gelöst gehabt^^

Wäre das ganze z.b in einem Canvas / 3D Raum wo du ne Scanfunktion (Radius+Gradanzahl=Punkt um die Spielfigur die gescannt wird) besitzt, könntest du einfach mit sin&cos entsprechend das ganze lösen.. aber da dies nich der Fall ist, ist das wohl die einfachste Lösung.

Leange
22.11.2016, 02:13
https://www.hackerrank.com/showgame/6138372

Close enough! XD

Cystasy
22.11.2016, 11:34
Gibts da ne Möglichkeit den Sourcecode von andern Submissions anschaun zu können?
Oder ist das bewusst so gehalten das niemand schummeln kann indem er fremden Source anschaut?
Wollte mir dein Source anschaun, ging aber nicht ^-^

Leange
22.11.2016, 13:06
Nope is mit Absicht so denk ich ...

https://www.hackerrank.com/showgame/6140582

Wird besser ^^

Immernoch kein perfekter Score aber ich glaub das spar ich mir.

Bin einfach jeden Wert abgegangen und hab dann wenn dort x ist die Anzahl von Schritten bis zum Bot berechnet.
Den kürzesten Weg dann gegangen.
Problem ist natürlich dass es in manchen Fällen mehrere Felder mit gleich kurzer Distanz gibt.



O
O
O
x


x
B
x
O



Hier wäre es natürlich insgesamt kürzer erst Links zu gehen und dann Rechts.
Aber das wird mir wie gesagt dann zu kompliziert. xD

MfG Leange