C++ Position auf Objekt überprüfen

Hallo Leute,

ich hab ein Problem. Ich programmiere im Moment Schiffe Versenken mit dem Borland C++ Builder. Ich hab also 10*10 Felder gemacht (mit Shapes) und die Schiffe. Die Schiffe werden per Drag&Drop auf die Shapes gelegt. Nun will ich wissen, auf welchem Shape ein Schiff liegt, um ein Array mit 1 und 0 zu füllen (1 für schiff da, 2 für schiff nich da). Hat jemand ne Idee, wie ich das machen kann? Ich hab an einen Befehl geacht, der an Position X,Y nachschaut, ob und welches Objekt dort liegt. Ich bin am verzweifeln =(

Vielen Dank schonmal. =)

MFG Florian

Hi Florian,
bevor ich dir vielleicht helfen kann hätte ich noch ein paar Fragen an dich:
Leider hab ich das noch nicht ganz verstanden, was du wie bisher realisiert hast:

  1. Willst du das in einem Windows-Fenster betreiben?

  2. Angenommen ja, zeichnest du dann in dieses Fenster 10*10 Kästchen ein, die die möglichen Positionen wiederspiegeln?

  3. Nun soll der Spieler ein Schiff (vom Rand?) in das Feld ziehen richtig?

Jetzt willst du abfragen, wo das Schiff gelandet ist, damit du dein Array aktualisieren kannst?

Dann hätte ich nochmal Fragen dazu:

Soll die Methode, die das dann auf das Array überträgt dann auch überprüfen, ob die Position des Schiffes gültig ist - z.B nicht mitten auf einer Linie?

Was hällst du denn davon, wenn das Schiff, sobald es sich über dem Spielfeld befindet, am Raster ausgerichtet wird, d.h. wenn man die Maus bewegt, bleibt das Schiff so lange auf seiner alten Position, bis die Differenz so groß ist, dass es in das nächste Rasterfeld passt?

anschließend kannst du doch einer Methode einfach die linke obere Eckenposition des Schiffes übergeben und entsprechend des Typs des Schiffs (1er, 2er, 3er, 4er) und seiner Ausrichtung (vertikal, horizontal) belegt die dann das Array

Wenn du noch Probleme hast - frag ruhig.
Wäre auch nicht schlecht, wenn du die wichtigsten Passagen aus deinem Quelltext vielleicht mal postest, dann kann man genauer reagieren.

Viele Grüße

Andreas