Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Unit15.h"
- #include "Unit4.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TForm4 *Form4;
- int x = 0, y = 0, a[10][10], z1 = 4, z2 = 4, b = 0, c = 0,h=2,e2=0,e3=0;
- bool moveup = false, movedown = false, moveright = false, moveleft = false,
- drawred = false, drawgreen = false,drawyellow=false,draw=false;
- //---------------------------------------------------------------------------
- __fastcall TForm4::TForm4(TComponent* Owner)
- : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm4::FormActivate(TObject *Sender)
- {
- Form4->SetFocusedControl(Form4); //Ставим фокус на форму
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm4::Timer1Timer(TObject *Sender)
- {
- if (moveup == true) { //движение вверх
- if (a[z1][z2]>1){a[z1][z2]=a[z1][z2]-1;}
- z1 = z1 - 1;
- }
- if (movedown == true) { //движение вниз
- if (a[z1][z2]>1){a[z1][z2]=a[z1][z2]-1;}
- z1 = z1 + 1;
- }
- if (moveleft == true) { //движение влево
- if (a[z1][z2]>1){a[z1][z2]=a[z1][z2]-1;}
- z2 = z2 - 1;
- }
- if (moveright == true) { //движение вправо
- if (a[z1][z2]>1){a[z1][z2]=a[z1][z2]-1;}
- z2 = z2 + 1;
- }
- if (a[z1][z2] == 50) { //обрабатываем событие поглощения еды
- for (e2=rand()%9, e3=rand()%9; a[e2][e3] > 0;) { //проверяем не находится ли еда на теле
- e2=rand()%9;
- e3=rand()%9;
- }
- a[e2][e3]=50; //присваиваем рандомной клетке значение еды
- h=h+1;
- if (moveright == true) { //создаем хвост
- a[z1][z2-1]=h-1;
- }
- if (moveleft == true) {
- a[z1][z2+1]=h-1;
- }
- if (moveup == true) {
- a[z1+1][z2]=h-1;
- }
- if (movedown == true) {
- a[z1-1][z2]=h-1;
- }
- }
- if (z1==-1) { //создаем границы
- z1=9;
- }
- if (z1==10) {
- z1=0;
- }
- if (z2==-1) {
- z2=9;
- }
- if (z2==10) {
- z2=0;
- }
- for (x=0; x < 10; x++) { //удаляем последний тайл хвоста
- for (y=0; y < 10; y++) {
- if (a[x][y]>0 and a[x][y]!=50) {
- a[x][y]=a[x][y]-1;
- }
- }
- }
- if (h>2 and a[z1][z2]>0 and a[z1][z2]<50) { //поражение
- Timer1->Enabled=False;
- ShowMessage("Вы съели Вас");
- } else
- { a[z1][z2] = h; } //ставим голову
- for (x = 0; x < 10; x++) {
- for (y = 0; y < 10; y++) {
- StringGrid1->Cells[x][y] = a[y][x]; //переносим цифру на сетку
- }
- }
- Label1->Caption=IntToStr(h-2); //очки
- if (h==49) {
- ShowMessage("Вы победили, Вы крутой");
- Timer1->Enabled=false;
- }
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm4::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
- {
- if (Key == 39 and moveleft == false) {
- moveright = true;
- moveleft = false;
- movedown = false;
- moveup = false;
- }
- if (Key == 38 and movedown == false) {
- moveup = true;
- moveleft = false;
- movedown = false;
- moveright = false;
- }
- if (Key == 37 and moveright == false) {
- moveleft = true;
- moveright = false;
- movedown = false;
- moveup = false;
- }
- if (Key == 40 and moveup == false) {
- movedown = true;
- moveleft = false;
- moveright = false;
- moveup = false;
- }
- }
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- void __fastcall TForm4::FormCreate(TObject *Sender)
- {
- for (x = 0; x < 15; x++) {
- for (y = 0; y < 10; y++) {
- a[x][y] = 0;
- }
- }
- a[rand() % 9][rand() % 9] = 50;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm4::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
- TGridDrawState State)
- { if (StringGrid1->Cells[ACol][ARow]==0) {
- StringGrid1->Canvas->Brush->Color=clGreen;
- }
- if (StringGrid1->Cells[ACol][ARow]==6) {
- StringGrid1->Canvas->Brush->Color=clRed;
- }
- if (StringGrid1->Cells[ACol][ARow]==7) {
- StringGrid1->Canvas->Brush->Color=clRed;
- }
- if (StringGrid1->Cells[ACol][ARow]==8) {
- StringGrid1->Canvas->Brush->Color=clRed;
- }
- if (StringGrid1->Cells[ACol][ARow]==9) {
- StringGrid1->Canvas->Brush->Color=clRed;
- }
- if (StringGrid1->Cells[ACol][ARow]==5) {
- StringGrid1->Canvas->Brush->Color=clRed;
- }
- if (StringGrid1->Cells[ACol][ARow]>0 and StringGrid1->Cells[ACol][ARow]<50 ) {
- StringGrid1->Canvas->Brush->Color=clRed;
- }
- if (StringGrid1->Cells[ACol][ARow]==50) {
- StringGrid1->Canvas->Brush->Color=clYellow;
- }
- StringGrid1->Canvas->FillRect(Rect);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement