myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Wie gehts einfacher?

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 17.08.11, 14:48   #1
CJ3
Newbie
 
Registriert seit: Feb 2010
Beiträge: 66
Bedankt: 34
CJ3 gewöhnt sich langsam dran | 36 Respekt Punkte
Standard Wie gehts einfacher?

Hi Leute^^
Hab mal wieder eine Frage zum Programmieren in Windows API.
Es geht um folgendes:

Code:
case WM_PAINT:
[...]
else if(iX==168)
         {PAINTSTRUCT ps;
         HDC          hDC;

         
         const char  szText[] = "Where shall I head first?^_^";
         const char  szText1[] = "(Remind the time you need!)";
         const char  Ent1[] = "\"Sports Center\"";
         const char  Ent2[] = "Room 2-15";
         const char  Ent3[] = "School Training Field";
         const char  Ent4[] = "School basement";
         const char  Ent1ge[] = "> \"Sports Center\"";
         const char  Ent2ge[] = "> Room 2-15";
         const char  Ent3ge[] = "> School Training Field";
         const char  Ent4ge[] = "> School basement";
         
         
         hDC = BeginPaint(hwnd, &ps);
         {
             TextOut(hDC, 180, 20, szText, sizeof(szText) - 1);
             
                                        
            {
            if(iWahl == 1)
                    {
                    if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
                    {TextOut(hDC, 200,150, Ent1ge, sizeof(Ent1ge) - 1);}
                    TextOut(hDC, 100,250, Ent2, sizeof(Ent2) - 1);
                    TextOut(hDC, 200,350, Ent3, sizeof(Ent3) - 1);
                    TextOut(hDC, 350,250, Ent4, sizeof(Ent4) - 1);
                    }
            }
            if(iWahl == 2)
            {
                    if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
                    {TextOut(hDC, 200,150, Ent1, sizeof(Ent1) - 1);}
                    TextOut(hDC, 100,250, Ent2ge, sizeof(Ent2ge) - 1);
                    TextOut(hDC, 200,350, Ent3, sizeof(Ent3) - 1);
                    TextOut(hDC, 350,250, Ent4, sizeof(Ent4) - 1);
            }
            if(iWahl == 3)
            {
                    if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
                    {TextOut(hDC, 200,150, Ent1, sizeof(Ent1) - 1);}
                    TextOut(hDC, 100,250, Ent2, sizeof(Ent2) - 1);
                    TextOut(hDC, 200,350, Ent3, sizeof(Ent3) - 1);
                    TextOut(hDC, 350,250, Ent4ge, sizeof(Ent4ge) - 1);
            }
            if(iWahl == 4)
            {
                    if(Frei!=1 && Frei!=12 && Frei!=123 && Frei!=124 && Frei!=13 && Frei!=132 && Frei!=134 && Frei!=14 && Frei!=142 && Frei!=143 && Frei!=21 && Frei!=213 && Frei!=214 && Frei!=231 && Frei!=241 && Frei!=31 && Frei!=312 && Frei!=314 && Frei!=321 && Frei!=341 && Frei!=41 && Frei!=413 && Frei!=412 && Frei!=431 && Frei!=421)
                    {TextOut(hDC, 200,150, Ent1, sizeof(Ent1) - 1);}
                    TextOut(hDC, 100,250, Ent2, sizeof(Ent2) - 1);
                    TextOut(hDC, 200,350, Ent3ge, sizeof(Ent3ge) - 1);
                    TextOut(hDC, 350,250, Ent4, sizeof(Ent4) - 1);
            }
             }
         EndPaint(hwnd, &ps);
         }
