Страница 3 из 3

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

Добавлено: 24 апр 2007, 16:06
somewhere
&quot писал(а):подскажи пожалуйста где и как это лучше оформить
примерно вот так

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

Добавлено: 25 апр 2007, 17:56
Alex_Burn
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);

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

Заранее спасибо!

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

Добавлено: 26 апр 2007, 09:05
somewhere
&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'ом, но флаг того, что это расширенная клавиша все-равно будет необходим.