Laden...
C
Campac68 myCSharp.de - Member
Dauerlehranstaltsbesucher Dabei seit 04.02.2010 63 Beiträge
Benutzerbeschreibung

Forenbeiträge von Campac68 Ingesamt 63 Beiträge

12.02.2010 - 19:11 Uhr

Hey,

ich glaube an einem Bild sieht man besser was herbivore meint.

Falls es sich noch nicht von selbst erklärt frag einfach.

Mfg Campac

12.02.2010 - 18:43 Uhr

Hey,

? : ist ein Bedingsoperator. So wird er benutzt:

(bool) ? wahr:falsch;

Besser sieht amn es aber an einem Beispiel


            int x = 2;
            int y = 3;
            Console.WriteLine((x > y) ? "X Größer" : "Y Größer");

Zunächst findet der Vergleich x>y statt der ja ein bool zurückliefert in unserem Fall: false(Prinzipiell kann natürlich auch jede Methode hier stehen die ein bool zurückliefert). Dann wird das bool mit dem Bedingungsoperator überprüft.

Falls die Eingabe vor dem Fragezeichen "true", also wahr, ist wird zurückgegeben was vor dem ":" steht, falls es falsch also "false" ist, wie in unserem Fall, wird hinter dem Doppelpunkt zurückgegeben.
Hier würde also in der Console "Y Größer" ausgegeben.

[EDIT] z.B. findet man eine kurze Übersicht auch hier: Galileo Openbook C# über Bedingungsoperator(?:)

Mfg Campac

12.02.2010 - 00:18 Uhr

Hi,

Ich hab dir mal ein kleines Programm zum Test geschrieben und es liefert bei folgender (testweiser) Eingabe:

static void Main(string[] args)
        {
            Spiel s = new Spiel(4, 4);

            s.gibTuermeAus();
            s.gibPassendeBewegungen();
            Console.WriteLine("---");

            s.bewegeScheibe(0, 1);
            s.gibTuermeAus();
            s.gibPassendeBewegungen();
            Console.WriteLine("---");

            s.bewegeScheibe(0, 2);
            s.gibTuermeAus();
            s.gibPassendeBewegungen();
            Console.WriteLine("---");

            s.bewegeScheibe(1, 2);
            s.gibTuermeAus();
            s.gibPassendeBewegungen();
            Console.WriteLine("---");

            s.bewegeScheibe(2, 0);
            s.gibTuermeAus();
            s.gibPassendeBewegungen();
            Console.ReadKey();
        }

folgende Ausgabe:

Neues Spiel
Turm 1:4321
Turm 2:
Turm 3:
Turm 4:
Möglichkeiten
Von 1 auf 2
Von 1 auf 3
Von 1 auf 4
---
Turm 1:432
Turm 2:1
Turm 3:
Turm 4:
Möglichkeiten
Von 1 auf 3
Von 1 auf 4
Von 2 auf 1
Von 2 auf 3
Von 2 auf 4
---
Turm 1:43
Turm 2:1
Turm 3:2
Turm 4:
Möglichkeiten
Von 1 auf 4
Von 2 auf 1
Von 2 auf 3
Von 2 auf 4
Von 3 auf 1
Von 3 auf 4
---
Turm 1:43
Turm 2:
Turm 3:21
Turm 4:
Möglichkeiten
Von 1 auf 2
Von 1 auf 4
Von 3 auf 1
Von 3 auf 2
Von 3 auf 4
---
Turm 1:431
Turm 2:
Turm 3:2
Turm 4:
Möglichkeiten
Von 1 auf 2
Von 1 auf 3
Von 1 auf 4
Von 3 auf 2
Von 3 auf 4

ok is eher suboptimal(sry falls da ein tippfehler is ich hab die Console abgetippt)

aber vom Prinzip her das was du wolltest oder?(also immer das ausgeben was Möglich is)

Ich häng mal ein Klassendiagramm als Denkhinweis an(da ich hoffe das du den Ehrgeiz hast das Problem auch selbst zu lösen)(Und weil das das Problem war: die Möglickeitenüberprüfung testet bei mir einfach nur jedes oberste Element mit jedem anderem obersten Element außer dich selbst mit der vorgesehen Methode)

Mfg Campac68

09.02.2010 - 21:47 Uhr

Hi,

ich bin auch neu hier und betätige mich hobbymäßig seit der 3.klasse als freizeit-programmierer(und seit gut 1nem jahr in c# davor qbasic und vb)
hab auch schon öfters hier hilfe gefunden deshalb wollte ich auch selber mal mitmachen;)

gruß
campac

06.02.2010 - 19:57 Uhr

tja ich sags mal so: versuch wars wert ich hatte nich viel zeit und war todmüde;)
beim nächsten mal!

05.02.2010 - 23:38 Uhr

sry ich hab dich wirklich falsch verstanden glaub ich, also über UserControl.Name kommst du schon an das ran was du willst, da ist ein anderer fehler in deinem Programm

05.02.2010 - 23:29 Uhr

Ok ich versteh die Problematik nicht ganz.

1.Also das UserControl ist nix anderes als ein Button auf dem ein Bild angezeigt wird?

2.SPS = Share Point Server oder?

3.Also die restlich Problematik hab ich glaub ich gar nicht verstanden 😦 ALso du willst das der Button in nem komplett anderen Projekt dann auch wieder so funktioniert ohne großen Aufwand?

aber wenn du nicht den Namen als eindeutiges IdentifizierungsMerkmal hast dann mach dir selber eins und vergibt so eine Art ID(oder halt nen String wenn du es für Bildernamen brauchst)

