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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2012, 19:37   #1
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию Возможно ли сделать автоматичеискую расстановку шашек на доске в Delph?

Возможно ли сделать автоматичеискую расстановку шашек на доске в Delph? Если да, то подскажите, пожалуйста. Буду рад любой подсказке.Спасибо!
вася радугов вне форума Ответить с цитированием
Старый 18.11.2012, 19:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Возможно. Все зависит от доски и шашек, что именно эти два элемента из себя представляют.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2012, 20:13   #3
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

Код для рисования доски взял отсюда:http://programmersforum.ru/showthread.php?t=215869

Код:
procedure TForm4.Button1Click(Sender: TObject);
const
  N = 8;
  OneFSize = 40;
  x0 = 60;
  y0 = 60;
var i, j :integer;
begin
  Image1.Canvas.Pen.Color := clBlack;
  for i:= 0 to N-1  do
    for j:= 0 to N-1 do begin
       if  odd(n-i+1) = odd(j) then
         Image1.Canvas.Brush.Color := clBlack
       else
         Image1.Canvas.Brush.Color := clWhite;
       Image1.Canvas.Rectangle(x0+i*OneFSize,y0+j*OneFSize, x0+(i+1)*OneFSize, y0+(j+1)*OneFSize);
    end;
end;
Шашки пытаюсь сделать с помощью Shape или с помощью картинок
вася радугов вне форума Ответить с цитированием
Старый 19.11.2012, 23:04   #4
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

если возможно, то подскажите пожалуйста
вася радугов вне форума Ответить с цитированием
Старый 19.11.2012, 23:25   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm2.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 With  DrawGrid1.canvas do begin
  if odd(ARow*7+ACol) then Brush.Color:=clBlack else Brush.Color:=clGray;
  FillRect(Rect);

  if (ARow in [0,1]) then
    if odd(ARow*7+ACol) then begin     Brush.Color:=clRed;    Ellipse(Rect);   end;

  if (ARow in [6,7]) then
    if odd(ARow*7+ACol) then begin     Brush.Color:=clBlue;    Ellipse(Rect);   end;
 end;
end;
Вот такой вот простой код может красиво нарисовать шашки.
Используй DrawGrid вместо Image и опиши этим кодом событие OnDrawCell
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2012, 23:39   #6
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

спасибо. можно еще один вопрос?
а как сделать, чтобы шашки можно было двигать по форме мышкой?
вася радугов вне форума Ответить с цитированием
Старый 20.11.2012, 00:11   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Опять таки технологий много. Начиная от известной Drag and Drop заканчивая просто банальными отрисовками во время движения мышки.
Если драгдроп будешь использовать то скорее всего придется расставлять Shape на форме или те же Image в каждую клетку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2012, 00:33   #8
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

спасибо за помощь. я использовал Shape, шашки двигаются, но я не знаю как сделать, чтобы при нажатии на кнопку"расставить шашки", все шашки встали на свое место Как это осуществить?
вася радугов вне форума Ответить с цитированием
Старый 20.11.2012, 01:07   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Пример во вложении.
Осторожно: Шашки можно "выкинуть" за пределы доски, т.к. нет кое-каких проверок (лень думать ).

Update Вариант с некоторой зашитой (может быть, что-нибудь упустил, или можно сделать элегантнее)
Вложения
Тип файла: zip Шашки example.zip (8.5 Кб, 34 просмотров)
Тип файла: zip Шашки example2.zip (9.0 Кб, 45 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 20.11.2012 в 01:28.
BDA вне форума Ответить с цитированием
Старый 26.11.2012, 21:21   #10
вася радугов
Форумчанин
 
Регистрация: 09.04.2011
Сообщений: 134
По умолчанию

BDA, Спасибо. У меня еще один вопрос.
почему при движении шашки изображение сильно "дергается" или мерцает ( не знаю как правильно сказать)? Можно как -то исправить?
вася радугов вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли сделать мнемосхемы? fakel-v Компоненты Delphi 5 08.04.2014 11:35
Возможно ли сделать такое?... troyan32 Общие вопросы Delphi 9 08.04.2011 16:31
Возможно ли сделать? alex0097 Общие вопросы Delphi 3 14.07.2010 20:36
Найти расстановку восьми слонов на шахматной доске WhiteKuz Общие вопросы Delphi 1 30.04.2010 12:25