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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2014, 17:30   #1
Inna9
Новичок
Джуниор
 
Регистрация: 07.05.2014
Сообщений: 2
По умолчанию Игра"Жизнь"

Ребят помогите написать код на Delphi)
я вот начала а дальше не знаю что делать
var
Form1: TForm1;
current:array [0..51] of string[1];
last:array [0..51] of string[1];
i,j,k:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
t.enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
t.enabled:=false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
for i:=0 to 51 do
for j:=0 to 51 do
sg.Cells[i,j]:='';
end;

procedure TForm1.SGSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
sg.cells[ACol, ARow]:='*';
end;

procedure TForm1.TTimer(Sender: TObject);
begin
k:=0;
{for i:=0 to 51 do
for j:=0 to 51 do
current[i,j]:=sg.cells[j,i]; }// вот здесь красная строчка не пойму почему
for i:=1 to 50 do
for j:=1 to 50 do
if current[i,j]='' then
begin
if current[i-1,j-1]<>'' then
k:=k+1;
if current[i-1,j]<>'' then
k:=k+1;
if current[i-1,j+1]<>'' then
k:=k+1;
if current[i,j-1]<>'' then
k:=k+1;
if current[i,j]<>'' then
k:=k+1;
if current[i,j+1]<>'' then
k:=k+1;
if current[i+1,j-1]<>'' then
k:=k+1;
if current[i+1,j]<>'' then
k:=k+1;
if current[i+1,j+1]<>'' then
k:=k+1;


end;
end;

end.
Inna9 вне форума Ответить с цитированием
Старый 07.05.2014, 17:40   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
я вот начала а дальше не знаю что делать
Продолжайте писать код...

Код:
вот здесь красная строчка не пойму почему
Ошибка. Текст её в студию.
Человек_Борща вне форума Ответить с цитированием
Старый 07.05.2014, 17:59   #3
vasek123
Заблокирован
 
Регистрация: 21.11.2008
Сообщений: 4,986
Сообщение

Ты комментарии, сперва, если не можешь выложить весь исходник дал бы... Тут мало экстрасенсов а что за объект
Код:
sg
не каждый догадается...
vasek123 вне форума Ответить с цитированием
Старый 07.05.2014, 18:11   #4
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Да тут и догадываться не надо. Ошибка как на ладони.
Код:
current:array [0..51] of string[1];// одномерный массив. Что такое [1] кстати?
...
current[i,j]//Как одномерный массив вдруг стал двумерным?

Последний раз редактировалось doktor255; 07.05.2014 в 18:13.
doktor255 вне форума Ответить с цитированием
Старый 07.05.2014, 18:13   #5
Inna9
Новичок
Джуниор
 
Регистрация: 07.05.2014
Сообщений: 2
По умолчанию

Код:
var
  Form1: TForm1;
current:array [0..51] of string[1];
last:array [0..51] of string[1];
i,j,k:integer;
implementation

{$R *.dfm}
//включаем таймер
procedure TForm1.Button1Click(Sender: TObject);
begin
t.enabled:=true;
end;
//выключаем таймер
procedure TForm1.Button2Click(Sender: TObject);
begin
t.enabled:=false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
for i:=0 to 51 do
for j:=0 to 51 do
sg.Cells[i,j]:='';
end;
//ставим звездочки там где нужно
procedure TForm1.SGSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
sg.cells[ACol, ARow]:='*';
end;

procedure TForm1.TTimer(Sender: TObject);
begin
k:=0;
for i:=1 to 50 do
for j:=1 to 50 do
current[i,j]:=sg[j,i];//считываем инфр со StringGrida и заносим в массив
for i:=1 to 50 do
for j:=1 to 50 do
if current[i,j]=''  then //проверяем пусто ли рядом с поставленной звёздочкой
begin
  if current[i-1,j-1]<>'' then
  k:=k+1;   //считаем кол-во звездочек
    if current[i-1,j]<>'' then
    k:=k+1;
      if current[i-1,j+1]<>'' then
      k:=k+1;
        if current[i,j-1]<>'' then
        k:=k+1;
          if current[i,j]<>'' then
          k:=k+1;
            if current[i,j+1]<>'' then
            k:=k+1;
              if current[i+1,j-1]<>'' then
              k:=k+1;
                if current[i+1,j]<>'' then
                k:=k+1;
                  if current[i+1,j+1]<>'' then
                  k:=k+1;
                  if (k=2) or (k=3) then// djn nen dfot [p xt yflj gbcfnm
                

        end;
end;

end.
SG-ЭТО STRINGGRID



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.05.2014 в 23:05.
Inna9 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра "Жизнь" на Assembler kolo6awka Помощь студентам 0 22.12.2013 21:21
Игра "Жизнь" на C++, console application zoluxa Общие вопросы C/C++ 11 16.11.2012 17:47
Игра "Жизнь" Lucky777 Помощь студентам 0 30.11.2011 18:54
игра "Жизнь" Lucky777 Помощь студентам 0 14.11.2011 17:38
игра "жизнь" с++ Dashka13 Помощь студентам 0 29.05.2011 16:42