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!