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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 19:54   #31
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Приложите исходник.
И в двух словах скажите, что вы изменили (чтоб долго не разбираться)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 20:22   #32
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

HANOY.rar
Тело программы (игровая часть) впихнул в процедуру.
В теле оставил то, что Вы сказали. Вообщем-то больше ничего не менял.
Забыл сказать, ещё я в окне выбора количества дисков переделал фразы из writeln в outtextxy , т.к. они не были видны. Но остальные outtextxy из процедуры disk не трогал.

Последний раз редактировалось Djels; 27.05.2009 в 20:25.
Djels вне форума Ответить с цитированием
Старый 27.05.2009, 20:44   #33
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Все из-за процедуры print_menu. Там изменяется метод выравнивания текста.
В теле программы перед case'ом поставьте:
Код:
   settextjustify(0,0);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 22:30   #34
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

Sazary - да вы монстр программирования)) Почти всё идеально. Только не подскажете, что написать в процедуре выхода, чтобы программа выполнив её - выходила.
И вот у меня три пункта меню, как сделать , чтобы зайдя например в второй пункт (HELP) из него можно было бы выйти обратно, в главное меню. Заранее Огромное спасибо!)
Djels вне форума Ответить с цитированием
Старый 27.05.2009, 22:41   #35
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Djels
И вот у меня три пункта меню, как сделать , чтобы зайдя например в второй пункт (HELP) из него можно было бы выйти обратно, в главное меню.
В теле программы измените цикл:
Код:
repeat
 print_menu(punkt);
 key:=readkey;
 if ord(key)=0 then
   begin
    key:=readkey;
    if ord (key)=72 then
      if punkt=1 then punkt:=kolvo_punkt else dec(punkt);
    if ord (key)=80 then
      if punkt=kolvo_punkt then punkt:=1 else inc(punKt);
    end;
   if ord(key)=13 then
  settextjustify(0,0);
     case punkt of
          1 : NewGame;
          2  : // тут процедура для хэлпа
          end;
  // и остальное

  if punkt = 3 then break;  // если выбран 3-й пункт, то выходим из цикла.
   untiL(ORD(KEY)=27);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 23:31   #36
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

хм... изменил... вот:
Код:
BEGIN
grdriver:=detect ;
initgraph(grdriver,grmode,'c:/bp/bgi');
punkt:=1;
clrscr;
repeat
 print_menu(punkt);
 key:=readkey;
 if ord(key)=0 then
   begin
    key:=readkey;
    if ord (key)=72 then
      if punkt=1 then punkt:=kolvo_punkt else dec(punkt);
    if ord (key)=80 then
      if punkt=kolvo_punkt then punkt:=1 else inc(punKt);
    end;
         if ord(key)=13 then
          settextjustify(0,0);
        case punkt of
          1 : NewGame;
          2 : Help;
          end;
   if punkt = 3 then break;
   until(ORD(KEY)=27);

readln;
closegraph;
end.
Терь при нажатии стрелки вниз меню увеличивается, потом ещё раз жмем оно вообще пропадает. вот(
Djels вне форума Ответить с цитированием
Старый 27.05.2009, 23:47   #37
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну неужели сами не могли ошибку найти? Так исправьте:
Код:
if key=#13 then
  begin
  settextjustify(0,0);
     case punkt of
          1 : NewGame;
          end;
          end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 23:52   #38
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

Нет, вот именно это я уже нашел.
Смотрите, сейчас получается, что до пункта Exit курсор не идёт.
В Help войти нельзя, он что-то тупит.
На всякий случай:
Game_Beta.rar
Djels вне форума Ответить с цитированием
Старый 28.05.2009, 00:01   #39
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
repeat
 print_menu(punkt);
 key:=readkey;
 if ord(key)=0 then
   begin
    key:=readkey;
    if ord (key)=72 then
      if punkt=1 then punkt:=kolvo_punkt else dec(punkt);
    if ord (key)=80 then
      if punkt=kolvo_punkt then punkt:=1 else inc(punKt);
    end;
 if key=#13 then
  begin
  settextjustify(0,0);
     case punkt of
          1 : NewGame;
          end;
          end;
untiL(ORD(KEY)=13);
У меня все доходит.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.05.2009, 00:10   #40
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

Sazary, в таком случае да, доходит, но нужно же прикрутить к EXIT выход из игры. И Чтобы из Help и процесса игры можно было бы выходить в главное меню. Крутил-крутил... никак не хочет.. Если с этим разобраться, всё будет идеально... пожалуйста помогите, очень нужно.
Djels вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню Dem6 Паскаль, Turbo Pascal, PascalABC.NET 3 10.04.2009 16:43
Для доступа к пунктам главного меню клавиши ALT + подчеркнутая буква меню в офис 2007? Окоча Юра Microsoft Office Word 1 24.02.2009 12:29
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20
Меню Witaliy Общие вопросы Delphi 4 27.04.2008 22:45
МЕНЮ Delpher HTML и CSS 4 25.12.2007 15:37