Page 1 of 8
Программирование на smart BASIC. Урок 5
Posted: Sun Oct 05, 2014 12:57 pm
by Mr. Kibernetik
Урок 5 - Массивы
Кроме обычных переменных в smart BASIC могут использоваться массивы. Массив - это переменная, которая может хранить несколько значений. Доступ к каждому элементу массива осуществляется с помощью указания порядкового номера элемента. Например команда
создает массив M, который содержит 100 элементов. Доступ к элементам массива осуществляется путем указания в скобках номера индекса элемента массива. Номера индексов массива начинаются с 0, таким образом указанный выше массив M содержит элементы с индексами от 0 до 99.
Code: Select all
N = 12 'сколько всего будет элементов в массиве
DIM X (N) 'создадим массив
'заполним массив
FOR K = 0 TO N - 1
X (K) = K ^ 2
NEXT K
'прочитаем массив
FOR K = 0 TO N - 1
PRINT K; X (K)
NEXT K
Массивы могут быть одномерные, двумерные и трехмерные:
Code: Select all
DIM X (30) 'одномерный массив
DIM Y (20,30) 'двумерный массив
DIM Z (50,50,50) 'трехмерный массив
С помощью команды OPTION BASE 1 можно установить, чтобы номера индексов массива начинались не с 0, а с 1:
Code: Select all
OPTION BASE 1
DIM X (12) 'создадим массив
'заполним массив
FOR K = 1 TO 12
X (K) = K ^ 2
NEXT K
'прочитаем массив
FOR K = 1 TO 12
PRINT K; X (K)
NEXT K
ЗАДАЧА 6
Постройте на экране лабиринт.
Re: Программирование на smart BASIC. Урок 5
Posted: Sun Oct 05, 2014 1:46 pm
by Фант
Очень нужный урок!
Без массивов никуда...
Re: Программирование на smart BASIC. Урок 5
Posted: Mon Oct 06, 2014 12:45 pm
by Dedjto
Эх, времени нет серьезно обдумать, как сделать. Еще подсказали бы хоть с чего начать, было бы вообще хорошо. Хотя не надо.
Интересно самой додуматься. Вроде, наметки уже есть...
Re: Программирование на smart BASIC. Урок 5
Posted: Mon Oct 06, 2014 9:32 pm
by Dedjto
Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье
?
Re: Программирование на smart BASIC. Урок 5
Posted: Tue Oct 07, 2014 1:56 am
by Mr. Kibernetik
Dedjto wrote:Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье
?
Способов может быть много, то есть нет одного правильного пути решения.
Самое главное - решить каким вы видите лабиринт и придумать алгоритм построения такого лабиринта. Это уже само по себе - отдельная тема для обсуждения.
При построении лабиринта можно хранить в двумерном массиве, как в таблице, сам лабиринт - чтобы знать где уже построены стены, а где - пустое место или проход.
А при построении стен можно сразу графическими командами рисовать их на экране.
Таким образом здесь самое главное - придумать алгоритм, как будете строить сам лабиринт, каковы будут ваши действия.
Re: Программирование на smart BASIC. Урок 5
Posted: Tue Oct 07, 2014 9:00 am
by Фант
Лабиринт-это не простая, но очень интересная тема
Лично у меня до создания подобной программы руки так и не дошли, хотя когда-то даже нарисовал заставку
Поэтому предлагаю всем начинающим разработчикам поучаствовать в создании полноценного приложения для smart Basic: игрушки лабиринт
Предлагаю сюжет:
В лабиринте один вход и выход. Главный герой:мышь. Задача: найти выход из лабиринта. При движении по лабиринту нужно собирать сыр. За найденный сыр даются очки.
Соответственно с каждым уровнем игры сложность лабиринта растет.
По моей первоначальной задумке сам лабиринт должен размещаться на нескольких экранах, управление мышкой кнопочное(вверх,вниз, вправо,влево). В любой момент можно посмотреть карту всего лабиринта.
Если у кого будут какие соображения-можете поделиться
Для начала жду оптимальный алгоритм по созданию лабиринта и его решение!
Re: Программирование на smart BASIC. Урок 5
Posted: Tue Oct 07, 2014 12:34 pm
by Mr. Kibernetik
Учебный лабиринт и готовая игровая программа - это совершенно разные вещи
Re: Программирование на smart BASIC. Урок 5
Posted: Tue Oct 07, 2014 12:48 pm
by Фант
Mr. Kibernetik wrote:Учебный лабиринт и готовая игровая программа - это совершенно разные вещи
В свое время я создал кнопочный список покупок абсолютно не понимая что такое массив и что с ним делать
Но это уже не важно. У новых пользователей сейчас есть шикарная возможность вникнуть в азы программирования с помощью уроков-у меня этой возможности не было
и это просто прекрасно!
Re: Программирование на smart BASIC. Урок 5
Posted: Tue Oct 07, 2014 7:09 pm
by Dedjto
Mr. Kibernetik wrote:Dedjto wrote:Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье
?
Способов может быть много, то есть нет одного правильного пути решения.
Самое главное - решить каким вы видите лабиринт и придумать алгоритм построения такого лабиринта. Это уже само по себе - отдельная тема для обсуждения.
При построении лабиринта можно хранить в двумерном массиве, как в таблице, сам лабиринт - чтобы знать где уже построены стены, а где - пустое место или проход.
А при построении стен можно сразу графическими командами рисовать их на экране.
Таким образом здесь самое главное - придумать алгоритм, как будете строить сам лабиринт, каковы будут ваши действия.
Спасибо.
Re: Программирование на smart BASIC. Урок 5
Posted: Tue Oct 07, 2014 7:11 pm
by Dedjto
Фант wrote:
Для начала жду оптимальный алгоритм по созданию лабиринта и его решение!
Я до этого еще не доросла... "Учиться, учиться и еще раз учиться!" (с)