Тема: FAQ по B3D
Показать сообщение отдельно
Старый 25.08.2007, 12:47   #2
avel
Бывалый
 
Аватар для avel
 
Регистрация: 11.10.2006
Сообщений: 737
Написано 131 полезных сообщений
(для 452 пользователей)
Re: FAQ по B3D

ПРОГРАММНАЯ ЛОГИКА И ОБЩИЕ ВОПРОСЫ

н: как сделать в программе выбор из нескольких вариантов?
avel:удобнее всего пользоваться структурой Select:
	Select переменная
		Case первое принимаемое значение
			выполняемые действия 
		...
		Case N-ное принимаемое значение
			выполняемые действия
		Default 
			действия, выполняемые по умолчанию
	End Select
н: как правильно проверять на совпадение несколько условий?
avel: воспользуйтесь AND'ом: IF условие1 And условие2 Then

н: как быстро поменять значение переменной-флага?
avel: m = Not m

н: как задать бесконечный цикл и выйти из него?
avel:
Repeat
...
If условие_выхода Then Exit
Forever

н: как изменить шаг в цикле?
avel: используй команду Step

н: как сделать, чтобы функция возвращала что-либо?
avel: в функции: Return что_возвращать
при вызове: куда_возвращать=имя_функции()

н: как переместиться в определенную часть программы?
avel: удобнее всего воспользоваться метками и командой Goto:
.имя_метки
...
Goto имя_метки

н: чем отличается Gosub от Goto?
avel: Gosub предполагает, что возможно будет возврат к предыдущей части программы с помощью команды Return

н: как перебирать все элементы типа?
avel: используй цикл:
for имя_элемента.имя_типа = Each имя_типа
...
Next

н: как создать\удалить элемент типа?
avel:
создать:
имя_элемента.имя_типа = New имя_типа
удалить:
Delete имя_элемента
не забудьте сначала удалить все объекты этого элемента командой FreeEntity

н: как создать массив типа и работать с ним?
avel:
1) создаем тип стандартным способом.
2) создаем массив: Dim имя_массива.имя_типа(кол-во_элементов)
3) создаем элементы типа: имя_массива(номер_элемента) = New имя_типа
4) обращаемся так: имя_массива(номер_элемента)\параметр_типа
параметр_типа - это то, что стоит после Field.

н: как подключить какой-либо файл *.bb к программе?
avel: используй команду Include "имя_файла.bb"

н: как перевести число в целочисленный тип?
avel: Int(число)

н: генератор случайных чисел выдает одни и теже значения. что делать?
avel: используй зависимость генерации от таймера, т. е. поставь вначале вот это: SeedRnd Millisecs()

н: как избежать ошибки при написании строковых значений в различных регистрах?
avel: используй команду Upper, она конвертирует все к верхнему регистру.

н: как выводить текст команды Print или Input в определенном месте?
avel: поставь перед выводом команду Locate x,y

н: условие KeyHit() срабатывает раньше, чем надо. почему?
avel: видимо надо использовать "очистку" нажатий клавиш: FlushKeys
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Yalenz (02.03.2009)