Mfg Campac

P.S. mit this.Name kommst du auf den Name der Klasse und das is nicht das was er wollte;)

05.02.2010 - 23:05 Uhr

Ok ich hoffe ich hab dich jetzt richtig verstanden:

Also es gibt eine Form in die ziehst du ein UserControl mit einer PictureBox drinne und du willst das Bild der PictureBox nach den Name Attribut des Objekts laden.

Also über den Weg wird es nicht funktionieren.

Mein Vorschlag wäre(wie schon im letzten Post angedeutet):

Gib dem UserControl einen string als Eigenschaft und nenn ihn zum Beispiel myName

Dann setzt du aus der Form heraus den Wert von dem string. Zuletzt musst du dann nur noch das Bild nach dem Inhalt des strings laden.

Aber ich versteh nicht ganz warum du das so machen willst leichter ginge es in dem du dem UserControl eine Funktion verpasst ladeBild(string Name) und einfach übergibst was für einen Namen das UserControl hat. Oder wenn du es bei initialisieren machen willst also in new, dann kannst du dir den string auch einfach übergeben lassen:

    public partial class ucEingabe : UserControl
    {
        public ucEingabe()
        {
            InitializeComponent();
        }

        public ucEingabe(string myName)
        {
            //Code um myName auszugeben
            InitializeComponent();
        }
    }

Daraus folgt dann wieder das du den Konstruktor nochmal manuell aufrufen musst.
Auch wieder nicht gut. Ich versteh noch nich ganz was das Control mal können soll.

Mfg Campac

05.02.2010 - 22:42 Uhr

Hi,

stimmt nich sry:

Also wenn ich dich richtig verstanden habe hast du die Eigenschaft Name im Designer auf "myEingabe". Diese Eigenschaft ist aber nichts weiter als ein Variablenname, genauer: der Name dieses Elements für die Form.

Bsp.:
Du nennst es myEingabe dann kannst du mit "myEingabe.ToString();" usw. auf das Objekt zugreifen

Aber: Dieser Name wird dir letztenendlich nur "vorgetäuscht". Im richtigen Programm gibt es diesen Name nicht mehr. Das Objekt hat(aber da kenn ich mich nicht so aus) allenfalls noch eine kryptische Nummer. Falls du in dem UserControl einen Namen auslesen willst, könntest du dem UserControl doch einfach einen string als Member hinzufügen z.b. "public string myName;" und dann von der Form aus setzen und von Control aus lesen!

Mfg Campac

05.02.2010 - 22:10 Uhr

Hi,

Ich hab genau 4minuten und 28sekunden programmiert würde mich mal interessieren ob diese tolle Funktion hier das bringt was du wolltest(Achtung: 0 ist bei mir keine Farbe d.h. falls 0 als Farbe benutzt wird, müsste man etwas ergänzen wie: wenn ein Array 0 enthält dann alles Inkrementieren):

        
bool MastermindTest(int[] geheimnis, int[] versuch, out int schwarz, out int weiss)
        {
            schwarz = 0;
            weiss = 0;
            for (int i = 0; i < 4; i++)
            {
                if (geheimnis[i] == versuch[i])
                {
                    geheimnis[i] = 0;
                    schwarz++;
                }
                else if (geheimnis.Contains(versuch[i]))
                {
                    for (int i2 = 0; i2 < 4; i2++)
                    {
                        if (geheimnis[i2] == versuch[i])
                        {
                            geheimnis[i2] = 0;
                            break;
                        }
                    }
                    weiss++;
                }
            }
            if (schwarz == 4) return true;
            return false;
        }

Ok ich geb zu das is weder kurz noch elegant, aber dafür schnell;)

Mfg Campac

05.02.2010 - 16:00 Uhr

Hi,

Ist es vielleicht sowas wonach du suchst(Auch wenn es da nicht direkt um das Programmieren von Spielen geht)?

http://www.frag-einen-anwalt.de/Monopoly---Inwieweit-ist-das-Spielprinzip-gesch%C3%BCtzt-__f46499.html

Also kurz zusammengefasst wird hier wie ich es verstanden habe das Spielprinzip an sich(also in unserem Fall Monopoly das kaufen von Straßen) nicht geschützt aber solche Elemente wie Karten, Spielplan, genaue Regeln usw. schon-> du darfst dem Spiel ähnliche Spiele machen aber nicht das Spiel komplett nachprogrammieren in nahezu allen Details(z.B. die Ereigniskarten bei Monopoly abtippen usw.).

Soweit ich es verstanden habe dürftest du aber ein Monopoly programmieren, das nicht Monopoly heißt, (da der Name an sich geschützt ist) bei dem der Spielplan so aussieht wie bei Mensch-ärger-dich-nicht, du eigene Bilder machst, eigene Namen erfindest, neue(allenfalls ähnliche) Regeln macht(z.B. Man darf immer nur 5 Straßen besitzen) und z.b. neue Elemente dazuerfindest wie etwa ein Bewohnersystem der Straßen.

Vielleicht liegt die Antwort auch neben dem was du suchst aber eventuell hat sie ja auch ein bisschen geholfen;)

Mfg Campac

04.02.2010 - 16:40 Uhr

Trennung von Absätzen: Neue Absätze beginnen standardmäßig durch einen Einzug in der ersten Zeile.

04.02.2010 - 14:55 Uhr

Hi,

Ich glaube er meint das du durch den Debug sehen kannst in welcher Zeile die Exception ausgelöst wird!

Campac