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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 21:28   #61
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

Sazary, ладно, попробую что-нибудь придумать! Спасибо Огромнейшее!
Djels вне форума Ответить с цитированием
Старый 02.06.2009, 00:35   #62
Djels
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 36
По умолчанию

Sazary, один небольшой вопросик, вот количество ходов можно как-то вывести через outtextxy() ? просто ему переменная типа интежер не подходит, а если ставить стринг - понятно - не работает
Djels вне форума Ответить с цитированием
Старый 02.06.2009, 11:52   #63
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
вот количество ходов можно как-то вывести через outtextxy() ? просто ему переменная типа интежер не подходит, а если ставить стринг - понятно - не работает
Да. Вам поможет процедура преобразования Str.
Код:
Procedure Str(X [: width [: Decimals]]; var S: String)
X - преобразуемое число, S - строковая переменная, куда пишем результат
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

Sazary, ещё один вопрос, как сделать вывод на экран количества ходов во время игры? Я пробовал inc но что-то кривоватенько. Заранее спасибо!)
Djels вне форума Ответить с цитированием
Старый 03.06.2009, 18:42   #65
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Я пробовал inc
inc - инкремент. Он увеличивается аргумент. Как, интересно, вы пытались с помощью него вывести количество ходов? )

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

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

Sazary, Вроде вывод количества ходов сделал, кривовато , но работает, только теперь там цифры поверх друг друга ставятся - как исправить?

Второй вопрос, как сделать, чтобы ввод количества дисков был видел пользователю. не через Writeln, чтобы цифра была наверху не понятно где, А через outtextxy, чтобы посередине, чтобы можно было бы оформить.

Последнее, когда в игре проигрываешь, открывается YOU LOSE! , и там, раньше по нажатию Enter выходило в меню, а теперь выходит вообще. Не подскажете что можно исправить? просто там таймер приделан и из-за него немного криво эта процедура выходит.

HANOI.rar
Djels вне форума Ответить с цитированием
Старый 03.06.2009, 19:57   #67
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Про ходы:
объявите еще одну строковую переменную predhod и исправьте вывод хода вот так:
Код:
inc(CountHod);
    str(CountHod, hod);
    str(CountHod-1, predhod);
{    writeln('hodov ', Hod);   }
    setcolor(0);
    outtextxy(15,50,'hodov '+predhod);
    setcolor(15);
    outtextxy(15,50,'hodov '+Hod);
Цитата:
Второй вопрос, как сделать, чтобы ввод количества дисков был видел пользователю. не через Writeln, чтобы цифра была наверху не понятно где, А через outtextxy, чтобы посередине, чтобы можно было бы оформить.
Как-то не понял вопрос.

При проигрыше выходит, потому что вы везде используете одни и те же переменные. Либо в самой игре используйте локальную переменную для чтения кода клавиши, либо сразу после NewGame (в блоке case) меняйте значение KEY, т.к. оно у вас равно 27 (а это условие выхода).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

Sazary, спасибо!) что-то не додумался сам сделать))
А второй вопрос объясняю так:
Ввод количества дисков нужно оформить и сделать крупнее крупнее. Оформление я сделаю. А вот с остальным... Сама цифра должна выводится в середине экрана, ну или где-нибудь НЕ в левом верхнем углу. Цифра должна быть крупнее.
Приблизительно это, я думаю, вывести отдельной процедурой ввода.
Djels вне форума Ответить с цитированием
Старый 03.06.2009, 20:41   #69
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Djels
Цифра должна быть крупнее.
Ну, через SetTextStyle можно задать размер шрифта.
Цитата:
Сообщение от Djels
Сама цифра должна выводится в середине экрана, ну или где-нибудь НЕ в левом верхнем углу.
Ну а тут OutTextXY и getmaxx с getmaxy в помощь.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

Sazary, короче, вот что нужно: На экране крупно написано "введите количество дисков" снизу поле для ввода. Если я нажимаю на цифру, она соответственно должна появиться в поле. Если цифра неверная (за возможными пределами), то пишет ошибку. Цифру можно стереть.

То, что сейчас я имею реализовано криво. Т.к. переменная выводится через WriteLn(m), а это я не могу оформить как нужно и сдвинуть куда надо(нужен outtextxy).

+небольшой вопрос по ходам. В любом случае, если я нажму на стрелку вниз - количество прибавляется. То есть считывается не опускание диска , а нажатие. как это можно исправить?
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