IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Пробел по Паскалевски?
K Y S K A
сообщение 9.12.2005 13:52
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Женский
Реальное имя: Оля

Репутация: -  -1  +


Как задать ридкэй пробел???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.12.2005 13:54
Сообщение #2


Гость






Что значит "задать"?
Проверить, вернула ли ReadKey пробел? Или ждать до нажатия пробела?
 К началу страницы 
+ Ответить 
K Y S K A
сообщение 9.12.2005 13:59
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Женский
Реальное имя: Оля

Репутация: -  -1  +


не ту меня програ считывает клавишу, ьесли на верх, то одно происходит, если вниз, то другое, а если пробел , то должно произойти третье, но я забыла, как пробел будет unsure.gif unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.12.2005 14:02
Сообщение #4


Гость






#32
{ или просто }
' '
 К началу страницы 
+ Ответить 
K Y S K A
сообщение 9.12.2005 14:10
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Женский
Реальное имя: Оля

Репутация: -  -1  +


Код
program igra;
uses crt;
const
left  = #75;
right = #77;
up    = #72;
down = #80;

var
x, y, b, i, g, f,d: integer;
c: char;
mineXe:array [1..100] of integer;
mineYe: array [1..100] of integer;
procedure net;
begin
    for i:= 1 to 10 do
     if (x=minexe[i]) and ( y=mineye[i]-1)or ((x=minexe[i]-2) and ( y=mineye[i]-1))  then begin
  textcolor(lightred);
  gotoxy(35,3); writeln('Mine was deleted!!!');
  readkey;
  clrsrc;
  minexe[i]:=0;
  mineye[i]:=0;
  end;
end;
procedure show_man;
begin
textcolor(yellow);
gotoxy(x, y+0); write(' O');
gotoxy(x, y+1); write('XXX');
gotoxy(x, y+2); write(' X');
gotoxy(x, y+3); write('X X');
end;

procedure fill;
begin
randomize;
for i:= 1 to 10 do begin
minexe[i]:=random(50);
mineye[i]:=random(50);
end;
end;

procedure boom;
begin
for i:=1 to 10 do begin
textcolor(red);
gotoxy(minexe[i], mineye[i]); write('@');
end;
end;
procedure min;
begin
for i:= 1 to 10 do begin
  if (x=minexe[i]) and ( y=mineye[i]-3)or ((x=minexe[i]-2) and ( y=mineye[i]-3))  then begin
  clrscr;
  textcolor(lightred);
  gotoxy(35,3); writeln('You are dead!!!');
  textcolor(lightgray);
     readkey; halt;
  end;
end;

end;


begin
clrscr;
gotoxy(35,3);  writeln('Choose level:');
gotoxy(35,4);  writeln('1. Legko');
gotoxy(35,5);  writeln('2. Slozno');
read(d);
case d of
1: d:=150;
2: d:=50;
end;
b := 0;
x :=5; y :=20;
fill;
show_man;
boom; min;

repeat
  c:=readkey;
  case c of

    #0:
    case readkey of
left : dec(x);
right: inc(x);
up   : dec(y);
down : inc(y);
' ': net;
    end;

  end;

  clrscr;
  show_man;
  boom; min;
  b:=b+1;

until b=d;
readkey;
end.

не могу понять, почему не работает, она должна при подводе руки к мине и нажатии пробела должна удалять мину, а она этого не делает???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 9.12.2005 15:16
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


надо вынести обработку пробела, так как у курсорных клавиш код двойной, сначала #0, а затем #код_клавиши

c:=readkey;
case c of
#32 : net;
#0:
case readkey of
left : dec(x);
right: inc(x);
up : dec(y);
down : inc(y);
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
K Y S K A
сообщение 9.12.2005 15:18
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Женский
Реальное имя: Оля

Репутация: -  -1  +


Ага спасибо, теперь работает!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
K Y S K A
сообщение 9.12.2005 17:41
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 95
Пол: Женский
Реальное имя: Оля

Репутация: -  -1  +


а КАК shIFT, CTRL, ALT, ENTER, F1 ПО ПАСКАЛЕВСКИ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.12.2005 17:51
Сообщение #9


Гость






Enter = #13
F1 = #0 + #59

А вот остальные - это "регистровые" клавиши, тут другой подход нужен...
Смотри здесь: http://forum.pascalnet.ru/index.php?showt...indpost&p=31199
 К началу страницы 
+ Ответить 
APAL
сообщение 9.12.2005 23:43
Сообщение #10


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Код

Var
  KeyFlag : Byte absolute $0:$417;

{ Check Alt:  AltKeyPressed:=(KeyFlag and $08)     }
{   keyflag:    7 6 5 4 3 2 1 0                    }
{               і і і і і і і АД RightShift  $01   }
{               і і і і і і АДДД LeftShift   $02   }
{               і і і і і АДДДДД Ctrl        $04   }
{               і і і і АДДДДДДД Alt         $08   }
{               і і і АДДДДДДДДД ScrollLock  $10   }
{               і і АДДДДДДДДДДД NumLock     $20   }
{               і АДДДДДДДДДДДДД CapsLock    $40   }
{               АДДДДДДДДДДДДДДД InsLock     $80   }


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Alex7
сообщение 10.12.2005 18:53
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


APAL , Это чо такое?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.12.2005 19:02
Сообщение #12


Гость






Alex7, это распределение битов в байте, расположенном по адресу $0:$417, с помощью которого контролируются нажатия Регистровых кнопок...
 К началу страницы 
+ Ответить 
Alex7
сообщение 10.12.2005 20:01
Сообщение #13


Пионер
**

Группа: Пользователи
Сообщений: 85
Пол: Мужской

Репутация: -  0  +


А можно чуть подробней рассказать, или сказать где прочитать про дресс $0:$417
cool.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.12.2005 20:09
Сообщение #14


Гость






Наверху есть ссылка...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 10:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"