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

Post Reply
User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

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

Post 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
Постройте на экране лабиринт.

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

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

Post by Фант »

Очень нужный урок! :ugeek:
Без массивов никуда...

Dedjto
Posts: 32
Joined: Wed Oct 01, 2014 5:04 am
My devices: IPad , iPhone, iPod, Mac mini
Location: Россия

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

Post by Dedjto »

Эх, времени нет серьезно обдумать, как сделать. Еще подсказали бы хоть с чего начать, было бы вообще хорошо. Хотя не надо. :lol: Интересно самой додуматься. Вроде, наметки уже есть... ;)

Dedjto
Posts: 32
Joined: Wed Oct 01, 2014 5:04 am
My devices: IPad , iPhone, iPod, Mac mini
Location: Россия

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

Post by Dedjto »

Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье :lol: ?

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

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

Post by Mr. Kibernetik »

Dedjto wrote:Подскажите, я хоть в правильном направлении двигаюсь: надо создать функцию, двумерный массив, спрайт, использовать команду data, все это соединить и будет мне счастье :lol: ?
Способов может быть много, то есть нет одного правильного пути решения.
Самое главное - решить каким вы видите лабиринт и придумать алгоритм построения такого лабиринта. Это уже само по себе - отдельная тема для обсуждения.
При построении лабиринта можно хранить в двумерном массиве, как в таблице, сам лабиринт - чтобы знать где уже построены стены, а где - пустое место или проход.
А при построении стен можно сразу графическими командами рисовать их на экране.

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

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

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

Post by Фант »

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

Для начала жду оптимальный алгоритм по созданию лабиринта и его решение!
Attachments
image.jpg
image.jpg (1.8 MiB) Viewed 7246 times

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

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

Post by Mr. Kibernetik »

Учебный лабиринт и готовая игровая программа - это совершенно разные вещи :ugeek:

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

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

Post by Фант »

Mr. Kibernetik wrote:Учебный лабиринт и готовая игровая программа - это совершенно разные вещи :ugeek:
В свое время я создал кнопочный список покупок абсолютно не понимая что такое массив и что с ним делать :lol:
Но это уже не важно. У новых пользователей сейчас есть шикарная возможность вникнуть в азы программирования с помощью уроков-у меня этой возможности не было :!: и это просто прекрасно!

Dedjto
Posts: 32
Joined: Wed Oct 01, 2014 5:04 am
My devices: IPad , iPhone, iPod, Mac mini
Location: Россия

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

Post by Dedjto »

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

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

Dedjto
Posts: 32
Joined: Wed Oct 01, 2014 5:04 am
My devices: IPad , iPhone, iPod, Mac mini
Location: Россия

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

Post by Dedjto »

Фант wrote: Для начала жду оптимальный алгоритм по созданию лабиринта и его решение!
Я до этого еще не доросла... "Учиться, учиться и еще раз учиться!" (с)

Post Reply