программа не реагирует на кнопки

Предыдущая тема Следующая тема Перейти вниз

программа не реагирует на кнопки

Сообщение  Ron в Вт Янв 06, 2009 3:51 pm

В общем решил программером я стать внезапно. Сразу скажу полный ноль кроме пары уроков бейскика в далекие школьные годы (это я к тому что если вопрос тупо звучит то это по тупости а не что б народ доставать)
Начал разбирать я темы с учебника тутошнего.
В теме "select case или выбор одного из множества действий" набил код оттуда же - прога запускается но на кнопки не реагирует. Таким образом застрял в самом начале пути... Что может быть?


Код:

' выводим на экран задание
print "отгадайте загадку!"
print "зимой и летом одним цветом"
print "1 снег"
print "2 попугай"
print "3 нос учителя"
print "4 ёлка"
print "Если вы не знаете, нажмите кнопку esc"


' строковая переменная, для символа с клавиатуры
dim k as string

do ' большая петля, в которой мы будем находиться пока загадка не будет решена

' петля, где мы ждём нажатия какой-нибудь кнопки
do
sleep
k = inkey$
loop while k <> ""


' в зависимости от того, какая клавиша была нажата, выводим различные сообщения
select case k
case "1" ' поскольку k у нас строковая, то и сравнивать нужно со строками
print "снега летом не бывает"

case "2" ' второй вариант
print "автор загадки предполагал, что о таких зверюшках вы никогда не слышали"

case "3" ' вариант 3
print "нужно быть вежливыми, и не тыкать пальцем в недостатки других"

case "4" ' правильный вариант
print "Правильно! Возьми с полки пирожок и скинь его мне на эл. почту"

exit do ' выходим из большой петли

case chr$(27) ' клавиша эскейп имеет код 27, который мы не можем просто так написать
print "Ну что так? А вобщем твоё дело, игра закончена"

case else
print "ну что ты не можеш попасть по нужным кнопкам?"

end select

loop ' конец большой петли

print "спасибо за игру!"
sleep

Ron

Сообщения : 11
Дата регистрации : 2009-01-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: программа не реагирует на кнопки

Сообщение  Gena в Вт Янв 06, 2009 3:59 pm

Значет це так... (с) Глеб Жиглов
1. Изменить
Код:
loop while k <> ""
на
Код:
loop while k = ""
2. Изменить
Код:
print "Ну что так? А вобщем твоё дело, игра закончена"
на
Код:
print "Ну что так? А вобщем твоё дело, игра закончена":SLEEP:END
santa

Gena

Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 23
Откуда : Москва

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: программа не реагирует на кнопки

Сообщение  Ron в Вт Янв 06, 2009 4:43 pm

Спасиб за помощь. Помогло. А можно еще? Может тут открыть раздел для суперновичков? Smile
Я так понимал что loop while k = "" значит петля пока к равно любой кнопке. А выходит что это - петля закончится как только к будет равно любой кнопке. Все верно? ну эт для полнейшей ясности так сказать.

Ron

Сообщения : 11
Дата регистрации : 2009-01-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: программа не реагирует на кнопки

Сообщение  Eric-S в Вт Янв 06, 2009 5:14 pm

do: loop while (условие)

Пока условие верно (не равно 0), то петля будет замкнута.
Когда значение измениться, то петля будет разорвана.

do: loop while 1
всегда замкнута

do: loop while 0
всегда разорвана

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: программа не реагирует на кнопки

Сообщение  Ron в Вт Янв 06, 2009 5:33 pm

Раз уж я не врубился окончательно, давайте разберемся:
1 "" - обозначает любая кнопка?
если так то второе
2 "Пока условие верно (не равно 0), то петля будет замкнута"
loop while k = "" - с пуска программы К не присвоено никакого значения - выходит тогда петля должна прерваться? Тогда получается по логике что loop while k <> "" - то есть петля работает пока К не равна любой кнопке.
3. если 1 и 2 правильно то почему работает со знаком равно а с неравно не работает?

Ron

Сообщения : 11
Дата регистрации : 2009-01-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: программа не реагирует на кнопки

Сообщение  Eric-S в Вт Янв 06, 2009 5:55 pm

"" это никакая кнопка не нажата, тоесть пусто.
do: sleep: loop while inkey = ""
Пока не будет нажата хоть какая-то кнопка.

inkey просто спрашивает клавиатуру, что на ней нажато и возвращает этот символ.

Вот можете побаловаться.
Код:

dim k as string

do

do
sleep

' получаем клавишу
k = inkey


' петля пока ничего не нажато
' нажатие разрывает петлю
loop while k = ""

' печатаем на экране нажатую клавишу
print "'"; k; "'"

' петля пока k не равно клавише esc
loop while k <> chr(27)
sleep

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: программа не реагирует на кнопки

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения