VIER GEWINNT



  • Ich muss für die schule das Programm 4 gewinnt schreiben.
    habe noch keine ahnung wie ich anfangen soll. Wir sollen es mit Felder und so Programmieren. Wir benützen den Borland c++ builder und müssen aben in c schreiben..
    hat mir vllt jemand den quellcode dazu.....vielen dank fürs beantworten. Es geht um meine fachhochschulreife



  • st schrieb:

    Es geht um meine fachhochschulreife

    Tja, diese Reife hast wohl offenbar nicht, wenn du eine Aufgabe, die du selbst programmieren sollst, durch das Abschreiben fremden Codes lösen willst.



  • ich will ja net abschreiben sondern mir einen lösungsvorschlag holen...
    ich habe nur ein problem bei einigen sachen


  • Mod

    wir helfen dir gerne bei deinen Problemen, welche sind das?



  • Sind das deine Kollegen?



  • Wir sind noch ganz am anfang vom schuljahr, das heißt das wir noch net soviel drauf haben. wir benützen den borland c++ builder.verstehe des programm schon irgendwie aber es muss einfacher sein mit arrays und so....und mit den schleifen...und es muss ne gewinnerabfrage dabei sein....
    versucht ihr jetzt nochmal zu helfen???
    vielen dank ihr seit klasse...



  • Hast Du es denn schon selber versucht?



  • Ich habe den Code, mit hübscher GUI und mit Borland geschrieben.
    Habe zusammen mit meinem Schwager vor etwa 2 Jahren gemacht. Trotz meiner Bemühungen hat er immer noch nich viel Ahnung von C++ (wohl überfordert). Und wenn du aus Hamburg bist, dann soll sich der Lehrer mehr Mühe geben, damit ihr was schnallt und nicht mehr abschreiben braucht.

    Wenn du programmieren nicht kannst, lerne es zu Hause.
    Wenn du kein Bock darauf hast, dann hast du dir was falsches ausgesucht.

    nichts für ungut



  • Jo ein Leidensgenosse^^

    mache auch die FHR nur in BW und hab auch eine aus Hamburg in der Klasse der dies zuvor bei euch oben gemacht hat und eure Lehrer kannst meinder meinung nach in de Pfeife rauchen, aber das gehört ja ned hier her.

    Naja finds von meine vor Postern bissle entäuschend das keiner wirklich geholfen hat.

    So dann mal zum eigentlichen Thema zurück:
    Wie willst/sollst du das game machen? GUI oder Konsole?
    2 Spieler oder gegen den PC?

    gruß kookoo



  • heey wir üssen mit borland vier gewinnt in C programmieren wo zei spieler gegeneinander spielen können. und es muss eine gewinnabfrage dabei sein...
    vielen dank für die bemühung Kookoo

    hast du ein quelltext bei dem man sich ideeen holen kann??



  • Kann es sein, dass du hier schon einen halben Monat auf einen fertigen Quelltext wartest, ohne selber mal richtig anzufangen?
    Kann es auch sein, dass du in diesem halben Monat noch nicht einmal versucht hast, Google zu benutzen, um eines der tausend Vier-Gewinnt Beispiele, die es schon im Internet gibt, zu finden?
    Diese Arbeitseinstellung...



  • st schrieb:

    heey wir üssen mit borland vier gewinnt in C programmieren wo zei spieler gegeneinander spielen können. und es muss eine gewinnabfrage dabei sein...
    vielen dank für die bemühung Kookoo

    hast du ein quelltext bei dem man sich ideeen holen kann??

    Wie waer's wenn du einfach mal konkrete Fragen stellen wuerdest anstatt "bitte postet mal den ganzen Code" zu fragen?


  • Mod

    ich muss es hier ein wenig deutlicher sagen:
    - wir helfen gerne wenn ihr probleme habt, dazu muesst ihr eure specifischen probleme posten
    - hausaufgabenmachen fuer andere ist hier nicht erwuenscht und ich bin gezwungen diesen thread zu schliessen, falls weitere anfragen dieser art hier auftauchen.



  • ich habe mal das spiel soweit fertig aber es funktioniert net kann mir jemand helfen wieso????
    muss da noch ne schleife mit do while setzten aber wo vor den spielern......

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    
    int main (void)
    {
            int matrix[7][7];
            int i=0,j=0;
    
            int X;
             //Spalte(Standart=14)
             //Spieler 1 Zeichen
    
            printf("                               ****************\n");
            printf("                               **Vier Gewinnt**\n");
        printf("                               ****************\n\n\n");
        printf("                  (Vier Steine in einer Reihe und du hast gewonnen)\n\n");
    
            printf("1234567\n");
            printf("_______\n");
            for(i=0;i<7;i++){
                    for(j=0;j<7;j++){
                            matrix[i][j]='.';
                            printf("%c",matrix[i][j]);
                    }
                    printf("\n");
            }
    }
    //-----------Spieler 1-----------------------------------------------------
    int spe (void)
    {
    int zug;
    char sp1z='X';
    
            printf("\n\n\n\n");
            printf("Spieler 1, wo wollen sie ihren Stein platzieren?(1,2,3,4,5,6,7)\n");
            scanf("%d",&zug);
            gotoxy(zug,14);
            printf("%c",sp1z);
    }
    
    //-----------Spieler 2----------------------------------------------------
    int spz (void)
    {
    int zug;
    char sp1z='X';
    int sp=14,i;
    
            printf("\n\n"); 
            printf("Spieler 2, wo wollen sie ihren Stein platzieren?(1,2,3,4,5,6,7)\n");
            scanf("%d",&zug);
            gotoxy(zug,sp);
            for(i=0;i<7;i++){
                    if((i==0)||(i==sp1z)){
                            sp--;                     
    
            }
            else{ 
            printf("0"); 
            }
    }
    
    return 0;
    }
    
    //-----------------------------------------------------------------------------------
    

  • Mod

    st schrieb:

    ich habe mal das spiel soweit fertig aber es funktioniert net kann mir jemand helfen wieso????
    muss da noch ne schleife mit do while setzten aber wo vor den spielern......

    welchen teil moechtest du denn wiederholt haben?



  • also mein problem ist das wenn der zweite spieler einen stein legen soll und man mit enter bestätigt es das spiel abbricht....wie kann ich das verhindern...
    danke fürs helfen



  • danke fürs helfen

    bei dem source weiss man ja gar nicht, wo man mit der hilfe ueberhaupt anfangen soll...

    also mein problem ist das [...] das spiel abbricht....

    man macht halt 'ne schleife in der die benutzereingaben stattfinden und die so lange laeuft bis einer gewonnen hat.
    leider ist aus deinem source nicht erkenntlich in welchem kontext die eingaben ueberhaupt passieren.



  • Vielleicht solltest du erstmal deine Funktionen und Variablen vernünftig benennen, damit man da später (wenn das Programm umfangreicher geworden ist) besser durchsteigt... (außerdem will euer Prof da vielleicht auch mal etwas nachvollziehen können 😉 )

    Wo rufst du denn spe und/oder spz auf?

    Außerdem solltest du vielleicht erstmal einen theoretischen Entwurf deines Programms erstellen. (Muss ja kein Structogramm sein, aber wenigstens mal ein paar Überlegungen machen und die mit Papier und Bleistift (!) festhalten...
    Dann brauchst du später nur noch dein theoretisches Konzept praktisch übertragen.

    (Einfach drauf los programmieren geht des öfteren schief...)

    OT: Kann es sein, das ich die aktuelle Bildungspolitik nicht verstehe, oder warum müssen Menschen immer sachen machen, von denen sie vorher (anscheinend) keinen blassen schimmer haben?!? (Hab ich schon öfters in letzter Zeit erlebt...)

    ndT Lupo

    Nur aus Niederlagen erwächst Weisheit.
    ^Marcus Peter^



  • Lupo4u2 schrieb:

    Vielleicht solltest du erstmal deine Funktionen und Variablen vernünftig benennen, damit man da später (wenn das Programm umfangreicher geworden ist) besser durchsteigt... (außerdem will euer Prof da vielleicht auch mal etwas nachvollziehen können 😉 )

    Sehr wichtig!! Spätestens wenn dein prog mal mehr als 100 zeilen hast wirds automtatisch unübersichtlich 😉

    Lupo4u2 schrieb:

    OT: Kann es sein, das ich die aktuelle Bildungspolitik nicht verstehe, oder warum müssen Menschen immer sachen machen, von denen sie vorher (anscheinend) keinen blassen schimmer haben?!? (Hab ich schon öfters in letzter Zeit erlebt...)

    Das ist normal inzwischen! Muss nicht unbedingt an den Schülern liegen!
    Ich hab damals aufm BKI auch en Spiel programmiert wo ich mich ein wenig übernommen hab! Da hilft nur eins RANKLOTZEN!
    Wir sollten 60 Arbeitstunden reinstecken! Ich hab 450 gebraucht!!
    Also probieren! Wenn du ein konkretes Problem hast gibts hier im Forum super leute die dir sofort helfen!!
    Wenn du aktive Hilfe brauchst kannst dich ja mal bei mir melden vll kann ich dir helfen (Ich prog dir nicht dein Prog!).
    Gruß KY



  • Habe hier nochmal versucht vier gewinnt zu schreiben. könnt ihr mir helfen.

    Die steine sollen jetzt noch liegen bleiben und es sollen 2 spieler sein. wie bekomme ich das hin danke fürs beantworten

    #include <stdio.h>
    #include <conio.h>

    // ----globale Variablen ------------------------------------

    int feld[12][12];
    int zeile,spalte;
    int mauszeile=2, mausspalte=2;
    int mausz=2, mauss=3;

    // -----Ausgabe des Feldes -----------------------------------

    void ausgabe (void)
    {

    clrscr();
    printf(" ****************\n");
    printf(" **Vier Gewinnt**\n");
    printf(" ****************\n\n\n");
    printf(" (Vier Steine in einer Reihe und du hast gewonnen)\n\n");

    for(zeile=0;zeile<12;zeile++)
    {
    for(spalte=0;spalte<12;spalte++)
    if(mauszeile==zeile && mausspalte==spalte) // && bedeutet logisches UND, d.h. beide Bedingung müssen erfüllt sein. || steht für das logische Oder, d.h. led. eine Bedingung muss erfüllt sein

    printf("%c",'X'); // Ausgabe Symbol für die Maus an Mausposition

    else

    printf("%c",feld[zeile][spalte]);
    printf("\n");

    }
    }
    // -----Feld anlegen ------------------------------------------

    void feldanlegen(void)
    {

    for(zeile=0;zeile<12;zeile++)
    for(spalte=0;spalte<12;spalte++)
    feld[zeile][spalte]='.';
    feld[0][2]='0';
    feld[0][3]='1';
    feld[0][4]='2';
    feld[0][5]='3';
    feld[0][6]='4';
    feld[0][7]='5';
    feld[0][8]='6';
    feld[0][9]='7';
    feld[0][10]='8';
    feld[0][11]='9';

    feld[1][1]=22;
    feld[1][2]=22;
    feld[1][3]=22;
    feld[1][4]=22;
    feld[1][5]=22;
    feld[1][6]=22;
    feld[1][7]=22;
    feld[1][8]=22;
    feld[1][9]=22;
    feld[1][10]=22;
    feld[1][11]=22;

    feld[2][1]=179;
    feld[3][1]=179;
    feld[4][1]=179;
    feld[5][1]=179;
    feld[6][1]=179;
    feld[7][1]=179;
    feld[8][1]=179;
    feld[9][1]=179;
    feld[10][1]=179;
    feld[11][1]=179;

    feld[2][0]='0';
    feld[3][0]='1';
    feld[4][0]='2';
    feld[5][0]='3';
    feld[6][0]='4';
    feld[7][0]='5';
    feld[8][0]='6';
    feld[9][0]='7';
    feld[10][0]='8';
    feld[11][0]='9';

    }

    // ----- Maus läuft rechts -----------------------------------

    void rechts(void)
    {
    if(mausspalte<11 && feld[mauszeile][mausspalte+1])
    mausspalte++;
    }

    // ----- Maus läuft links -----------------------------------

    void links(void)
    {
    if(mausspalte>2 && feld[mauszeile][mausspalte-1])
    mausspalte--;
    }

    // ------Hauptprogramm ----------------------------------------

    void main(void)
    {

    int zeichen=0;

    feldanlegen();

    //printf("%d",getch()); Cursortasten können mit diesem Befehl abgefragt werden

    do
    {
    if(zeichen==77)
    rechts();
    if(zeichen==75)
    links();
    ausgabe();
    }while( (zeichen=getch())!='x'); // != bedeutet nicht gleich

    }



  • Hey,
    habe jetzt echt keine Lust deinen "Code" anzugucken der nichtmal vernünftig mit Code-Tags gepostet wurde. Zu deinem Problem nur ein kleiner Tipp wie man es machen könnte:

    struct Steinchen
    {
        int Status; /* 
                       0 = Leer, 
                       1 = Spieler1, 
                       2 = Spieler2 
                    */
        Steinchen()
        {
            Status = 0;
        }
    };
    
    Steinchen Feld[12][12];
    
    // [...]
    
    if ( Feld[0][0].Status == 0 )
     Zeige( '.' );                            // Leer
    else if ( Feld[0][0].Status == 1 )
     Zeige( 'O' );                            // Spieler1 hat hier ein Stein
    else
     Zeige( 'X' );                            // Spieler2 hat hier ein Stein
    

    Das ist natürlich nicht die optimalste Lösung, aber ich wollte es auch nicht Übertreiben...

    Ansonsten kann ich dir nur eins sagen: Nimm dir ein Blatt Papier und ein Stift und mal dir doch mal ein Spielfeld auf und spiele so. Dann bring deine Erkenntnisse und überlegungen die du dir augeschrieben hast in die Praxis.

    Gruß


Anmelden zum Antworten