Voltar

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

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int i = 16; // para informar o botão que estava Down

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SB16Click(TObject *Sender)
{
// a lógica será sempre a mesma... em todos os botões!

// conforme seja um ou outro o botão que recebeu
// o evento OnClick, ativamos alguns botões e desativamos
// outros, verificando, sempre, quais devem ser ativados
// e quais devem ser desativados.
SB15->Enabled = true;
SB12->Enabled = true;
SB14->Enabled = false;
SB11->Enabled = false;
SB8->Enabled = false;

// esse laço verifica "de onde veio a peça"... hehehe!
// Na verdade, verifica, através da variável i,
// qual botão estava Down, para implementar
// as modificações necessárias.
switch(i)
{
// esses botões aí embaixo são os únicos que estão ao
// lado do botão que está recebendo o evento OnClick.
// Conseqüentemente são os únicos que podem receber
// alguma alteração em seus estados
case 12:  SB12->Caption = SB16->Caption;  SB16->Caption = ""; break;
case 15:  SB15->Caption = SB16->Caption;  SB16->Caption = ""; break;
}

// atualiza o valor de i, informando-lhe que
// atualmente é o botão 16 que se encontra no
// estado Down
i = 16;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::SB15Click(TObject *Sender)
{
SB16->Enabled = true;
SB14->Enabled = true;
SB11->Enabled = true;
SB13->Enabled = false;
SB10->Enabled = false;
SB7->Enabled = false;
SB12->Enabled = false;

switch(i)
{
case 16:  SB16->Caption = SB15->Caption;  SB15->Caption = ""; break;
case 14:  SB14->Caption = SB15->Caption;  SB15->Caption = ""; break;
case 11:  SB11->Caption = SB15->Caption;  SB15->Caption = ""; break;
}

i = 15;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB14Click(TObject *Sender)
{
SB15->Enabled = true;
SB13->Enabled = true;
SB10->Enabled = true;
SB16->Enabled = false;
SB11->Enabled = false;
SB6->Enabled = false;
SB9->Enabled = false;

switch(i)
{
case 15:  SB15->Caption = SB14->Caption;  SB14->Caption = ""; break;
case 10:  SB10->Caption = SB14->Caption;  SB14->Caption = ""; break;
case 13:  SB13->Caption = SB14->Caption;  SB14->Caption = ""; break;
}

i = 14;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB13Click(TObject *Sender)
{
SB14->Enabled = true;
SB9->Enabled = true;
SB15->Enabled = false;
SB10->Enabled = false;
SB5->Enabled = false;

switch(i)
{
case 14:  SB14->Caption = SB13->Caption;  SB13->Caption = ""; break;
case 9:   SB9->Caption = SB13->Caption;  SB13->Caption = ""; break;
}

i = 13;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB12Click(TObject *Sender)
{
SB16->Enabled = true;
SB11->Enabled = true;
SB8->Enabled = true;
SB15->Enabled = false;
SB10->Enabled = false;
SB7->Enabled = false;
SB4->Enabled = false;

switch(i)
{
case 16:  SB16->Caption = SB12->Caption;  SB12->Caption = ""; break;
case 11:  SB11->Caption = SB12->Caption;  SB12->Caption = ""; break;
case  8:  SB8->Caption = SB12->Caption;  SB12->Caption = ""; break;
}

i = 12;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB11Click(TObject *Sender)
{
SB15->Enabled = true;
SB12->Enabled = true;
SB10->Enabled = true;
SB7->Enabled = true;
SB16->Enabled = false;
SB14->Enabled = false;
SB9->Enabled = false;
SB6->Enabled = false;
SB3->Enabled = false;
SB8->Enabled = false;

switch(i)
{
case 15:  SB15->Caption = SB11->Caption;  SB11->Caption = ""; break;
case 12:  SB12->Caption = SB11->Caption;  SB11->Caption = ""; break;
case  7:  SB7->Caption = SB11->Caption;  SB11->Caption = ""; break;
case 10:  SB10->Caption = SB11->Caption;  SB11->Caption = ""; break;
}

i = 11;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB10Click(TObject *Sender)
{
SB14->Enabled = true;
SB11->Enabled = true;
SB9->Enabled = true;
SB6->Enabled = true;
SB15->Enabled = false;
SB13->Enabled = false;
SB5->Enabled = false;
SB2->Enabled = false;
SB7->Enabled = false;
SB12->Enabled = false;

switch(i)
{
case 14:  SB14->Caption = SB10->Caption;  SB10->Caption = ""; break;
case 11:  SB11->Caption = SB10->Caption;  SB10->Caption = ""; break;
case  6:  SB6->Caption = SB10->Caption;  SB10->Caption = ""; break;
case 9:  SB9->Caption = SB10->Caption;  SB10->Caption = ""; break;
}

i = 10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB9Click(TObject *Sender)
{
SB13->Enabled = true;
SB10->Enabled = true;
SB5->Enabled = true;
SB14->Enabled = false;
SB11->Enabled = false;
SB6->Enabled = false;
SB1->Enabled = false;

switch(i)
{
case 13:  SB13->Caption = SB9->Caption;  SB9->Caption = ""; break;
case 10:  SB10->Caption = SB9->Caption;  SB9->Caption = ""; break;
case 5:  SB5->Caption = SB9->Caption;  SB9->Caption = ""; break;
}

i = 9;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB8Click(TObject *Sender)
{
SB12->Enabled = true;
SB7->Enabled = true;
SB4->Enabled = true;
SB16->Enabled = false;
SB11->Enabled = false;
SB6->Enabled = false;
SB3->Enabled = false;

switch(i)
{
case 12:  SB12->Caption = SB8->Caption;  SB8->Caption = ""; break;
case 7:  SB7->Caption = SB8->Caption;  SB8->Caption = ""; break;
case 4:  SB4->Caption = SB8->Caption;  SB8->Caption = ""; break;
}

i = 8;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB7Click(TObject *Sender)
{
SB11->Enabled = true;
SB8->Enabled = true;
SB6->Enabled = true;
SB3->Enabled = true;
SB12->Enabled = false;
SB15->Enabled = false;
SB10->Enabled = false;
SB5->Enabled = false;
SB2->Enabled = false;
SB4->Enabled = false;

switch(i)
{
case 11:  SB11->Caption = SB7->Caption;  SB7->Caption = ""; break;
case 8:  SB8->Caption = SB7->Caption;  SB7->Caption = ""; break;
case 6:  SB6->Caption = SB7->Caption;  SB7->Caption = ""; break;
case 3:  SB3->Caption = SB7->Caption;  SB7->Caption = ""; break;
}

i = 7;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB6Click(TObject *Sender)
{
SB10->Enabled = true;
SB7->Enabled = true;
SB5->Enabled = true;
SB2->Enabled = true;
SB11->Enabled = false;
SB14->Enabled = false;
SB9->Enabled = false;
SB1->Enabled = false;
SB3->Enabled = false;
SB8->Enabled = false;

switch(i)
{
case 10:  SB10->Caption = SB6->Caption;  SB6->Caption = ""; break;
case 7:  SB7->Caption = SB6->Caption;  SB6->Caption = ""; break;
case 5:  SB5->Caption = SB6->Caption;  SB6->Caption = ""; break;
case 2:  SB2->Caption = SB6->Caption;  SB6->Caption = ""; break;
}

i = 6;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB5Click(TObject *Sender)
{
SB9->Enabled = true;
SB6->Enabled = true;
SB1->Enabled = true;
SB13->Enabled = false;
SB10->Enabled = false;
SB7->Enabled = false;
SB2->Enabled = false;

switch(i)
{
case 9:  SB9->Caption = SB5->Caption;  SB5->Caption = ""; break;
case 6:  SB6->Caption = SB5->Caption;  SB5->Caption = ""; break;
case 1:  SB1->Caption = SB5->Caption;  SB5->Caption = ""; break;
}

i = 5;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB4Click(TObject *Sender)
{
SB8->Enabled = true;
SB3->Enabled = true;
SB12->Enabled = false;
SB7->Enabled = false;
SB2->Enabled = false;

switch(i)
{
case 8:  SB8->Caption = SB4->Caption;  SB4->Caption = ""; break;
case 3:  SB3->Caption = SB4->Caption;  SB4->Caption = ""; break;
}

i = 4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB3Click(TObject *Sender)
{
SB7->Enabled = true;
SB4->Enabled = true;
SB2->Enabled = true;
SB11->Enabled = false;
SB8->Enabled = false;
SB6->Enabled = false;
SB1->Enabled = false;

switch(i)
{
case 7:  SB7->Caption = SB3->Caption;  SB3->Caption = ""; break;
case 4:  SB4->Caption = SB3->Caption;  SB3->Caption = ""; break;
case 2:  SB2->Caption = SB3->Caption;  SB3->Caption = ""; break;
}

 i = 3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB2Click(TObject *Sender)
{
SB6->Enabled = true;
SB3->Enabled = true;
SB1->Enabled = true;
SB4->Enabled = false;
SB7->Enabled = false;
SB10->Enabled = false;
SB5->Enabled = false;

switch(i)
{
case 6:  SB6->Caption = SB2->Caption;  SB2->Caption = ""; break;
case 3:  SB3->Caption = SB2->Caption;  SB2->Caption = ""; break;
case 1:  SB1->Caption = SB2->Caption;  SB2->Caption = ""; break;
}

i = 2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SB1Click(TObject *Sender)
{
SB2->Enabled = true;
SB5->Enabled = true;
SB3->Enabled = false;
SB6->Enabled = false;
SB9->Enabled = false;

switch(i)
{
case 5:  SB5->Caption = SB1->Caption;  SB1->Caption = ""; break;
case 2:  SB2->Caption = SB1->Caption;  SB1->Caption = ""; break;
}

i = 1;        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Sair1Click(TObject *Sender)
{
// fecha o programa
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Novo1Click(TObject *Sender)
{
// inicia uma nova partida
// "recompondo as peças" em seus devidos lugares
i = 16;

SB16->Down = true;

SB1->Enabled = false;
SB1->Caption = 1;
SB2->Enabled = false;
SB2->Caption = 2;
SB3->Enabled = false;
SB3->Caption = 3;
SB4->Enabled = false;
SB4->Caption = 4;
SB5->Enabled = false;
SB5->Caption = 5;
SB6->Enabled = false;
SB6->Caption = 6;
SB7->Enabled = false;
SB7->Caption = 7;
SB8->Enabled = false;
SB8->Caption = 8;
SB9->Enabled = false;
SB9->Caption = 9;
SB10->Enabled = false;
SB10->Caption = 10;
SB11->Enabled = false;
SB11->Caption = 11;
SB12->Enabled = true;
SB12->Caption = 12;
SB13->Enabled = false;
SB13->Caption = 13;
SB14->Enabled = false;
SB14->Caption = 14;
SB15->Enabled = true;
SB15->Caption = 15;
SB16->Enabled = true;
SB16->Caption = "";        
}
//---------------------------------------------------------------------------

Voltar