[...]
Der Nutzer hat 4 Auswahlmöglichkeiten. Mit den Pfeiltasten ändert er int iWahl auf 1, 2, 3 oder 4, damit wird gesteuert, auf welchem Feld er sich befindet. Durch Enter bestätigt er dann die Wahl.
Wenn der Nutzer nun einen Pfad z.B. iWahl=1 wählt, erscheint neuer Text und so.
Später soll er dann wieder auf iX=168 geführt werden. Wenn er dann dort ist, soll die Auswahlmöglichkeit des vorher beschrittenen Weges, im Beispiel jetzt der Weg von iWahl=1, nicht mehr angezeigt werden (Ist noch unvollständig, ich weiß aber das mache ich jetzt erst^^'). Gleichzeitig bekommt die Variable int Frei den Wert von iWahl "hinzugefügt". Im Beispiel wird Frei auf 1 gesetzt. Wenn nun der User den Weg iWahl=3 wählt, wird Frei auf 13 gesetzt, bei Weg iWahl=2, wird Frei auf 12 gesetzt.
Damit ergeben sich 16*4 Möglichkeiten. Damit müsste ich für jeden Fall eine ewig lange if-Bedingung schreiben, was ich gerade auch mache.

Da es nervig ist, andauern wieder diese Fälle abzudecken, wollte ich nachfragen, ob jemand eine einfachere Lösung weiß. Mir will partue nichts einfallen. Wenn ich Zufallszahlen dabei nutze, käme ich ja auf das gleiche raus, oder?

Ich bedanke mich für jede Hilfe^^
MfG,
CJ3
__________________
Es gehört zum Anstand, sich zu bedanken, wenn einem geholfen wurde, also danke liebe Gullianer c:
CJ3 ist offline   Mit Zitat antworten
Ungelesen 17.08.11, 23:04   #2
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

Also 2 Sachen:
1. Bei sowas am besten immer ein minimalbeispiel mitliefern,anstelle des eigentlichen Codes, denn der hat kein Problem.
Die hälfte des Codes brauchst du also nicht posten.
2.
Zu deinem Problem:
wie wäre es mit dem Testen on nur der aktuellen Position?
Frei wird ja so gesetzt:

Frei *= 10;
Frei +=iWahl;

und dann musst du nur
int betrachten = Frei %10;
setzen und musst dich nur um aktuelle Position kümmern.

Abgesehen davon ist ein int schlecht.

Ein int geht auf einem 32Bit betriebssytem nur bis 2^32 -1 Bit.Das ist eine 10 stellige Zahl.
__________________
Meine Rechtschreibfehler dürft ihr gerne behalten.
------------------------------------------------------------
Füttere keine Trolle!->Also unterstütz auch nicht Appel.
sirleo ist offline   Mit Zitat antworten
Ungelesen 19.08.11, 10:08   #3
CJ3
Newbie
 
Registriert seit: Feb 2010
Beiträge: 66
Bedankt: 34
CJ3 gewöhnt sich langsam dran | 36 Respekt Punkte
Standard

Mmmh.. Damit hätte ich die letzte Zahl, ja, aber sobald dann ein zweites Mal gewählt wird, ergibt sich in Modulo eine 2 und damit wüsste es nicht mehr, dass die erste Wahl wegfällt, sie würde wieder auftauchen, richtig?
Wenn ich allerdings 4 verschiedene benutze müsste es aufgehoben sein...
Danke : DDDD

Für das jetzige Projekt, reicht ein int erstmal aus. Für spätere Projekte werde ich deinen Ratschlag gerne annehmen^^
Danke :3
__________________
Es gehört zum Anstand, sich zu bedanken, wenn einem geholfen wurde, also danke liebe Gullianer c:
CJ3 ist offline   Mit Zitat antworten
Ungelesen 19.08.11, 10:50   #4
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

Du kannst es natürlich auch nach dem REST prinzip machen.
In dem fall speicherst du keine Zustände deines Clients(GUI) mehr sondern nur noch die Zustände deiner Ressourcen.
Benötigt aber eine zustätzliche Abstraktionsebene in deinem Programm hast aber das Problem der Auswertung, und des Wegfallenden Zustandes nicht mehr.
Denn so wie du das aufgebaut hast, musst du jede auswahl speichern, und alle Schritte nachvollziehen,damit du immer wieder zum aktuellen zustand kommst, ist also ein Designfehler deinerseits.
have fun.
sirleo
__________________
Meine Rechtschreibfehler dürft ihr gerne behalten.
------------------------------------------------------------
Füttere keine Trolle!->Also unterstütz auch nicht Appel.
sirleo ist offline   Mit Zitat antworten
Ungelesen 19.08.11, 18:00   #5
CJ3
Newbie
 
Registriert seit: Feb 2010
Beiträge: 66
Bedankt: 34
CJ3 gewöhnt sich langsam dran | 36 Respekt Punkte
Standard

tut mir leid, ich verstehe kaum ein wort^^"
wikipedia und google spuckt dazu leider auch nichts aus
Nun ja, ich sollte mich etwas mehr einlesen in solche Themen dann

Und ja, mein Design ist schlecht^^'
Dennoch bin ich stolz drauf, da es so ziemlich das erste richtige Projekt von mir ist
Man lernt schließlich auch mit der Erfahrung : D
__________________
Es gehört zum Anstand, sich zu bedanken, wenn einem geholfen wurde, also danke liebe Gullianer c:
CJ3 ist offline   Mit Zitat antworten
Ungelesen 22.08.11, 15:08   #6
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

Suche keine 2min:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]


Hier noch ein nettes paper:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
und noch 2:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
Meine Rechtschreibfehler dürft ihr gerne behalten.
------------------------------------------------------------
Füttere keine Trolle!->Also unterstütz auch nicht Appel.
sirleo ist offline   Mit Zitat antworten
Ungelesen 23.08.11, 00:56   #7
CJ3
Newbie
 
Registriert seit: Feb 2010
Beiträge: 66
Bedankt: 34
CJ3 gewöhnt sich langsam dran | 36 Respekt Punkte
Standard

oke, sorry xD
ich hab das iwie für einen diplomatischen Begriff gehalten^^"
nochmal danke
wenn du mal was brauchen solltest : D
__________________
Es gehört zum Anstand, sich zu bedanken, wenn einem geholfen wurde, also danke liebe Gullianer c:
CJ3 ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 Uhr.


Sitemap

().