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

Alexxl
Posts: 26
Joined: Fri Jan 30, 2015 9:54 am
My devices: iPad 2 iPhone 5

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

Post by Alexxl »

В условиях задачи не было такого условия, обозначить "вход". Поэтому он у меня генерируется каждый раз в случайном месте 8-) так же как и выход.

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

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

Post by MARK99 »

Лабиринт 2

Code: Select all

INPUT "уровень сложности":d
input "скорость появления":g
d=d+50
graphics
x1=SCREEN_WIDTH ()
y1=SCREEN_HEIGHT ()
randomize
option base 1

GRAPHICS CLEAR 0,0,0
if x1>y1 then
p=y1
a1=y1
end if
if x1<y1 then
p=x1
a1=x1
end if
p=p/(d+2)
x=p
y=p

dim a(d,d)
for q=1 to d
for w=1 to d
a(q,w)=rnd(4)
if a(q,w)=0 then
fill color 0,0,0
fill rect x,y to x+p,y+2*p
endif
if a(q,w)=1 then
fill color 1,1,1
fill rect x,y to x+3*p,y+p
endif
if a(q,w)=3 then
fill color 0,0,0
fill rect x,y to x+2*p,y+p
endif
if a(q,w)=4 then
fill color 1,1,1
fill rect x,y to x+p,y+3*p
endif
pause g
x+=p
next w
x=p
y+=p
next q
x=0
y=0


fill color 1,1,1
fill rect a1-p,0 to a1,a1
fill rect 0,0 to a1,p
fill rect 0,0 to p,a1
fill rect 0,a1-p to a1,a1
fill color 0,0,0
fill rect p,p to 2*p,p*8
fill rect a1-p,a1-p to a1-2*p,a1-p*8


fill color 0,.5,0
fill rect 0,0 to p*4,p*4
fill color .5,0,0
fill rect p*(d+2)-p*4,p*(d+2)-p*4 to p*(d+2),p*(d+2)
fill color 0,0,0
fill rect a1,0 to a1+p*2,a1
Image

User avatar
atikin
Posts: 77
Joined: Fri Sep 12, 2014 6:54 pm
My devices: iPad air, iPhone 4S
Location: Санкт-Петербург | Saint-Petersburg
Flag: Russia

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

Post by atikin »

При помощи этого урока я понял как хранить логин/пароль :D
_____________________________________________________________________________
Как сделать движок для виз. новелл за три дня в smart BASIC (часть 1)

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

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

Post by Tantrixx »

Здравствуйте.
Посмотрите пожалуйста мой лабиринт. Что можно улучшить или подправить. И подскажите пожалуйста, я не всё в этой теме понял. Например если пишут L(a,s)=rnd(2) как это работает? Или l(a,s)=a*s Я не полностью тему понял, хоть и экспериментировал по разному. Спасибо.


graphics
option angle degrees
draw size 5
DRAW LINECAP ROUND

data 10,80,20,25, -150,-180,40,130,110,55,0,-15, 70,-140,-155, 85,-50,-60,100,170,160,115,11,3,130,-63,-70,145,-173,-180


for i=1 to 10


read z,a,b



draw arc 150,262,z,a,b

next i

DIM x1(9),y1(9),x2(9),y2(9)

data 150,117,150,132
data 280,262,265,262
data 35,262,50,262
data 150,362,150,347
data 150,177,150,192
data 80,262,95,262
data 150,302,150,317
data 150,237,150,222
data 150,272,150,287

for i=o to 8
READ x1(i),y1(i),x2(i),y2(i)
draw line x1(i),y1(i) to x2(i),y2(i)
next i

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 »

Tantrixx wrote:если пишут L(a,s)=rnd(2) как это работает?
Элемент двумерного массива L с индексами a и s равен случайному числу 0 или 1.

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

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

Post by Tantrixx »

Mr. Kibernetik wrote:
Tantrixx wrote:если пишут L(a,s)=rnd(2) как это работает?
Элемент двумерного массива L с индексами a и s равен случайному числу 0 или 1.
Спасибо за ответ. Это я понял, не понял, как это можно использовать. То есть если l(10,25)=2 что мне это даёт. Спасибо.

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 Фант »

Посмотри как это работает

Code: Select all

GRAPHICS
RANDOMIZE
OPTION BASE 1
OPTION TEXT POS CENTRAL
REFRESH OFF
maxx=SCREEN_WIDTH()
maxy=SCREEN_HEIGHT()
REM количество клеток по ширине (w) экрана и по высоте (h) и их размер по ширине (xx) по высоте (yy)
w=10
h=6
xx=maxx/w
yy=maxy/6
REM создаем массив, рисуем клетки на экране и заполняем случайными 0 или 1 из массива
DIM mas(h,w)
FOR i=1 TO h
FOR i1=1 TO w
mas(i,i1)=RND(2)
x=i1*xx-xx/2
y=i*yy-yy/2
DRAW RECT  X,Y SIZE xx/2,yy/2
DRAW TEXT mas(i,i1) AT x,y
NEXT i1
NEXT i
REFRESH

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

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

Post by Tantrixx »

Спасибо, буду разбираться. Я ещё не понял, для чего dim писать где то надо, а где то нет, но массив подразумевается. Я в лабиринте когда писал программу, в первой части без dim массив писал, хотя и с ним пробовал, не получилось, а во второй части программы с dim, но я там с образца взял, и получилось.

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 Фант »

Если в массиве значений 10 и меньше тогда задавать не обязательно его-он создается автоматом, а если больше 10 то обязательно надо прописывать его командой dim

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 Фант »

Я всегда стараюсь использовать команду dim. Это очень удобно. К примеру не надо обнулять массив-достаточно массив создать заново этой командой. Также бывает не удобно создавать массив автоматом если надо его отсортировать, так как в автоматически созданном массиве всегда присутствует 10 значений и если вы используете из этих значений всего лишь к примеру 4 или 5, то остальные значения по умолчанию равны 0 и при сортировке могут дать не верный результат!

Post Reply