Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2014, 01:32   #1
Зубофон
Новичок
Джуниор
 
Регистрация: 08.12.2013
Сообщений: 1
По умолчанию Прорисовка игрового поля в builder c++

Доброго времени суток. Нужно прорисовать поле(8x8 клеток) для игры "шашки" в форме(builder c++), объясните пожалуйста подробно, каким образом это сделать. Перерыл довольно много источников, но так толком ничего не понял
Зубофон вне форума Ответить с цитированием
Старый 11.01.2014, 03:03   #2
DpolenST
Форумчанин
 
Регистрация: 28.09.2013
Сообщений: 115
По умолчанию

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x=50, y=50; // координаты левого верхнего угла шахматного поля
int sh=40;      // размер клетки  


// рисуем поле
 for(int i=0;i<8;i++)
  {
   for(int j=0;j<8;j++)
    {
      if((i*7+j)%2) Canvas->Brush->Color=(TColor)RGB(0,0,0);  // выбираем цвет заливки клетки
      else Canvas->Brush->Color=(TColor)RGB(255,255,255);

      TRect tRect(x+sh*i,y+sh*j,x+sh*(i+1),y+sh*(j+1));     // выбираем зону заливки
      Canvas->FillRect(tRect);                              // заливаем выбранным цветом

      Canvas->Brush->Color=(TColor)RGB(128,128,128);  // задаем цвет обводки
      //tRect.right++; tRect.bottom++; // сдвиг правой и нижней границы (чтобы рамки между клетками не сдваивались)
      Canvas->FrameRect(tRect);                       // обводим клетку
    }
  }


// добавляем текст
 AnsiString bkv = "ABCDEFGH";
 AnsiString num = "87654321";
 Canvas->Font->Color=clBlack;   // цвет текста
 Canvas->Brush->Color=clBtnFace;  // цвет фона
 Canvas->Font->Size=12;   // размер шрифта
 TFontStyles tFontStyle;
 tFontStyle <<  fsBold;   // жирный
 Canvas->Font->Name="Arial";  // имя шрифта

 for(int i=0;i<8;i++)
  {
    Canvas->TextOutA(x+sh*i+sh/2-5,y-20,bkv[i+1]);      // вывод букв сверху
    Canvas->TextOutA(x+sh*i+sh/2-5,y+sh*8+2,bkv[i+1]);  // вывод букв снизу
    Canvas->TextOutA(x-20,y+sh*i+sh/2-5,num[i+1]);      // вывод цифр слева
    Canvas->TextOutA(x+sh*8+10,y+sh*i+sh/2-5,num[i+1]); // вывод цифр справа
  }
}
Что бы еще такого сделать, чтобы ничего не делать?

Последний раз редактировалось DpolenST; 11.01.2014 в 10:04.
DpolenST вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать на Delphi логическую игру "Hi-Q" - убрать все шашки с игрового поля Инна18 Помощь студентам 1 21.09.2012 14:37
VB6 создание игрового поля ZotaC Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 23.12.2010 22:01
с# прорисовка MAcK Общие вопросы .NET 1 29.08.2008 16:48
Разделение игрового поля на сетку... RKS Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 23.08.2007 21:04
Выбор игрового поля Wolfgang Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 29.04.2007 07:42