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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2008, 15:29   #1
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию Головоломка

Создала головоломку. есть две кнопки "Выход" и "Начать занова".
Подскажи пожалуйста, как сделать так, чтобы кнопка "Начать занова" работала, если вдруг в головоломке ход был сделан неправильно и игра остановилась?
Vali_T вне форума Ответить с цитированием
Старый 23.05.2008, 15:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если ход правильный то <Кнопка>.Enabled:=false
Если неправильный то <Кнопка>.Enabled:=True
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2008, 15:52   #3
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию

начать занова имеется в виду, поставить все имеющиеся фишки в изночальное положение и продолжить решать головоломку

т.е. мне надо описать процедуру
procedure TForm1.Button2Click(Sender: TObject);

Последний раз редактировалось Stilet; 23.05.2008 в 16:20.
Vali_T вне форума Ответить с цитированием
Старый 23.05.2008, 16:21   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поставить все имеющиеся фишки в изночальное положение
На предидущий ход? Ну а какой алгоритм твоей программы? Код в студию, тогда посмотрим.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.05.2008, 16:25   #5
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию

procedure TForm1.FormCreate(Sender: TObject);
begin
n:=4;
win:=24;
end;



procedure TForm1.BitBtn1Click(Sender: TObject);
var
i, c, k, ak: Integer;
begin
with Sender as TBitBtn do
begin
i := Tag div 2;
c := Tag mod 2;
k := n-i;
ak := Abs(k);
if ak<3 then
if ((c=0) and (k>0)) or ((c=1) and (k<0)) then
begin
Tag := Tag + 2*k;
Left := Left + 56*k;
n := i;
win := win - ak;
end;

end;



if win = 0 then
begin
Caption := 'Победа!';
Panel1.Color := clFuchsia;
Panel1.Enabled := False;
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

end.
Vali_T вне форума Ответить с цитированием
Старый 23.05.2008, 16:58   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Раньше все делали просто. Ставили метку (Label 1 и писали:
если что-то не так then goto 1;
Сейчас говорят метки не в моде.
puporev вне форума Ответить с цитированием
Старый 23.05.2008, 18:08   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ничего не понимаю, что это за головоломка? Если win = 0 то победа, а проигрыш когда? Что значит игра остановилась, она что зависает что-ли?
Если нет, то что тебе мешает активировать кнопку, либо поменять ей заголовок в тот момент когда игра "остановилась".
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 23.05.2008, 22:48   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

procedure TForm1.FormCreate(Sender: TObject);
begin
initGame;
end;

procedure TForm1.InitGame;
begin
n:=4;
win:=24;
end;

procedure Tform1.Button2Click;
begin
initGame;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.05.2008, 23:10   #9
Vali_T
Пользователь
 
Регистрация: 23.05.2008
Сообщений: 32
По умолчанию

evg_m не получается, или просто я чего не допонимаю
Помогите пжлуста(
Вложения
Тип файла: rar головоломка.rar (189.2 Кб, 18 просмотров)

Последний раз редактировалось Vali_T; 23.05.2008 в 23:21. Причина: дополнение
Vali_T вне форума Ответить с цитированием
Старый 24.05.2008, 12:30   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Vali_T, на будущее, когда ты даешь людям код, особенно с переменными из одной буквы, делай комментарии, достаточно описания переменных.
Сейчас сделаю, если будет по другому не обижайся, но расшифровывать эти буквы не очень хочется.

Вот держи, в алгоритм даже не вникал, просто сделал возврат в исходное состояние.
Вложения
Тип файла: rar головоломка.rar (13.4 Кб, 15 просмотров)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 24.05.2008 в 13:12.
mutabor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
головоломка =) Exo Microsoft Office Excel 4 14.04.2008 17:06
интересная головоломка Vereshagina Помощь студентам 9 11.03.2008 10:16
Головоломка! Selena SQL, базы данных 1 14.11.2007 11:43
Головоломка со строкой Garacio Общие вопросы Delphi 4 07.02.2007 01:38