Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.04.2014, 12:56
Аватар для hsMapk
hsMapk hsMapk вне форума
Новичок
 
Регистрация: 17.04.2014
Сообщения: 60
Версия Delphi: Delphi 7
Репутация: 5
Восклицание Заполнение StringGrid по условию

HELP! Нужно заполнить грид числами, НО чтоб все соседние ячейки были пустыми! И это естественно по рандому. Заполнение сделал и перебрал около сотни(!) вариантов условий, но всё равно желаемого результата не добился .помогите плиз.желатьно кусок кода с условием и заданием значения ячейкам.нужно срочно!

Последний раз редактировалось hsMapk, 17.04.2014 в 15:22.
Ответить с цитированием
  #2  
Старый 17.04.2014, 13:44
draginimp draginimp вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 37
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Не понятно что имеется ввиду под "вокруг заполненой ячейки ВСЕ ячейки были пустыми" - это говорит о том, что заполнена только одна ячейка?

Опишите задачу чуть подробнее. Мне кажется Вам помогут.
Ответить с цитированием
  #3  
Старый 17.04.2014, 14:56
Аватар для hsMapk
hsMapk hsMapk вне форума
Новичок
 
Регистрация: 17.04.2014
Сообщения: 60
Версия Delphi: Delphi 7
Репутация: 5
Восклицание поясняю

имел ввиду что все соседние ячейки должны быть пустыми

Последний раз редактировалось Admin, 17.04.2014 в 19:45.
Ответить с цитированием
  #4  
Старый 17.04.2014, 15:30
draginimp draginimp вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 37
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Так?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var x,y, xi,yi: integer;
begin
x:=random(5);  //размер грида
Y:=random(5);
for xi:=-1 to  1 do
for yi:=-1 to  1 do
if (x+xi>=0) and (y+yi>=0)  then      //Cначало очищаю поле 3х3
stringgrid1.Cells[x+xi,y+yi]:='';
stringgrid1.Cells[x,y]:=inttostr(10);// Потом вписываю какое-то число
end;
Я очищаю поле 3 на 3 .
Если нужен вариант, что программа лазит по гриду и ищет свободное поле, то тут логически можно переделать код

Последний раз редактировалось draginimp, 17.04.2014 в 16:20.
Ответить с цитированием
  #5  
Старый 17.04.2014, 17:15
Аватар для hsMapk
hsMapk hsMapk вне форума
Новичок
 
Регистрация: 17.04.2014
Сообщения: 60
Версия Delphi: Delphi 7
Репутация: 5
Восклицание .

грид задан уже(10х10).просто нужно заполнить его к примеру еденицами,но так что ни обна еденица не граничила с другой.чтоб единиц максимум было 10 и они располагались хаотично

Админ: Предупреждение! - Выделение цветом излишне.

Последний раз редактировалось Admin, 17.04.2014 в 19:45.
Ответить с цитированием
  #6  
Старый 18.04.2014, 12:08
draginimp draginimp вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 37
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var x,y, xi,yi,i,p :integer;
    c: boolean;
begin
i:=0;
repeat
c:=false;
P:=10;  // Размер грида
x:=random(p-1);
Y:=random(p-1);
for xi:=-1 to  1 do
for yi:=-1 to  1 do
if (x+xi>=0) and (y+yi>=0)and (x+xi<p) and (y+yi<p) then
if stringgrid1.Cells[x+xi,y+yi]<>''   then c:=true;   //проверяем пустое поле
if c = false then  stringgrid1.Cells[x,y]:='1';// если пустое вписываем 1
if c = false then  inc(i);// считаю кол-во заполненных 
until (I=10);
end;
Еще неплохо бы написать проверку свободных мест, то есть если свободные места заканчиваются выдавать мессадж. А то программа войдет в бесконечный цикл.
Надеюсь помог.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025