[pascal] Японские кроссворды

Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):подскажи пожалуйста где и как это лучше оформить
примерно вот так
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Alex_Burn
Сообщения: 147
Зарегистрирован: 13 апр 2007, 17:49
Контактная информация:

Somewhere! Я тебе очень благодарен за активную помощь! Изображение

Не могу описать словами как ты мне помог.

Изображение Изображение


И вообще отличный форум, много умных людей (by the way я тоже на программиста учусь).

Я надеюсь, что когда нибудь стану таким же профи, как ты


Изображение




Позволь спросить:

1. В % показано насколько решено правильно?

2. Для чего нужно сразу 2 переменные Ch0 и Ch1 ?

3. Можешь объяснить фрагмент:

If (Ch1 = 'H') then Dec(CursY);
If (Ch1 = 'P') then Inc(CursY);
If (Ch1 = 'K') then Dec(CursX);
If (Ch1 = 'M') then inc(CursX);

(Насколько я понимаю это фрагмент для управления перемещением курсора, но я не понимаю причем здесь буквы Н, Р, К, М) ?

Заранее спасибо!
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):1. В % показано насколько решено правильно?
Да, показан приблизительный общий процент правильных решений (расположений) клеток.
&quot писал(а):2. Для чего нужно сразу 2 переменные Ch0 и Ch1 ?
3. Можешь объяснить фрагмент:
Функции чтения MS-DOS: Input_Char (Readkey в Паскале) издревна предназначалась для чтения кодов нажатых клавиш. В древние времена клавиатуры были по-проще, стрелок не было, Home, PgUp, Ctrl, иногда Alt тоже не было. Единственные символы, которая воспринимала эта функция это те, что предназначились для редактирования. Предполагалось что чтение других клавиш прикладным программам не было нужно. Однако потом правила поменялись, в связи с прогрессом, но в качестве совместимости было принято для "расширеных" клавиш, вроде стрелок возвращать код #0, а при повторном вызове возвращать код расширенной клавиши. Так уж получилось, что код буквы "H" (#72) совпадает с кодом расширенной клавиши стрелки вверх. Единственное отличие, один из них "начинается с нуля". Отсюда и нужно две переменные Ch0,Ch1.
Ch0 - код основных клавиш
Ch1 - код расширенной клавиши, (в программе если расш. клавиша не нажата, то Ch1 = #0).
Можно справиться и с одним Char'ом, но флаг того, что это расширенная клавиша все-равно будет необходим.
It's a long way to the top if you wanna rock'n'roll
Ответить