Logik Hilfe [C#]

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

SYSThern

Betreff: Logik Hilfe [C#]

BeitragDo, März 04, 2010 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hey community,
da ich mich zurzeit nicht mit blitz sonder mit c# beschäftige und dort ein spiele schreibe Very Happy
hab ich eine frage:

also ich hab ein spielbrett in dem man sozusagen verschieden farbige "steinchen hinenwerfen kann" wie 4 gewinnt nun möchte ich aber alle steinchen die aneinander liegen überprüfen ob sie die selbe farbe haben oder nicht und wenn es mehr als 2 sind löschen:

ich hab schon viel ausprobiert
löschen funktioniert auch nur dass es immer einen auslässt bzw mehr:(

ich hoffe ihr versteht mich Sad

meine überlegung war von der position des wegzuklickenden steinchen nach link recht oben unten überprüfen ob ein gleiches steinchen vorhanden is ...


das blöde ist das man bedenken muss dass auch solche gebilde über prüft werden müssen (o=steinchen gleicher farbe)



ooooo
o
o oooo
o o
ooo
oo
oo
o

als beispiel


ich hoffe ihr könnt mir helfen Very Happy

mfg SYSThern
Tools and Programms
--------------------
www.systhern.de

Starwar

BeitragDo, März 04, 2010 22:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du denn schon einen Code?
Würde sicherlich helfen. Kannst ja auch mal das Projekt Uploaden.
MFG

SYSThern

BeitragDo, März 04, 2010 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
natürlich Very Happy

Code: [AUSKLAPPEN]
 Panel obj = ((System.Windows.Forms.Panel)sender);
            objP = obj.Location;

            if (e.Button == MouseButtons.Right)
            {
                foreach (Panel p in panel1.Controls)
                {

                    if (obj != null)
                    {


                        if (p.Location.X == objP.X +40 && p.BackgroundImage == obj.BackgroundImage)
                        {
                           
                            pP = p.Location;
                            p.Dispose();
                            obj.Dispose();
                           
                        }

                            if (p.Location.X < pP.X && p.BackgroundImage == obj.BackgroundImage)
                            {
                                if (p.Location.X == pP.X + 40)
                                {
                                    pP = p.Location;
                                    p.Dispose();
                                 
                                }
                            }
                        }
 



             
                    }




erklärung

obj=der stein der geklickt wurde

objP=die location/koordinaten(zwischen gespeicher)

und in pP speicher ich die location von jenen stein der die xkoordianten +40(steinbreite) hat

dispose=löschen




ein pseudo bzw code in blitzbasic oder verweis wäre auch praktisch
Tools and Programms
--------------------
www.systhern.de

Starwar

BeitragDo, März 04, 2010 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde überlegen ein 2D-Array mit Spielsteinobjekten zu machen.
Dann fällt die Abfrage leichter und du kannst durch überprüfen von unten nach oben die Steine weiter fallen lassen.
Aber ich verstehe dein Problem nicht so ganz.
Vielleicht mal nen Screen was passiert und was passieren sollte. Ich bin heute schwer von Begriff Wink

EDIT: Achso das soll ganricht fallen. ICh komm solangsam dahinter was du meinst Very Happy
Und jetzt versteh ich auch warum dir das so Probleme macht... Ich werde drüber nachdenken.
MFG

SYSThern

BeitragDo, März 04, 2010 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
fallen soll es schon nur das tut es bereits das ist nicht das problem
aber der algorithmus zum überprüfen ob ein gleicher stein neben einen liegt und dann diesen über prüfen ob neben dem einer liegt und soweiter und am ende jeden stein auf den es zutraf löschen
Tools and Programms
--------------------
www.systhern.de

Xeres

Moderator

BeitragDo, März 04, 2010 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht für mich nach einem Rekursiv lösbarem Problem aus. Also die selbe Funktion auf die Nachbarfelder anwenden, so lange bis du alle Felder der gleichen Farbe markiert hast.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group