Forumdelen sponsras av

Intersection Position på 2D Grid - C#

Trädvy Permalänk
Medlem
Registrerad
Aug 2015

Intersection Position på 2D Grid - C#

Hej, tänk en 2D Grid med X och Y positioner.

Har skapat en Metod att hantera sista position efter man utför olika kommandon "uppåt, ner, vänster, höger" .

Försöker skapa method och hantera intersection position ( kontaktpunkten) när man utför olika kommandon..
Bild hjälp.

All hjälp är uppskattad!

Har utfört andra methoden på whiteboard. Blir lite som..
For second method . I'm thinking (1) Re-use first method and store as variable (2) With Multi-array or Hashtable use the variable to store (key = x and value = y.) to find out which position causes intersection .

Här är koden, första methoden (FinalPosition är klarskriven, Behöver lite hjälp med Insection metoden) .
Koden finns också tillgänglig på : https://dotnetfiddle.net/XTwzkJ

using System;
using System.Text.RegularExpressions;
using System.Collections;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Sista positionen" + FinalPosition());
Console.WriteLine("Kontaktpunkten" + Intersection());
Console.ReadLine();
}

static Tuple<int, int> FinalPosition()
{
string input = "^^^^<<vv>>>>";
int x = 0;
int y = 0;

string[] directions = Regex.Split(input, string.Empty);
foreach (string direction in directions)
{
switch (direction)
{
case "v":
y--;
break;
case "^":
y++;
break;
case "<":
x--;
break;
case ">":
x++;
break;
}
}

return new Tuple<int, int>(x, y);
}

static int[] Intersection()
{
int[] x = new int[] { 3, 4, 5 };

var move = CalculateXandY();
int[] array = move.ToArray();

( Inte färdig... )
}

}
}

Trädvy Permalänk
Medlem
Plats
Skåneland
Registrerad
Mar 2005

@stephy:

Jag fattar inte riktigt vad du är ute efter men jag hade nog använt Point() istället.
Sedan hade jag sparat alla intressanta värden i List<Point>()

Då kan du använda List(T).Contains(new Point(x,y)) för att se om någon av de intressanta värdena finns med i listan och reagera utifrån det.

https://msdn.microsoft.com/en-us/library/bhkz42b3(v=vs.110).a...

"Om man arbetar tillräckligt länge med att förbättra ett föremål går det sönder. "

Hjälp oss göra världen lite snällare! www.upphittat.nu

Trädvy Permalänk
Medlem
Registrerad
Aug 2015

@ZecretW: Jo, ska kolla på det imorgon tror jag. Sitta fastklistrad vid en uppgift är aldrig bra.

Hoppas du förstår vad jag försöker åstadkomma .

Och ja, List < Point> låter bättre. Dåligt med info om Points på Youtube.. men men.

Tar tag i det imorgon.

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Skrivet av stephy:

Hej, tänk en 2D Grid med X och Y positioner.

Har skapat en Metod att hantera sista position efter man utför olika kommandon "uppåt, ner, vänster, höger" .

Försöker skapa method och hantera intersection position ( kontaktpunkten) när man utför olika kommandon..
Bild hjälp.
https://snag.gy/Qicv39.jpg

All hjälp är uppskattad!

Har utfört andra methoden på whiteboard. Blir lite som..
For second method . I'm thinking (1) Re-use first method and store as variable (2) With Multi-array or Hashtable use the variable to store (key = x and value = y.) to find out which position causes intersection .

Här är koden, första methoden (FinalPosition är klarskriven, Behöver lite hjälp med Insection metoden) .
Koden finns också tillgänglig på : https://dotnetfiddle.net/XTwzkJ

FinalPosition är lätt att förstå, det är den sista koordinaten som objektet står på efter att ha förflyttat sig en eller flera rörelser i fyra leder.
Vad är "intersection position"? Matematiskt så betyder intersection det som är gemensamt mellan A och B. Exempelvis två listor som har identiska objekt eller två linjer som korsar varandra.

Om jag skulle få gissa vad du är ute efter så vill du ha "Första punkten där objektet en gång tidigare har varit".
Exempel baserat på att man börjar vid origo (0,0)

Fyra norrut = Ingen intersection point
Ett norrut, ett väster, ett syd, ett öster = Intersection point är (0,0)
Fyra norrut, ett väster, ett söder, ett öster = Intersection point är (0,3)

Finns kanske någon smart matematisk formel för det men det första steget är väl att "brute force":a det.

Spara varje position till ett Point-objekt. Lägg in objekten i en Lista. Traversera listan och hitta första dubbletten så får du den första "Intersection point".

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Registrerad
Aug 2015

Jag bad admin ta bort denna tråd . Om det är okej med er två som skrivit här att dem raderar tråden skriv gärna det här. Så kan vårt arbetslag slippa ligga sömnlös på nätterna.

Tack i förhand, @leedow och @zecretw

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Skåneland
Registrerad
Mar 2005
Skrivet av stephy:

Jag bad admin ta bort denna tråd . Om det är okej med er två som skrivit här att dem raderar tråden skriv gärna det här. Så kan vårt arbetslag slippa ligga sömnlös på nätterna.

Tack i förhand, @leedow och @zecretw

Skickades från m.sweclockers.com

För mig är det OK att radera tråden men samtidigt lite synd.

Information är bra att den finns och det är kanske någon annan i framtiden som också vill göra ett snake spel och har fastnat på samma ställe.

Varför skulle ni ligga sömnlösa på nätterna för att ni frågat om saker ni vill lära er?

"Om man arbetar tillräckligt länge med att förbättra ett föremål går det sönder. "

Hjälp oss göra världen lite snällare! www.upphittat.nu