Bland en 2-dimensional array

Tags:    c#

Hej alle sammen.

Jeg har følgende array:
Fold kodeboks ind/udCSharp kode 


Jeg ønsker at blande array'en så x-koordination ændres, mens y-koordinaterne er de samme ([x,y]).
Jeg har prøvet at søge efter alt mellem himmel og jord på google, men jeg finder kun kode som ikke rigtig virker eller almindelig c kode ;)

Det jeg ønsker er en funktion som kan blande array'en så den kommer til at se fx således ud:
Fold kodeboks ind/udCSharp kode 


Hvis der findes en anden måde at lave array'en på, som gør det nemmere, så er forslag altid velkommen :) Det skal dog nævnes at y-koordinaten senere vil være større end blot 2 som vist i mit eksempel ;)



Indlæg senest redigeret d. 27.04.2009 15:36 af Bruger #8254
8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Så tror jeg det er nemmest at læse om objekt-orienteret programmering og så lave hvert spørgsmål til en class.

Her er et forslag til hvordan du kan gøre nogle af tingene med List, som jeg var gået i gang med før jeg så dit seneste indlæg. Som sagt er jeg ikke helt inde i C#. Så forhåbentligt kan en anden lede dig videre.

Det kan måske hjælpe lidt, men en som bruger C# kan nok hjælpe dig videre:

Fold kodeboks ind/udKode 


Det skal lige siges at dette er i et "WindowsForms" projekt og derfor bruger jeg MessageBox..



De mere avancerede datastrukturer har vist metoder til dette "shuffle" eller sådan noget.

I stedet for at blande den kan du eventuelt udpege en tilfældig? Generer et tilfældigt tal mellem 0 og størrelsen af arrayen minus 1. Den kan du så bruge som din "x-værdi".

Det er min forståelse at man normalt ikke blander en array, selv om det er muligt, men kan godt tage fejl på det punkt.



De mere avancerede datastrukturer har vist metoder til dette "shuffle" eller sådan noget.

I stedet for at blande den kan du eventuelt udpege en tilfældig? Generer et tilfældigt tal mellem 0 og størrelsen af arrayen minus 1. Den kan du så bruge som din "x-værdi".

Det er min forståelse at man normalt ikke blander en array, selv om det er muligt, men kan godt tage fejl på det punkt.


Hey Søren.

Ja, man kan godt bare finde et tilfældigt nummer for x-koordinaten - hvilket også er det jeg har gjort indtil nu.
Problemet er at jeg skal have mine spørgsmål til at komme tilfældigt og da jeg ikke kan finde ud af at slette fra en array i C#, så er jeg nødt til bare at blande array'en og starte fra 0 til slut ;)

Men hvis du kender en anden måde at gemme data'erne på som kan blandes eller ved hvordan man sletter fra en array, så skriv endelig :D



Man kan ikke "slette" fra en array. Du kan selvfølgelig sætte en værdi til 0 eller "", men du kan som sådan ikke slette den.

Kan ikke give dig meget information om hvordan du skal implementere din løsning siden jeg ikke er helt inde i C#.

Men lidt googling og jeg kom frem til at et godt valg ville være datastrukturen List. Den kan også ændre størrelse.

Her er dog en lidt information som burde hjælpe, blot med heltal i stedet for tekststreng, men det kan du selv ændre :)

Fold kodeboks ind/udKode 


Det er fra: http://msdn.microsoft.com/en-us/library/ms379570.aspx#datastructures20_1_topic5

du kan klikke på linket til: The List – a Homogeneous, Self-Redimensioning Array, eller rulle ned. Du kan også finde information om funktioner du kan bruge med Lists. Som "Add", "Next", og "Shuffle" som blander listen.

Håber det hjælper.



Indlæg senest redigeret d. 27.04.2009 16:46 af Bruger #14645
Tak for svaret, men som jeg også skrev i slutningen af mit tidligere indlæg, så er det vigtigt at jeg har mulighed for at have et over-element som så indeholder nogle under information - derfor virker det eksempel du kom med ikke :(



Lav en liste i en liste?

Eller en Dictionary i en liste. Du kan så vidt jeg ved sagtens have dem inden i hinanden.



Indlæg senest redigeret d. 27.04.2009 17:59 af Bruger #14645
Lav en liste i en liste?

Eller en Dictionary i en liste. Du kan så vidt jeg ved sagtens have dem inden i hinanden.


Jeg ved ikke hvad det hedder, det er derfor jeg har lavet dette indlæg ;)

Det jeg ønsker er følgende:
En liste med en masse spørgsmål, svar muligheder til spørgsmålet samt en variabel som fortæller hvilket et af dem som er rigtigt.

Disse spørgsmål skal enten blandes eller også skal det være muligt at slette allerede viste svar ;)

Derfor, kunne du evt. give mig nogle kode eksempler på hvordan man gør dette?



Indlæg senest redigeret d. 27.04.2009 18:24 af Bruger #8254
Du er bare den bedste, Søren :D Nu virker det lige som det skal :)

Mange gange tak for din gode hjælp :) UP til dig ;)



t