Canvas Probleme mit Schachbrett ??



  • Hallo

    ich habe ein Schachbrett mit c++ borland builder programmiert:

    //---------------------------------------------------------------------------
    #include <vcl\vcl.h>
    #pragma hdrstop

    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma resource "*.dfm"
    TForm1 Form1;
    float eins, zwei;
    float Breite, Hoehe, Schwarz;
    bool black = true;
    const int CMax=1;
    TColor Farbe2[CMax]=
    {
    clBlue
    };
    const int FMax=14;
    TColor Farbe [FMax]=
    {
    clBlack, clWhite, clLime, clAqua, clNavy, clGreen, clFuchsia, clRed, clPurple,
    clMaroon, clYellow, clOlive, clBlue, clGray
    };
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent
    Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    eins=StrToInt (Edit1->Text);
    zwei=StrToInt (Edit2->Text);
    Breite=ClientWidth/eins;
    Hoehe=ClientHeight/zwei;

    for(int x=0;x<ClientWidth;x+=Breite)
    {
    for(int y=0;y<ClientHeight;y+=Hoehe)
    {
    // Canvas->Brush->Color = Farben [random(FMax)];
    if (black == true){
    Canvas->Brush->Color = clBlack;
    black = false;
    }else{
    Canvas->Brush->Color = clWhite;
    black = true;
    }
    Canvas->Rectangle (x, y, x+Breite, y+Hoehe);
    Sleep(0);
    }
    }
    }

    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Refresh ();
    }
    //---------------------------------------------------------------------------

    es funktioniert alles. Bis auf ein paar Fehler. Wenn ich in Edit2 eine ungerade
    Zahl eingebe dann wird kein Schachbrett konstuiert sondern irgendwelches andere Zeugs. Woran liegt das ??

    Dann habe ich noch eine andere Frage und zwar: Wie kann ich ein Schachbrett mit
    14 verschiedenen Farben programmieren bei dem nach jedem Kästchen immer eine
    andere Farbe kommt bzw. bei dem keine zwei gleichen Farben nebeneinander und auch nicht untereinander kommen ??

    Danke für eure Hilfe

    MFg

    metroid



  • Bitte verwende doch Code Tags oder C/C++!! Dann wird der Code etwas leserlicher.

    Zur ersten Frage: Nimm den Debugger, dann findest Du es ganz sicher raus!

    Zur zweiten Frage: ist dabei die grösse variabel? - Wenn ja, dann würde ich einfach nen Zähler machen, der durch die Farben fährt, und jedesmal noch eins weiter zählt, solange Deine Vorgaben nicht eingehalten werden (von wegen Nachbarn und so)

    - Adrian



  • Einmal reicht, danke!


Log in to reply