Page 1 of 8

Программирование на smart BASIC. Урок 5

Posted: Sun Oct 05, 2014 12:57 pm
by Mr. Kibernetik
Урок 5 - Массивы

Кроме обычных переменных в smart BASIC могут использоваться массивы. Массив - это переменная, которая может хранить несколько значений. Доступ к каждому элементу массива осуществляется с помощью указания порядкового номера элемента. Например команда

Code: Select all

DIM M (100)
создает массив 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 Фант
Очень нужный урок! :ugeek:
Без массивов никуда...

Re: Программирование на smart BASIC. Урок 5

Posted: Mon Oct 06, 2014 12:45 pm
by Dedjto
Эх, времени нет серьезно обдумать, как сделать. Еще подсказали бы хоть с чего начать, было бы вообще хорошо. Хотя не надо. :lol: Интересно самой додуматься. Вроде, наметки уже есть... ;)

Re: Программирование на smart BASIC. Урок 5

Posted: Mon Oct 06, 2014 9:32 pm
by Dedjto
Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье :lol: ?

Re: Программирование на smart BASIC. Урок 5

Posted: Tue Oct 07, 2014 1:56 am
by Mr. Kibernetik
Dedjto wrote:Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье :lol: ?
Способов может быть много, то есть нет одного правильного пути решения.
Самое главное - решить каким вы видите лабиринт и придумать алгоритм построения такого лабиринта. Это уже само по себе - отдельная тема для обсуждения.
При построении лабиринта можно хранить в двумерном массиве, как в таблице, сам лабиринт - чтобы знать где уже построены стены, а где - пустое место или проход.
А при построении стен можно сразу графическими командами рисовать их на экране.

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

Re: Программирование на smart BASIC. Урок 5

Posted: Tue Oct 07, 2014 9:00 am
by Фант
Лабиринт-это не простая, но очень интересная тема :!: Лично у меня до создания подобной программы руки так и не дошли, хотя когда-то даже нарисовал заставку :D
Поэтому предлагаю всем начинающим разработчикам поучаствовать в создании полноценного приложения для smart Basic: игрушки лабиринт :D
Предлагаю сюжет:
В лабиринте один вход и выход. Главный герой:мышь. Задача: найти выход из лабиринта. При движении по лабиринту нужно собирать сыр. За найденный сыр даются очки.
Соответственно с каждым уровнем игры сложность лабиринта растет.
По моей первоначальной задумке сам лабиринт должен размещаться на нескольких экранах, управление мышкой кнопочное(вверх,вниз, вправо,влево). В любой момент можно посмотреть карту всего лабиринта.
Если у кого будут какие соображения-можете поделиться :D

Для начала жду оптимальный алгоритм по созданию лабиринта и его решение!

Re: Программирование на smart BASIC. Урок 5

Posted: Tue Oct 07, 2014 12:34 pm
by Mr. Kibernetik
Учебный лабиринт и готовая игровая программа - это совершенно разные вещи :ugeek:

Re: Программирование на smart BASIC. Урок 5

Posted: Tue Oct 07, 2014 12:48 pm
by Фант
Mr. Kibernetik wrote:Учебный лабиринт и готовая игровая программа - это совершенно разные вещи :ugeek:
В свое время я создал кнопочный список покупок абсолютно не понимая что такое массив и что с ним делать :lol:
Но это уже не важно. У новых пользователей сейчас есть шикарная возможность вникнуть в азы программирования с помощью уроков-у меня этой возможности не было :!: и это просто прекрасно!

Re: Программирование на smart BASIC. Урок 5

Posted: Tue Oct 07, 2014 7:09 pm
by Dedjto
Mr. Kibernetik wrote:
Dedjto wrote:Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье :lol: ?
Способов может быть много, то есть нет одного правильного пути решения.
Самое главное - решить каким вы видите лабиринт и придумать алгоритм построения такого лабиринта. Это уже само по себе - отдельная тема для обсуждения.
При построении лабиринта можно хранить в двумерном массиве, как в таблице, сам лабиринт - чтобы знать где уже построены стены, а где - пустое место или проход.
А при построении стен можно сразу графическими командами рисовать их на экране.

Таким образом здесь самое главное - придумать алгоритм, как будете строить сам лабиринт, каковы будут ваши действия.
Спасибо.

Re: Программирование на smart BASIC. Урок 5

Posted: Tue Oct 07, 2014 7:11 pm
by Dedjto
Фант wrote: Для начала жду оптимальный алгоритм по созданию лабиринта и его решение!
Я до этого еще не доросла... "Учиться, учиться и еще раз учиться!" (с)