Laden...

Forenbeiträge von bloody_fighter Ingesamt 54 Beiträge

07.08.2011 - 18:19 Uhr

Guten Tag,
gibt es die Möglichkeit, in Silverlight einfache Elemente(Linien o.ä.) zu zeichnen?
Ich suche soetwas wie eine Picturebox in C#, wo man dann auf das graphic element zugreifen und darauf zeichnen kann. Das ganze möchte ich in Silverlight dann allerdings auch wenn möglich ausschließlich mit C# Code realisieren, ohne dass ich eigenen xaml code schreiben muss.
Beste Grüße
Daniel

18.06.2011 - 17:24 Uhr

gibt es keine Möglichkeit, das DGV selber zu kopieren? weil da wäre dann z.B. die "sortierung" auch gleich..Ansonsten schonmal vielen Dank.

18.06.2011 - 14:35 Uhr

Guten Tag,
ich würde gerne eine tiefe Kopie von einem DataGridView erstellen. Gibt es dazu irgendeine Möglichkeit?
Mit freundlichen Grüßen

14.05.2011 - 14:59 Uhr

Ja so viel ich weiß verbraucht Rekursion ja mehr Arbeitsspeicher im Stack, deswegen dachte ich mir, dass es vielleicht auch langsamer sein könnte. Ja das Problem, das ich habe, handelt um eine AlphaBeta Suche im Skat..und das ganze ist doch sehr zeitintensiv, letztendlich wird mir wohl nichts übrig bleiben als auf C / C++ umzusteigen...
Ausschreiben würde ich es so, dass ich die Funktion quasi in sich selber hardgecodet reinschreiben würe, was natürlich extrem unschön wäre.

14.05.2011 - 03:42 Uhr

Guten Tag,
ich gehe eine Baumstruktur mit bis zu 32 Ebenen rekursiv durch. Jetzt frage ich mich, ob Rekursion denn grundsätzlich langsamer ist, als wenn ich alles "ausschreiben" würde?
Beste Grüße,
Daniel

21.04.2011 - 13:17 Uhr

danke, das mit dem Studio als Admin starten funktioniert optimal. Habe es vorher so ähnlcih getestet und versucht, die Projektdatei als Admin zu öffnen, was aber nicht funktioniert, da es keine Exe ist. Aber das Studio kann ich so öffnen, und dann einfach über "Projekt öffnen"..
Schönen tag noch,
Daniel

21.04.2011 - 13:08 Uhr

Guten Tag,
ich arbeite derzeit an einer Testautomatisierung und muss dazu mit dem RanorexStudio auf die Oberfläche in einem Programm zugreifen. Das Programm hat beim Start eine Sicherheitsabfrage, ob Änderungen am System vorgenommen werden dürfen. Das führt dazu, dass das Programm auf einem anderen Sicherheitslevel ist als meine Testautomatisierung. Wenn ich die Testautomatisierungsexe von Hand mit "Als Administrator ausführen" öffne funktioniert alles. Wenn ich das Programm aber von meinem Studio aus öffne funktioniert es aufgrund der Sicherheitsebenen nicht.
Auch wenn das Studio nicht gleich ist wie das VisualStudio, ist es doch sehr ähnlich und deshalb hoffe ich, dass ihr mir weiter helfen könnt. Gibt es eine Möglichkeit, dass das ganze automatisch mit Adminrechten geöffnet wird?
Viele Grüße,

16.04.2011 - 23:20 Uhr

