Jak w temacie robię gierkę tego typu. Doszedłem do okodowania wstawiania pionków. Problem jest taki: Gdy klikam na pola y=0-9 pionek wstawia się w pole y+=20 pozostałe są w porządku. To jest kod:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TImage *pole[20][20];
POINT mysz;
int x, y;
void biale(int x, int y,TImage *Image1)
{
pole[x][y]->Picture->LoadFromFile("white.bmp");
pole[x][y]->Tag=1;
Image1->Picture->LoadFromFile("black.bmp");
Image1->Tag=2;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for (int i = 0; i < 30; i++)
{
for (int j = 0; j < 30; j++)
{
pole[j][i] = new TImage(Form1);
pole[j][i]->Left =20*j;
pole[j][i]->Top =20*i;
pole[j][i]->AutoSize=true;
pole[j][i]->Picture->LoadFromFile("empty.bmp");
pole[j][i]->Visible=true;
pole[j][i]->Tag=0;
pole[j][i]->Parent=Form1;
pole[j][i]->OnClick=Image1Click;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
mysz.x=Mouse->CursorPos.x;
mysz.y=Mouse->CursorPos.y;
Label1->Caption=IntToStr(mysz.x)+" : "+IntToStr(mysz.y);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender)
{
x=(mysz.x-8-Form1->Left)/20;
y=(mysz.y-30-Form1->Top)/20:
Label2->Caption=IntToStr(x)+" : "+IntToStr(y);
biale(x, y, Image1);
}
//---------------------------------------------------------------------------
Z obiektów wstawiłem tylko Timer1, Image1 do pokazywania ruchu, Label1 pokazuje pozycję myszy, Label2 które pole kliknięte. Jeśli macie chwilkę, to proszę, zerknijcie na to, nie mam pojęcia o co chodzi :(