Laden...

7 Arraylist's vergleichen

Erstellt von KS-Kommando vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.522 Views
K
KS-Kommando Themenstarter:in
26 Beiträge seit 2009
vor 14 Jahren
7 Arraylist's vergleichen

Hi erstmal,

ich habe folgendes problem, ich möchte wie der titel schon sagt 7 arraylisten vergleichen, sie sind alle gleich lang.

Hier ein Beispiel

AL0   AL1   AL2   AL3   AL4   AL5   AL6
1     2     2     2     2     1     1
1     2     1     2     1     2     1
2     1     1     2     1     1     1
0     2     0     1     2     1     2

ich muss herausfinden, dass in der ersten zeile 4x die 2 nacheinander kommt, aber wie löse ich das am besten?
Bitte um Hilfe/Anregung, denn ich habe keinen plan wie ich das umsetzen soll

lg KSK

Gelöschter Account
vor 14 Jahren

eine simple for-schleife die durch alle arraylisten gleichzeitig geht und ein temporäres dictionary, das den wert aufnimmt und wenn der wert schon im dictionary drinn ist, den value (ein count integer) um eins erhöht. dann musst du am ende nur noch schauen, welcher wert am häufigsten (größten count) im dictionary vorhanden ist.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo KS-Kommando,

ich muss herausfinden, dass in der ersten zeile 4x die 2 nacheinander kommt, aber wie löse ich das am besten?

meinst du das wirklich so, wie es da steht? Also nur in der ersten Zeile nachschauen, ob es der Fall ist, dass vier Zweien hintereinander stehen? Das wäre ja nun trivial. Oder willst du doch was anderes, zum Beispiel was JAck30lena vermutet hat (also die längste Kette von gleichen Elementen in irgendeiner Zeile)?

BTW: ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic.

herbivore

K
KS-Kommando Themenstarter:in
26 Beiträge seit 2009
vor 14 Jahren

meinst du das wirklich so, wie es da steht?

kurz und knapp es geht um das Spiel 4 Gewinnt, also direkt grade um die sieg bedingung

Gelöschter Account
vor 14 Jahren

dann eben 2 verschachtelte for-schleifen, wo du durch jedes element gehst und in lle richtungen prüfst, ob der wert die nächsten 3 felder in der entsprechenden richtung den selben wert haben, wie das ausgangsfeld.

hierbei kannst du noch optimieren, indem du auf abstände zum feldrand prüfst.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo KS-Kommando,

bei vier gewinnt, musst du ja nur immer horizontal, vertikal und diagonal ausgehend von der Position des letzten geworfenen Steins die angrenzenden Felder auf die gleiche Steinfarbe prüfen.

Nicht vollkommen trivial, aber sicher durch eigene Überlegung leicht zu lösen. Beachte dabei bitte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo KS-Kommando,

der Vollständigkeit halber: s. List<T> statt ArrayList?

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

U
1.688 Beiträge seit 2007
vor 14 Jahren

Hallo,

ein zweidimensionales Array ist sicherlich besser geeignet als mehrere Listen, da man durch Inkrementieren und Dekrementieren der Indizes in der Umgebung der letzten Aktion die angrenzenden Punkte direkt analysieren kann (Seitengrenzen beachten!).

K
KS-Kommando Themenstarter:in
26 Beiträge seit 2009
vor 14 Jahren

habe es inzwischen gelöst mit:

        int[,] gridcoord = new int[6, 7];

welches ich dann den werten des players zuweise z.b.:


            gridcoord[x, y] = player;

einziges problem, was ich vorher behoben hatte ist, dass ich die "puks" wieder irgendwohin ins grid setzen kann, aber das schaffe ich schon wieder^^

ich bedanke mich bei auch

lg KSK