Okay, ich habe endlich den Fehler gefunden. Ich ändere ja die Variable spielerDerDranIst in jedem Schleifendruchlauf, anstatt nur die geänderte Variable zu übergeben X(
Vielen dank für eure Hilfe!

16.04.2011 - 15:27 Uhr

aber ich entferne es doch in der kopierten liste?

16.04.2011 - 15:08 Uhr

Ja, das dachte ich auch, ich habe es aber nicht hinbekommen..ich habe auch lange alle möglichen Variablen mitgeloggt und versucht, das dann im nachhinein zu analysieren, bin aber zu keinem Ergebnis gekommen..an sich sollte das ganze ja tatsächlich kein Problem sein, den MinMax Algorithmus ( "Vorversion" von AlphaBeta) habe ich schon mal implementiert mit dem gleichen Rekursionsaufbau, nur dass es damals funktioniert hat. Wäre also sehr erfreut, wenn mir jemand auf die Sprünge helfen könnte. Was ich nicht verstehe ist, wieso er eine ArgumentOutOfRangeException bringt, wenn oben in der forschleife die Bedingung dafür, dass er überhaupt in die forschleife geht, ist, dass die Anzahl eben größer als 0 ist und das i dürfte ja auch nicht größergleich werden als die Anzahl in der entsprechenden Liste..

16.04.2011 - 13:57 Uhr

ich verstehe nicht ganz, was das ja bedeutet..da ich die Listen ja jedes mal kopiere, bevor ich sie übergebe, darf das i doch eigentlich nicht größer werden?

15.04.2011 - 20:19 Uhr

in dem unteren Codebeispiel in:
kopiekarten[spielerDerDranIst].RemoveAt(i);
Gibt ne ArgumentOutOfRangeException

15.04.2011 - 20:08 Uhr

das Problem ist auf lange sicht nicht ohne Rekursion lösbar, da die Listen ja auch noch größer werden und da später dann auch noch ein Algorithmus ( Alpha Beta) darauf läuft..
Zu der Abbruchbedingung:
Am anfang hatte ich noch über dem ganzen die Abfrage:
if (karten[spielerDerDranIst].Count > 0)
Das hat aber am Inhalt nichts geändert, da die Schleife das ja quasi auch abfrägt.
Wäre cool wenn sich das jemand mal genauer anschauen könnte, habe jetzt schon viel Zeit damit verbracht, finde den Fehler aber einfach nicht..:(

15.04.2011 - 19:54 Uhr

Hier das ganze nochmal auf das nötigste reduziert:

        private void hinzufuegen2(List<List<Karte>> karten, int bspielerDerDranIst)
        {
            
            int spielerDerDranIst = bspielerDerDranIst;
            int anzahlDurchlaeufe = karten[spielerDerDranIst].Count;
            for (int i = 0; i < anzahlDurchlaeufe; i++)
            {
                List<Karte> a0 = new List<Karte>(karten[0]);
                List<Karte> a1 = new List<Karte>(karten[1]);
                List<Karte> a2 = new List<Karte>(karten[2]);
                List<List<Karte>> kopiekarten = new List<List<Karte>>();
                kopiekarten.Add(a0);
                kopiekarten.Add(a1);
                kopiekarten.Add(a2);
                kopiekarten[spielerDerDranIst].RemoveAt(i);
                spielerDerDranIst++;
                if (spielerDerDranIst == 3)
                {
                    spielerDerDranIst = 0;
                }

                hinzufuegen2(kopiekarten,  spielerDerDranIst);          

            }
        }

karten enthält also 3 Listen vom Typ List<Karte>. Jede dieser Listen repräsentiert die Karten, die der jeweilige Spieler auf der Hand hat. Die funktion soll alle verlaufsmöglichkeiten durchgehen(und dann in einem Treeview anzeigen).

15.04.2011 - 19:23 Uhr

Guten Tag,
ich habe eine Rekursive funktion geschrieben und finde einfach nicht, warum sie nicht funktioniert (immer nach einigen "durchläufen" eine ArgumentOutOfRange Exception wirft)...
Nach 20 mal Debuggen bin ich langsam am verzweifeln und hoffe, dass sich jemand von euch mal die Zeit nimmt, sich das anzuschauen!


private void hinzufuegen(TreeNode bknoten, List<List<Karte>> karten, 
            List<Karte> stich, int bspielerDerDranIst ,int vorhand)
        {
            TreeNode knoten = bknoten;
            int spielerDerDranIst = bspielerDerDranIst;     
                
            int anzahlDurchlaeufe = karten[spielerDerDranIst].Count;
              for (int i = 0; i < anzahlDurchlaeufe; i++)
                {          
                    try
                    {
                        knoten.Nodes.Add(karten[spielerDerDranIst][i].name);
                        stich.Add(karten[spielerDerDranIst][i]);

                        if (stich.Count == 3)
                        {
                            stich.RemoveRange(0, 3);
                        }                   
  
                        List<Karte> a0 = new List<Karte>(karten[0]);
                        List<Karte> a1 = new List<Karte>(karten[1]);
                        List<Karte> a2 = new List<Karte>(karten[2]);
                        List<List<Karte>> kopiekarten = new List<List<Karte>>();
                        kopiekarten.Add(a0);
                        kopiekarten.Add(a1);
                        kopiekarten.Add(a2);
                        kopiekarten[spielerDerDranIst].RemoveAt(i);
                        spielerDerDranIst++;
                        if (spielerDerDranIst == 3)
                        {
                            spielerDerDranIst = 0;
                        }
                        hinzufuegen(knoten.Nodes[i], kopiekarten, stich, spielerDerDranIst, 0);
                    }
                    catch (ArgumentOutOfRangeException)
                    {
                        textBox1.Text += "Exception! \r\n";
                    }

                }
            



        }

In meinem Fall sind in Karten immer 2 Karten drin, die ersten 6 durchläufe funktionieren auch fehlerfrei.

Viele Grüße,
Daniel

09.03.2011 - 20:12 Uhr

@WinSharp, nein, denke ich nicht, aber ich dachte mir halt, dass es sicher nicht schaden kann, das von anfang an "optimierter" zu machen...z.B. übergebe ich jedes mal 3 Listen (/Arrays) aus Karten....Karten wäre hierbei dann ja ein Objekt, die Listen auch ein Objekt...alternativ könnte ich dann ja auch feste Arrays übergeben mit den jeweiligen eigenschafen der karte....wobei das erste deutlich übersichtlicher ist.
@JAck30lena, wieso ist es in F# deutlich schneller?

09.03.2011 - 18:41 Uhr

Es geht darum, dass ich den Alpha-Beta Algorithmus für das Kartenspiel Skat implementieren möchte, da kämen dann auch sehr sehr viele Objekte zustande...deshalb habe ich mir die Frage gestellt, ob ich meiner rekursiven Funktion immer ein Objekt übergeben soll (bzw. 2, 3, je nachdem) oder ob ich alles als extra Parameter übergeben soll....die Objekte werden auch teilweise kopiert, das macht dann vielleicht auch noch einen Einfluss für die Entscheidung?

09.03.2011 - 18:08 Uhr

Guten Tag,

macht es denn einen Unterschied, wenn ich einen Algorithmus mit Objekten löse oder alles ohne eigene Objekte realisiere?
also angenommen mein Objekt hat die Attribute int a, String b und die funktion meineMethode().
Ist es jetzt schneller, wenn ich, anstatt das Objekt zu erzeugen, nur int a, String b und meineMethode(a,b) habe? Oder "erkennt" der Compiler das und macht da keinen unterschied?

18.12.2010 - 19:03 Uhr

Also es wird immer kopiert und eine einzige position wird dann geändert. Theoretisch könnte ich also auch immer nur z.B. die entsprechende Zeile kopieren und für die anderen Zeilen dann nur den Verweis kopieren, aber ob das so viel bringt weiß ich nicht...als alternative habe ich mir überlegt, einfach jedesmal die Änderung wieder rückgängig zu machen. Denkt ihr, dass das Performancetechnisch Sinn ergeben würde?

18.12.2010 - 15:45 Uhr

So, habe es jetzt umgesetzt. Jetzt braucht es nur noch 10% anstatt 40% der Gesamtdauer, also weit mehr als eine vervierfachung der geschwindigkeit des kopierens!

18.12.2010 - 14:18 Uhr

Ersteinmal vielen Dank für die vielen Antworten.
@TH69, ja, es ist zwingend erforderlich, dass ich jedes mal eine DeepCopy mache. Das ganze Programm arbeitet Rekursiv und ruft sich jedes mal etwa 20 mal selbst auf(also die Funktion), dafür muss dann aber auch jedes mal ein neues Feld übergeben werden. Ansonsten werde ich dann wohl auf einen 2Dimensionalen Array umsteigen und dafür die Liste weglassen, das scheint dann ja wohl ordentlich schneller zu gehen 😉

18.12.2010 - 02:48 Uhr

Guten Abend,
Ich bin derzeit dabei ein Programm zu programmieren, das sehr Rechenintensiv ist.
Dabei muss ich unter anderem ein Objekt sehr oft kopieren, welches eine 2 Dimensionale Liste enthält. Bisher braucht dieser Vorgang 40% der rechenzeit.
Ich mache es bisher so:
Das ist die Klasse deren Instanzen kopiert werden sollen mit ihrem Konstruktor:

    class Feld
    {
        public List<List<int>> feld = new List<List<int>>();
        public int breite;
        public Feld(int breite)
        {
            this.breite = breite;
            for (int i = 0; i < breite; i++)
            {
                List<int> liste = new List<int>();
                for (int j = 0; j < breite; j++)
                {
                    liste.Add(0);
                }
                feld.Add(liste);
            }
        }

Das ist die Funktion in der Klasse, mit der ich bisher kopiere:

public Feld KopieErstellen()
        {
            
            Feld b = new Feld(breite);
            
            for(int i = 0; i < breite; i++)
            {
                b.feld.Add(new List<int>());
                for (int j = 0; j < breite; j++)
                {
                    b.feld[i].Add(new int());
                    b.feld[i][j] = feld[i][j];
                }
            }             

            return b;
        }

Wie kann ich das ganze schneller machen??
Liebe Grüße,
Daniel

11.11.2010 - 00:51 Uhr

Guten Tag,
Ich möchte ein Spiel programmieren, bei dem man selber eine künstliche intelligenz spielen lassen kann. Es gäbe dann also eine Klasse Spieler, die eben eine bestimmte Funktion hat und von dieser Klasse kann man dann seine eigene Klasse ableiten. Diese sollte man nach Programmstart einfach mit dem Programm "laden"/öffnen können. Wie kann ich das am besten realisieren??

20.01.2010 - 17:13 Uhr

Hab das ganze jetzt ausprobiert nach seinem Beispiel...wenn man ein LGS hat, das genau eine Lösung hat, funktioniert das ganze...aber ansonsten.....:(

20.01.2010 - 14:57 Uhr

Habe jetzt eine Ganze weile in google gesucht, aber keine Klasse zum lösen eines lineraen gleichungssystems gefunden..
Kann mir da jemand helfen?
liebe Grüße 😃

01.01.2010 - 14:54 Uhr

okay, also erstmal vielen Danke für die Gute Klasse.
Ich habe damit aber ein kleines Problem, dass ich nicht verstehe.

Also ich gehe so vor, dass ich normale Textboxen erstelle und dann im Formdesigner an beiden Stellen einfach den Typ ändere. Das funktioniert dann auch so weit. Nur, wenn ich jetzt die erlaubten Zeichen ändere, in meinem Fall ein "E" hinzufüge, dann wird das nicht übernommen für die alten Textboxen. Wenn ich jetzt aber wie oben beschrieben eine neue Textbox erstelle und diese dann entsprechend ändere , dann funktioniert das neue Zeichen bei dieser neuen Textbox. Ich habe dann also zwei Textboxen, die von der gleichen Klasse sind aber unterschiedlich funktionieren, die vor der Änderung erstellte Textbox akzeptiert das neue Zeichen nicht, die neue schon. Kann mir das jemand erklären?
Und noch eine zweite Frage, das Symbol der Klasse ist nicht das gewohnte Symbol sondern ziemlich komisch (kann es nicht beschreiben). Woran liegt das?
liebe Grüße

29.12.2009 - 20:08 Uhr

naja, ich wusste ja nicht warum es nicht funktioniert, deshalb konnte ich das ganze auch nicht genauer posten...UNd wie finde ich heraus, ob irgend eines der Controls den Focus hat?

29.12.2009 - 14:55 Uhr

okay,also ich glaube, die zweite Methode ist einfacher... Hierzu habe ich folgendes gefunden:
if (Focused)
{
}
So funktioniert es aber nicht, wenn ich diesen Code einfach in der Form1 verwende..aber weshalb nicht?

29.12.2009 - 02:59 Uhr

okay, jetzt stellt sich mir aber die Frage, wie ich heraus finde, ob der OpenFileDialog geöffnet ist...habe in den Eigenschaften leider nichts gefunden 😦

28.12.2009 - 21:48 Uhr

Also in meinem Programm ist eine Picturebox, welche darauf reagiert, wenn die Maus darin "gezogen" wird, mit diesen beiden Funktionen:

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            gedrücktX = Convert.ToInt16(e.X);
            gedrücktY = Convert.ToInt16(e.Y);          

        }
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            int dx = gedrücktX - e.X;
            int dy = gedrücktY - e.Y;            
            verschieben(dx, dy);            
        }

Jetzt möchte ich eine Datei öffnen, dazu nehme ich einen Openfiledialog. Wenn ich in diesem Dialog jetzt eine Datei auswähle mit Doppelklick, dann wird die verschieben() funktion aufgerufen. Dies passiert aber nur, wenn die Datei, auf die ich klicke, "über" der Picturebox ist. WEnn ich die Datei mit Enter öffne tritt der Fehler auch nicht auf.
Wie kann ich das verhindern??
liebe Grüße

28.12.2009 - 18:49 Uhr

Vielen dank!Nun stellt sich mir aber die Frage, was für ein Timer der "Standard" Timer aus der Toolbox ist (System.Windows.Forms.Timer)?
liebe Grüße

28.12.2009 - 18:17 Uhr

Also ich habe eine Timerfunktion, die alle X millisekunden eine bestimmte Funktion aufruft. Was ist, wenn während diesem aufruf eine andere Funktion gerade rechnet? Stellt sich die Timerfunktion dann "hinten an" und rechnet erst, wenn die andere Rechnung fertig ist?
liebe Grüße,

07.09.2009 - 03:54 Uhr

okay, also so:
kartennummer = (byte) ((byte) 31 - (byte) karten1.Count - (byte) karten2.Count -(byte) karten3.Count - (byte) stich.Count);

viel dank 😃

07.09.2009 - 02:55 Uhr

Also ich habe folgenden Code:
kartennummer = (byte) 31 - (byte) karten1.Count - (byte) karten2.Count -(byte) karten3.Count -(byte) stich.Count;

Fehler 1 Der Typ "int" kann nicht implizit in "byte" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
Was mache ich falsch?

04.09.2009 - 15:58 Uhr

okay, dann geht es wohl nicht. Ja, ich habe gehofft, dass es irgendwie geht indem ich die eine Datentabelle als "Datenstrucktur" o.ä. fest hinzufüge, aber das scheint wohl dann nicht zu klappen. Trotzdem vielen dank, MFG

04.09.2009 - 15:42 Uhr

Ich habe gegoogelt, finde aber nur Anleitungen zum Verbinden mit einem Server, was ich ja gerade vermeiden will..

04.09.2009 - 15:35 Uhr

verwendetes Datenbanksystem: <SQL>
Also mein Programm muss eine MySQL Datenbank auslesen, der Endanwender soll aber nur ein Programm starten müssen (und nicht noch extra einen server). Wie kann ich das realisieren?

26.08.2009 - 05:10 Uhr

ja, die objekte an sich werden nicht geändert, es wird nur die Liste geändert. Ich werde es dann morgen mal so versuchen, vielen dank 😃

25.08.2009 - 20:15 Uhr

doch, ich manipuliere die liste. In jeder Übergabe wird der Liste ein Element entfernt, aber in jeder übergabe ein anderes Element. Also liste1 fehlt dann eine andere Karte wie liste2. Da die funktion rekursiv ist geht das ganze dann so weiter, es wird dann also ein Baum mit allen Möglichkeiten "gezeichnet" und dann ganz am Ende wird dann das "Ergebnis" zurückgeliefert.
Wenn ich jetzt der Ersten Funktion die gleiche Liste gebe wie der 2. , dann wird durch die Rekursion die erste Liste bis zum Ende durchgearbeitet wo sie dann leer ist, bevor dann die 2. Funktion erst aufgerufen wird. Dieser würde dann ohne Kopie die Leere Liste übergeben werden weil ihr ja nur die Adresse übergeben wird.
Ich hoffe, langsam wird es verständlich? 😃

25.08.2009 - 20:01 Uhr
funktion(liste...)
{
   bearbeiteliste;
   int a = funktion(liste1);
   bearbeiteliste;
   int b = funktion(liste2);
   return kleinstes(a,b)
}
25.08.2009 - 19:52 Uhr

okay, also ich erkläre das ganze mal. Ich habe eine Liste aus Objekten vom Typ Karte.
Karte hat die Eigenschaften:
int id; int farbe; int punktewert und int reihenfolge
jetzt gibt es 3 verschiedene Listen für 3 verschiedene Spieler, jeder der Spieler hat eine bestimmte Anzahl an Karten in der Liste. Diese 3 Listen sind jetzt aber noch in einer Weiteren Liste Zusammengefasst, es ist dann letztendlich also eine Liste aus List<List<Karte>>.
MFG

25.08.2009 - 19:44 Uhr

nein, ich übergebe die listen mit meinen objekten an mehrere Funktionen, wo sie dann auch weiter "bearbeitet" werden. Wenn die Liste dann mit der ersten Funktion bearbeitet wird und dann die 2 Funktion aufgerufen wird, brauche ich ja die ursprüngliche Liste und nicht die bearbeitete. Ich darf also nicht nur die Referenz weitergeben, sondern brauche eine Kopie.

25.08.2009 - 19:17 Uhr

Guten Tag,
Ich habe eine Rekursive funktion die sich pro rekursionstiefe mehrmals selber aufruft. Der Funktion werden Listen mit eigenen Objekten übergeben, ich muss die Listen also vorher kopieren. Wie mache ich dies am besten, und zwar so, dass auch die Objekte in der Liste kopiert werden und nicht nur die alte Speicheradresse in der neuen Liste ist?
MFG

07.03.2009 - 08:36 Uhr

okay, funktioniert alles so 😃
THX!

05.03.2009 - 15:11 Uhr

Guten tag,
mir fällt leider der Name für diesen Typ von funktionen nicht mehr ein, deshalb war das googlen auch erfolglos..
also, folgendes: ich möchte meine funktionen anstatt mit dem funktionsnamen mit +, - , ... aufrufen können, also z.B. meinObjekt a + meinObjekt b... und dabei soll dann sozusagen a.addieren(b) aufgerufen werden.
Hoffe ihr konntet mich verstehn.
MFG

29.01.2009 - 15:57 Uhr

Naja, es ist ja eine Bewegung die kontinuirlich ist. Es ändert sich also immer was in meiner Szenerie. Ich müsste die aktuallisierung also in eine Dauerschleife packen, während diese "Schleife" dann durchläuft , MUSS das Programm aber weiterhin auf Buttons etc. reagieren, z.B. wenn das ganze angehalten wird etc. . Und ich weiß nicht wie ich das in Winforms realisieren könnte, in XNA wird das ganze ja "automatisch" gemacht.
Zu den anderen: vielen dank schonmal, werde mir eure sachen bald anschauen wenn ich dazu komme 😉
Gruß

29.01.2009 - 00:07 Uhr

Also folgendes: Ich möchte für ein Schulprojekt eine Physikalische Simulation für die Grundformeln wie s = v * t usw. programmieren. Das ganze soll dann später so aussehn, dass man ein Objekt hat welches sich dann auch auf dem Bildschirm entsprechend den Einstellungen bewegt, wozu dann auch noch weitere Diagramme angezeigt werden können. Es muss einen Pausebutton geben und einen "Abspiel"-Button, d.h. die Grafik muss sich immer selbst aktuallisieren ABER dennoch muss man das Programm mit Buttons steuern können.
Für die Realisierung ergeben sich für mich 3 möglichkeiten:

  1. Alles mit XNA. Das Problem hierbei ist aber, dass ich alle Buttons und das komplette Menü etc. selber programmieren müsste. Und das wäre wohl viel zu viel Arbeit.

  2. Alles mit Winforms und die Grafiken in einer PictureBox anzeigen lassen.
    Erstes Problem hierbei: Wenn die Grafiken komplexer werden wird es wohl komplex die ganzen Objekte passend anzuzeigen, und ist eine Picturebox die 60 mal / sekunde aktuallisiert wird nicht vieeel ressourcenaufwändiger ,wie wenn man das ganze mit XNA programmieren würde? Das zweite Problem ist, dass das Bild immer aktuallisiert werden müsste , das Programm aber trotzdem weiterhin auf Buttons etc. reagiert.

  3. Möglichkeit: XNA in Winforms einbinden. Problem hierbei: relativ komplex mit dem einbinden, eventuell viel höherer Aufwand wie alles in XNA / Winforms. Außerdem wüsste ich auch hier nicht wie ich das Problem mit der aktuallisierung lösen könnte. Vorteil: ich hätte die Buttons und das Menü schon zur verfügung aber für die Grafik dennoch die Möglichkeit, XNA zu verwenden.

Also: was ist eurer Meinung nach die beste lösung für mein Problem? Für Tipps und Anregungen bin ich immer offen 😃
MFG

13.09.2008 - 17:59 Uhr

bin ich dumm 🤔
habs extra davor noch getauscht weil ich es so haben wollte 😁 xD
naja, thx 🙂

13.09.2008 - 17:50 Uhr

funktioniert auch nicht, es kommt der gleiche Fehler, aber nur 1 mal. Das komische ist ,dass ich das genauso schonmal gemacht habe ( im gleichen Programm), und da funktionierts.

public static int[,] schiffDaten = new int[22, 3] { { 400, 10, 5 }, { 1200, 25, 5 }, { 400, 10, 50 }, { 1000, 25, 150 }, { 2700, 50, 400 }, { 6000, 200, 1000 }, { 3000, 100, 50 }, { 1600, 10, 1 }, { 100, 0, 0 }, { 7500, 500, 1000 }, { 200, 1, 1 }, { 11000, 500, 2000 }, { 900000, 50000, 200000 }, { 7000, 400, 700 }, {200,20,80 }, {200,25,100 }, {800,100,250 }, {800,500,150 }, {3500,200,1100 }, {10000,300,3000 }, {2000,200,1 }, {10000,10000,1 } };

gibt keinen Fehler.

13.09.2008 - 17:38 Uhr

public static double[,] rapidfireDaten = new double[18, 7] { { 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0,0,0,0,0,0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0 }};

Die 0en stehen noch "ersatzweiße" da, der Kompiler gibt aber den fehler aus(7 mal):
Fehler 4 Ungültiger Rangbezeichner: Erwartet wird "," oder "]".
dabei sind die jeweils rot gefärbten klammern markiert.