ButtonID aus zufälligen Int-Werten generieren
-
Hallo,
mein Name ist Jöran und ich habe soeben mit MFC angefangen
Zur Zeit will ich gerade ein kleines TicTacToe-Spiel mit Buttons basteln.
Für den Computer lasse ich daher 2 Zufallszahlen generieren. Da dieser selber nicht in der Lage ist, den Button anzuklicken, versuche ich auf anderem Wege die Caption des Buttons auf X zu ändern.Meine Buttons haben alle die ID: IDC_FELDxy, wobei x eben für die Zeile und y für die Spalte steht. Jeweils 1..3.
Wie kann ich mir jetzt einen INT für mein CWnd generieren, der letztlich den Namen des Buttons trägt?
In Php wüsste ich wie: x.$y;Vielen Dank
-
Was willst du mit dem INT? Der einzige INT-Wert den du bekommst von den Buttons ist die IDC. Beschreib vielleicht mal wo dein Problem liegt.
-
Nuja, der Computer ermittelt zufällig eines der 9 Felder, in der er sein x reinmalen möchte - insofern das frei ist.
Wenn er das hat, möchte ich den Button dazu dann auch mit einem X markieren und Disablen.
-
na das is doch ganz einfach, sofern du den IDC des Button hast, kannst du das doch so machen:
... CWnd *Button = deineDialogklasse.GetDlgItem(IDC_DeinButton); Button->EnableWindow(FALSE);so sollte der Button deselektiert sein
-
Ich habe die ID nur dynamisch.
Also ich weiß, dass aus zwei random Integern IDC_FELD11 wird (beispielsweise), aber wie bring ich das dem Compiler bei

-
in dem du dir ein 2-Dimensionales Array von 3x3 erzeugst und dir dort die IDC der einzelnmen button merkst. Wobei warum generierst du die IDC der Button per Zufall, das Leuchtet mir nicht wirklich ein denn das sind doch nur 9 Felder und diese ändern sich dch nicht, selbst durchnummeriert 1-9 würde genau so gehen, oder is das vür den Computerspieler irgenwie relevant?
-
Ok danke, so hab ichs gemacht.
Für den Spieler ist das nicht relevant. Da hab ich das Ereignis ja direkt beim Click.
Aber der Computer wählt halt zufällig ein Feld. Und dessen Button muss ich ja deaktivieren.