GUI 8 Damen-Problem



  • Hey alle zusammen 😉

    also ich hab zurzeit ein kleines Problem beim Programmieren (Bin noch Anfänger ^^)

    Kurz und schmerzlos: Wie kann ich nem Button eine Funktion zuweisen?

    Bessergesagt schaut es bei mir grad so aus:

    Das 8 Damen Problem geht über die Konsole ganz gut. Ich bekomm ne Liste und Fertig. Nun will ich diese aber nochmal in ne GUI reinhauen.

    #include "stdafx.h"
    #include "iostream"

    int dame_in_gefahr(int *schachbrett) {
    /* x==nach unten; y==nach rechts */
    int x,y;
    for(x=0; x<7; x++)


    if(schachbrett[x])
    for(y=x+1; y<=7; y++)
    /* Ist auf feld[y] eine Dame? */
    if(schachbrett[y]) {
    /* Wir überprüfen, ob die beiden
    * Damen kollidieren. */
    /* Sind beide Damen in derselben Zeile? /
    if(schachbrett[x]==schachbrett[y])
    return 1; /
    Kollision in gleicher Zeile */
    /* Diagonal? /
    if(abs(x-y)==abs(schachbrett[x]-schachbrett[y]))
    return 2; /
    Kollision in der Diagonalen /
    }
    return 0; /
    keine Kollision! */
    }

    int dame(int *schachbrett, int position) {
    int x = 1, i;
    static int counter = 1;

    while(x <= 😎 {
    /* Wir setzen die Dame mit der
    * Nummer x an feld[position]. */
    schachbrett[position]=x;
    if(!dame_in_gefahr(schachbrett)) {
    if(position) {
    /* die nächste Dame /
    if(dame(schachbrett,position-1))
    return 1; /
    Dame an diese Position setzen */
    }
    else {
    cout << "Loesungs-Nr.%2d : ", counter++;
    for(i=0; i<8; i++)
    cout << "(%d,%d)", i+1, schachbrett[i];
    cout <<"\n";
    }
    }
    x++;
    }
    schachbrett[position] = 0;
    return 0;
    }

    int main(void) {
    int schachbrett[8], x;

    for(x=0; x < 8; x++)


    dame(schachbrett,7);
    system ("pause");
    return EXIT_SUCCESS;

    }

    So zur GUI --> Wie kann ich jetzt diesen Code oben in den Button reinschreiben.

    Die Ausgabe soll über ne Listbox ausgegeben werden.

    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {

    HIER SOLL DIE FUNKTION REIN!!!

    }
    private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
    Application::Exit();
    }

    private: System::Void listBox1_SelectedIndexChanged_1(System::Object^ sender, System::EventArgs^ e) {
    // MessageBox::Show(this->listBox1->SelectedItem->ToString());
    }

    };

    Danke schonmal für die Hilfe 🙂



  • Es gibt keine Buttons im C++ Standard.

    Was du da zeigst sieht nach C++/CLI aka .NET aus => falsches Forum.



  • Man ordnet der Meldung (Message) Button Mausklick eine Funktion zu, die dann entsprechend ausgeführt wird. Der Button ist ein "Kindfenster". Das ist bei allen GUIs irgendwie gleichartig gelöst.
    MFC: http://henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel14.htm
    WinAPI: http://henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api5.htm



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Log in to reply