//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" #include "stdio.h" int a[20][20]; // размер карты 20*20 клеток int x=30,y=30; //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { FILE *f; if(f=fopen("C:\\111.txt","r")) { for(int i=0;i<20;i++) { for(int j=0;j<21;j++) // на единицу больше из-за символа конца строки { char t=fgetc(f); switch(t) { case 48 : a[i][j]=0; break; case 49 : a[i][j]=1; break; } } } } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormPaint(TObject *Sender) { for(int i=0;i<20;i++) { for(int j=0;j<20;j++) { switch(a[i][j]) { case 0 : Form1->Canvas->Brush->Color=clGreen; break; case 1 : Form1->Canvas->Brush->Color=clRed; break; } Form1->Canvas->Rectangle(i*30,j*30,i*30+30,j*30+30); // 30 = размер клетки в пикселях } } Form1->Canvas->Ellipse(x,y,x+30,y+30); // рисуем кругляшок } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { switch(Key) { case 37 : if(a[x/30-1][y/30]!=1) { x-=30; } break; case 38 : if(a[x/30][y/30-1]!=1) { y-=30; } break; case 39 : if(a[x/30+1][y/30]!=1) { x+=30; } break; case 40 : if(a[x/30][y/30+1]!=1) { y+=30; } break; } FormPaint(Sender); } //---------------------------------------------------------------------------