C++Borland: Vier gewinnt...Gewinnabfrage



  • Liebe Forum-User!
    Ich bin gerade dabei für die Schule ein Vier Gewinnt spiel zu programmieren. Ich bin auch soweit fertig, jedoch habe ich große Schwierigkeiten mit der Gewinnabfrage und ich hoffe, dass ihr mir hierbei behilflich sein werdet. Die Gewinnabfrage ist auch teils enthalten, jedoch muss ich soweit ich weiß den Vektor, den ich hierbei verwende mit dementsprechenden Werten füllen, jedoch steh ich hierbei etwas auf dem Schlauch. Meinen bisherigen Quellcode füge ich auch noch schnell hinzu:

    #include <vcl.h>
    #pragma hdrstop
    
    #include "xxx.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    int x=105, y=65, d=60;
    int spalte1, spalte2, spalte3, spalte4, spalte5, spalte6, spalte7;
    int feld[5][6];
    int fw;
    void gewinnen();
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::NeuesSpiel1Click(TObject *Sender)
    {
    //senkrecht
            Canvas->MoveTo(100,130);
            Canvas->LineTo(100,550);
            Canvas->MoveTo(170,130);
            Canvas->LineTo(170,550);
            Canvas->MoveTo(240,130);
            Canvas->LineTo(240,550);
            Canvas->MoveTo(310,130);
            Canvas->LineTo(310,550);
            Canvas->MoveTo(380,130);
            Canvas->LineTo(380,550);
            Canvas->MoveTo(450,130);
            Canvas->LineTo(450,550);
            Canvas->MoveTo(520,130);
            Canvas->LineTo(520,550);
            Canvas->MoveTo(590,130);
            Canvas->LineTo(590,550);
    //waagerecht
            Canvas->MoveTo(100,130);
            Canvas->LineTo(590,130);
            Canvas->MoveTo(100,200);
            Canvas->LineTo(590,200);
            Canvas->MoveTo(100,270);
            Canvas->LineTo(590,270);
            Canvas->MoveTo(100,340);
            Canvas->LineTo(590,340);
            Canvas->MoveTo(100,410);
            Canvas->LineTo(590,410);
            Canvas->MoveTo(100,480);
            Canvas->LineTo(590,480);
            Canvas->MoveTo(100,550);
            Canvas->LineTo(590,550);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label1Click(TObject *Sender)
    {
            spalte1++;
            fw++;
            if (spalte1==1)
            {
                            if (fw%2)
                    Canvas->Brush->Color=clYellow;
                            else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x,y,x+d,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x-1, i, x+d+1, i+d+1);
                            Ziel = Rect (x-1, i+1, x+d+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
    
                    }
    
            }
    
            if (spalte1==2)
            {
                    if (fw%2)
                    Canvas->Brush->Color=clYellow;
                            else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x,y,x+d,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x-1, i, x+d+1, i+d+1);
                            Ziel = Rect (x-1, i+1, x+d+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte1==3)
            {
                    if (fw%2)
                    Canvas->Brush->Color=clYellow;
                            else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x,y,x+d,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x-1, i, x+d+1, i+d+1);
                            Ziel = Rect (x-1, i+1, x+d+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte1==4)
            {
                    if (fw%2)
                    Canvas->Brush->Color=clYellow;
                            else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x,y,x+d,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x-1, i, x+d+1, i+d+1);
                            Ziel = Rect (x-1, i+1, x+d+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte1==5)
            {
                    if (fw%2)
                    Canvas->Brush->Color=clYellow;
                            else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x,y,x+d,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x-1, i, x+d+1, i+d+1);
                            Ziel = Rect (x-1, i+1, x+d+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte1==6)
            {
                    if (fw%2)
                    Canvas->Brush->Color=clYellow;
                            else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x,y,x+d,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x-1, i, x+d+1, i+d+1);
                            Ziel = Rect (x-1, i+1, x+d+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label2Click(TObject *Sender)
    {
            spalte2++;
            fw++;
            if (spalte2==1)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d+10,y,x+d*2+10,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x+d+10-1, i, x+d*2+10+1, i+d+1);
                            Ziel = Rect (x+d+10-1, i+1, x+d*2+10+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte2==2)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d+10,y,x+d*2+10,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x+d+10-1, i, x+d*2+10+1, i+d+1);
                            Ziel = Rect (x+d+10-1, i+1, x+d*2+10+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte2==3)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d+10,y,x+d*2+10,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x+d+10-1, i, x+d*2+10+1, i+d+1);
                            Ziel = Rect (x+d+10-1, i+1, x+d*2+10+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte2==4)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d+10,y,x+d*2+10,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x+d+10-1, i, x+d*2+10+1, i+d+1);
                            Ziel = Rect (x+d+10-1, i+1, x+d*2+10+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte2==5)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d+10,y,x+d*2+10,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x+d+10-1, i, x+d*2+10+1, i+d+1);
                            Ziel = Rect (x+d+10-1, i+1, x+d*2+10+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte2==6)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d+10,y,x+d*2+10,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x+d+10-1, i, x+d*2+10+1, i+d+1);
                            Ziel = Rect (x+d+10-1, i+1, x+d*2+10+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label3Click(TObject *Sender)
    {
            spalte3++;
            fw++;
            if (spalte3==1)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*2+20,y,x+d*3+20,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x+d*2+20-1, i, x+d*3+20+1, i+d+1);
                            Ziel = Rect (x+d*2+20-1, i+1, x+d*3+20+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte3==2)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*2+20,y,x+d*3+20,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x+d*2+20-1, i, x+d*3+20+1, i+d+1);
                            Ziel = Rect (x+d*2+20-1, i+1, x+d*3+20+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte3==3)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*2+20,y,x+d*3+20,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x+d*2+20-1, i, x+d*3+20+1, i+d+1);
                            Ziel = Rect (x+d*2+20-1, i+1, x+d*3+20+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte3==4)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*2+20,y,x+d*3+20,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x+d*2+20-1, i, x+d*3+20+1, i+d+1);
                            Ziel = Rect (x+d*2+20-1, i+1, x+d*3+20+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte3==5)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*2+20,y,x+d*3+20,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x+d*2+20-1, i, x+d*3+20+1, i+d+1);
                            Ziel = Rect (x+d*2+20-1, i+1, x+d*3+20+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte3==6)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*2+20,y,x+d*3+20,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x+d*2+20-1, i, x+d*3+20+1, i+d+1);
                            Ziel = Rect (x+d*2+20-1, i+1, x+d*3+20+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label4Click(TObject *Sender)
    {
    spalte4++;
    fw++;
    
            if (spalte4==1)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*3+30,y,x+d*4+30,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x+d*3+30-1, i, x+d*4+30+1, i+d+1);
                            Ziel = Rect (x+d*3+30-1, i+1, x+d*4+30+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte4==2)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*3+30,y,x+d*4+30,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x+d*3+30-1, i, x+d*4+30+1, i+d+1);
                            Ziel = Rect (x+d*3+30-1, i+1, x+d*4+30+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte4==3)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*3+30,y,x+d*4+30,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x+d*3+30-1, i, x+d*4+30+1, i+d+1);
                            Ziel = Rect (x+d*3+30-1, i+1, x+d*4+30+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte4==4)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*3+30,y,x+d*4+30,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x+d*3+30-1, i, x+d*4+30+1, i+d+1);
                            Ziel = Rect (x+d*3+30-1, i+1, x+d*4+30+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte4==5)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*3+30,y,x+d*4+30,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x+d*3+30-1, i, x+d*4+30+1, i+d+1);
                            Ziel = Rect (x+d*3+30-1, i+1, x+d*4+30+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte4==6)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*3+30,y,x+d*4+30,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x+d*3+30-1, i, x+d*4+30+1, i+d+1);
                            Ziel = Rect (x+d*3+30-1, i+1, x+d*4+30+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label5Click(TObject *Sender)
    {
            spalte5++;
            fw++;
    
            if (spalte5==1)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*4+40,y,x+d*5+40,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x+d*4+40-1, i, x+d*5+40+1, i+d+1);
                            Ziel = Rect (x+d*4+40-1, i+1, x+d*5+40+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte5==2)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*4+40,y,x+d*5+40,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x+d*4+40-1, i, x+d*5+40+1, i+d+1);
                            Ziel = Rect (x+d*4+40-1, i+1, x+d*5+40+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte5==3)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*4+40,y,x+d*5+40,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x+d*4+40-1, i, x+d*5+40+1, i+d+1);
                            Ziel = Rect (x+d*4+40-1, i+1, x+d*5+40+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte5==4)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*4+40,y,x+d*5+40,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x+d*4+40-1, i, x+d*5+40+1, i+d+1);
                            Ziel = Rect (x+d*4+40-1, i+1, x+d*5+40+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte5==5)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*4+40,y,x+d*5+40,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x+d*4+40-1, i, x+d*5+40+1, i+d+1);
                            Ziel = Rect (x+d*4+40-1, i+1, x+d*5+40+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte5==6)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*4+40,y,x+d*5+40,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x+d*4+40-1, i, x+d*5+40+1, i+d+1);
                            Ziel = Rect (x+d*4+40-1, i+1, x+d*5+40+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label6Click(TObject *Sender)
    {
            spalte6++;
            fw++;
    
            if (spalte6==1)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*5+50,y,x+d*6+50,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x+d*5+50-1, i, x+d*6+50+1, i+d+1);
                            Ziel = Rect (x+d*5+50-1, i+1, x+d*6+50+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte6==2)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*5+50,y,x+d*6+50,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x+d*5+50-1, i, x+d*6+50+1, i+d+1);
                            Ziel = Rect (x+d*5+50-1, i+1, x+d*6+50+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte6==3)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*5+50,y,x+d*6+50,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x+d*5+50-1, i, x+d*6+50+1, i+d+1);
                            Ziel = Rect (x+d*5+50-1, i+1, x+d*6+50+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte6==4)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*5+50,y,x+d*6+50,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x+d*5+50-1, i, x+d*6+50+1, i+d+1);
                            Ziel = Rect (x+d*5+50-1, i+1, x+d*6+50+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte6==5)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*5+50,y,x+d*6+50,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x+d*5+50-1, i, x+d*6+50+1, i+d+1);
                            Ziel = Rect (x+d*5+50-1, i+1, x+d*6+50+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte6==6)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*5+50,y,x+d*6+50,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x+d*5+50-1, i, x+d*6+50+1, i+d+1);
                            Ziel = Rect (x+d*5+50-1, i+1, x+d*6+50+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Label7Click(TObject *Sender)
    {
            spalte7++;
            fw++;
    
            if (spalte7==1)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*6+60,y,x+d*7+60,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*7+65; i++)
                    {
                            Quelle = Rect (x+d*6+60-1, i, x+d*7+60+1, i+d+1);
                            Ziel = Rect (x+d*6+60-1, i+1, x+d*7+60+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte7==2)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*6+60,y,x+d*7+60,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*6+55; i++)
                    {
                            Quelle = Rect (x+d*6+60-1, i, x+d*7+60+1, i+d+1);
                            Ziel = Rect (x+d*6+60-1, i+1, x+d*7+60+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte7==3)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*6+60,y,x+d*7+60,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*5+45; i++)
                    {
                            Quelle = Rect (x+d*6+60-1, i, x+d*7+60+1, i+d+1);
                            Ziel = Rect (x+d*6+60-1, i+1, x+d*7+60+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte7==4)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*6+60,y,x+d*7+60,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*4+35; i++)
                    {
                            Quelle = Rect (x+d*6+60-1, i, x+d*7+60+1, i+d+1);
                            Ziel = Rect (x+d*6+60-1, i+1, x+d*7+60+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte7==5)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*6+60,y,x+d*7+60,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*3+25; i++)
                    {
                            Quelle = Rect (x+d*6+60-1, i, x+d*7+60+1, i+d+1);
                            Ziel = Rect (x+d*6+60-1, i+1, x+d*7+60+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
    
            if (spalte7==6)
            {
                    if (fw%2)
                            Canvas->Brush->Color=clYellow;
                    else
                            Canvas->Brush->Color=clRed;
                    Canvas->Ellipse(x+d*6+60,y,x+d*7+60,y+d);
                    TRect Quelle, Ziel;
                    for (int i=y-1; i<d*2+15; i++)
                    {
                            Quelle = Rect (x+d*6+60-1, i, x+d*7+60+1, i+d+1);
                            Ziel = Rect (x+d*6+60-1, i+1, x+d*7+60+1, i+d+2);
                            Canvas->CopyRect(Ziel, Canvas, Quelle);
                            Sleep (0);
                    }
            }
            NeuesSpiel1Click(0);
            gewinnen();
    
    }
    //---------------------------------------------------------------------------
    void rg()  //rg = rot gewinnt
    {
            Application->MessageBoxA("Spieler 'rot' hat gewonnen!", "Gratulation!",0);
    }
    
    void gg()   //gg = gelb gewinnt
    {
            Application->MessageBoxA("Spieler 'gelb' hat gewonnen!", "Gratulation!",0);
    }
    
    void unentschieden()
    {
            Application->MessageBoxA("Das Spiel hat zu unentschieden geendet.", "Gratulation!",0);
    }
    
    void gewinnen()
    {
      int z = 0;
      for(int y = 0; y < 5; y++)
      for(int x = 0; x < 6; x++)
    {
         if(feld[x][y] != 0)
      {
            z += feld[x][y];
            if(feld[x][y] + feld[x + 1][y] + feld[x + 2][y] + feld[x + 3][y] == 4)
                    gg();
            if(feld[x][y] + feld[x + 1][y] + feld[x + 2][y] + feld[x + 3][y] == 20)
                    rg();
    
            if(feld[x][y] + feld[x + 1][y + 1] + feld[x + 2][y + 2] + feld[x + 3][y + 3] == 4)
                    gg();
            if(feld[x][y] + feld[x + 1][y + 1] + feld[x + 2][y + 2] + feld[x + 3][y + 3] == 20)
                    rg();
    
            if(feld[x][y] + feld[x - 1][y + 1] + feld[x - 2][y + 2] + feld[x - 3][y + 3] == 4)
                    gg();
            if(feld[x][y] + feld[x - 1][y + 1] + feld[x - 2][y + 2] + feld[x - 3][y + 3] == 20)
                    rg();
    
            if(feld[x][y] + feld[x][y + 1] + feld[x][y + 2] + feld[x][y + 3] == 4)
                    gg();
            if(feld[x][y] + feld[x][y + 1] + feld[x][y + 2] + feld[x][y + 3] == 20)
                    rg();
      }
    }
       if(z == 126)
                    unentschieden();
    }
    
    void __fastcall TForm1::Beenden1Click(TObject *Sender)
    {
            Close();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
            Close();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            NeuesSpiel1Click(0);
            Button1->Visible=false;
            Button2->Visible=false;
    
    }
    //---------------------------------------------------------------------------
    

    /Edit akari : Code-Tags eingefügt. sfds



  • Hallo

    Willkommen im Forum. Allerdings muß ich gleich mal ein paar Dinge kritisieren :
    - Bitte verwende beim nächsten Posten von Quellcode hier im Forum die cpp-Tags. sfds
    - "funktioniert nicht" ist keine aussagekräftige Fehlermeldung. Beschreib das Problem genauer
    - Keiner hier hat Lust sich knapp 1000 Zeilen Quellcode durchzulesen. Reduzier deinen Quellcode-Auszug um alle Zeilen, die nichts mit dem Fehler an sich zu tun haben, dann schaut auch sicher jemand rein

    Noch einen ernst gemeinten Hinweis zum Quellcode allgemein :
    Schau dir vor dem Umsetzen deines Programms an, wie man Schleifen, Arrays und Funktionen einsetzt, um nicht so wie bei diesem Programm ständig den selben Quellcode zu wiederholen.

    bis bald
    akari



  • hab die lösung gefunden, thread bitte löschen! danke!



  • Falls du wirklich die ursprüngliche Anfängerin bist, ein kleiner Tip: nicht nur in diesem Forum ist es üblich, auch selbstgefundene Lösungen zu posten, so dass ggf. auch Andere davon profitieren können.


Anmelden zum Antworten