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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 15:02   #1
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию Кто может чуть доделать код? - Программа Судоку на Delphi

Вот есть код игры "СУДОКУ" надо сделать так, чтобы при проверке горизонтальных и вертикальных рядов, если числа в строке или столбце повторялись, то выделить их красным.

Текстовый документ с кодом можно скачать отсюда http://zalil.ru/33187115 так как сюда весь код не влезает.( "Вы ввели слишком длинный текст (5729 символов). Пожалуйста, сократите его до 5000 символов.")
vadiprog вне форума Ответить с цитированием
Старый 05.05.2012, 16:08   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

по большому-пребольшому секрету скажу Вам, что то, что Вы выложили, это даже не только не проект, это даже не одна форма - это ПОЛОВИНКА от вашей формы...

не думаю, что без исходников проекта целиком Вам кто-то чем-то поможет...
имхо, разумеется...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2012, 17:05   #3
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
по большому-пребольшому секрету скажу Вам, что то, что Вы выложили, это даже не только не проект, это даже не одна форма - это ПОЛОВИНКА от вашей формы...

не думаю, что без исходников проекта целиком Вам кто-то чем-то поможет...
имхо, разумеется...
http://zalil.ru/33186777 вот все исходники
vadiprog вне форума Ответить с цитированием
Старый 05.05.2012, 18:52   #4
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

нету желающих помочь?

Последний раз редактировалось vadiprog; 05.05.2012 в 19:00.
vadiprog вне форума Ответить с цитированием
Старый 05.05.2012, 19:28   #5
vadiprog
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 96
По умолчанию

цена вопроса 70 р.
vadiprog вне форума Ответить с цитированием
Старый 05.05.2012, 23:56   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

замените процедуру Draw на такую:
Код:
procedure TForm4.Draw;    //процедура яка замальовує цифри та встановлює їхне положення

function IsDouble(r,c : integer ) : boolean;
var i : integer;
begin
  IsDouble := false;
  if fields[r,c].Placed=-1 then Exit;
  for i := 0 to 8 do
    if (i<>r) and (fields[i,c].Placed = fields[r,c].Placed) then begin
      IsDouble := True;
      Exit
    end;
  for i := 0 to 8 do
    if (i<>c) and (fields[r,i].Placed = fields[r,c].Placed) then begin
      IsDouble := True;
      Exit
    end;
end;
var x,y,ax,ay : integer;
begin
  DrawGrid;
  Image1.Canvas.DrawFocusRect(Rect(35*selx+1, 35*sely+1, 35*(selx+1), 35*(sely+1))); //квадрат який виділяє вибрану цифру
  Image1.Canvas.Font.Style := [fsBold]; //жирний стиль
  Image1.Canvas.Font.Size:=18;    //розмір цифр

  //встановлює моложення цифр а також їхній колір (чорний - фіксована, синій - вільна, оливкова - перемога)
  for x := 0 to 8 do
    for y := 0 to 8 do begin
      ax := 35*x +10;
      ay := 35*y +3;
      if fields[x,y].InLevel then Image1.Canvas.Font.Color := clBlack
                             else begin
                               if IsDouble(x,y) then Image1.Canvas.Font.Color := clRed
                                                else Image1.Canvas.Font.Color := clBlue;
                             end;
      if win then
        Image1.Canvas.Font.Color := clOlive;
      if fields[x,y].Placed <> -1 then
        Image1.Canvas.TextOut(ax,ay,inttostr(fields[x,y].Placed));
    end;
end;
лень расписывать, что я вставил. сравните со своей - увидите разницу.
это раз.
и второе, я сделал точно, как Вы просили:
Цитата:
надо сделать так, чтобы при проверке горизонтальных и вертикальных рядов, если числа в строке или столбце повторялись, то выделить их красным
по правилам Судоку, если внутри квадрата есть повторы - это это тоже недопустимо, но я это не проверяю (ибо лень )

Успехов!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто может доделать? Kil001 Visual C++ 1 15.12.2011 14:50
кто может объяснить,почему на моем компе программа работает на других нет?код в Delphi Symba Общие вопросы Delphi 1 24.03.2011 01:03
Кто может доделать программу? Neadekvat Помощь студентам 0 05.12.2010 21:12
программа часы,надо чуть-чуть переделать RadioDream Помощь студентам 1 21.10.2010 19:29