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

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 »

Команду OPTION BASE 1 не нужно указывать много раз. Она действует с момента задания и до конца программы.

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 »

/
Attachments
image.jpg
image.jpg (128.65 KiB) Viewed 5613 times
Image

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 »

Mr. Kibernetik wrote:Команду OPTION BASE 1 не нужно указывать много раз. Она действует с момента задания и до конца программы.
Спасибо , исправил.
Image

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

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

Post by Alexxl »

Вот тоже пытаюсь разобраться как пользоваться массивом, тоже хочу лабиринт построить.
Можете показать, вот как бы например вот эта запись, если использовать массив выглядела?
Ну или подсказку пример дать. Не понимаю как вот эти координаты в массив записать.

GRAPHICS

DRAW RECT 0,0 to 100,100
DRAW RECT 0,100 to 100,200
DRAW RECT 0,200 to 100,300
DRAW RECT 100,0 to 200,100
DRAW RECT 100,100 to 200,200
DRAW RECT 100,200 to 200,300
DRAW RECT 200,0 to 300,100
DRAW RECT 200,100 to 300,200
DRAW RECT 200,200 to 300,300

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 »

Alexxl wrote:Вот тоже пытаюсь разобраться как пользоваться массивом, тоже хочу лабиринт построить.
Можете показать, вот как бы например вот эта запись, если использовать массив выглядела?
Ну или подсказку пример дать. Не понимаю как вот эти координаты в массив записать.

GRAPHICS

DRAW RECT 0,0 to 100,100
DRAW RECT 0,100 to 100,200
DRAW RECT 0,200 to 100,300

Code: Select all

'определим массивы
DIM x1(3),y1(3),x2(3),y2(3)
'данные
DATA 0,0,100,100
DATA 0,100,100,200
DATA 0,200,100,300
'считаем данные в массивы
FOR i=0 TO 2
  READ x1(i),y1(i),x2(i),y2(i)
NEXT i
'выполним рисование в цикле
GRAPHICS
FOR i=0 to 2
  DRAW RECT x1(i),y1(i) to x2(i),y2(i)
NEXT i

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

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

Post by Alexxl »

Спасибо.

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

Можно и без массива...
Координаты стенок(квадратов) вбивайте в DATA и считывайте командой READ . N-количество квадратов.

Code: Select all

OPTION IMAGE POS CENTRAL
Graphics
N=4
Data 50,50,200,50, 350,50, 500,50
For i=1 to n
Read a,b
Fill rect a,b size 30
Next i

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

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

Post by Alexxl »

Спасибо. Буду теперь осмысливать.

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 »

Вот , только стен не видит...

Code: Select all

'r'
''
graphics
SET TOOLBAR OFF

a1=screen_width() 'ширина экрана
a2=screen_height() 'высота экрана
if a2<a1 then 
a3=a2
end if
if a1<a2 then 
a3=a1
end if
GRAPHICS CLEAR 170/255,165/255,145/255
OPTION BASE (1)
d123=15


'r'
''
'лабиринт
m=0
i1=1
do

dim r(14)
data 1,1,1,1,1,1,1,1,1,1,1,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,0 TO ((a3/d123)+m),(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,0 TO ((a3/d123)+m),(a3/d123)
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,0,1,0,1,1,0,1,0,0,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123) TO ((a3/d123)+m),2*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123) TO ((a3/d123)+m),(a3/d123)*2
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,1,0,0,0,0,1,0,1,0,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*2 TO ((a3/d123)+m),3*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*2 TO ((a3/d123)+m),(a3/d123)*3
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,0,0,1,0,1,0,1,0,1,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*3 TO ((a3/d123)+m),4*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*3 TO ((a3/d123)+m),(a3/d123)*4
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,0,0,0,1,0,0,0,1,0,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*4 TO ((a3/d123)+m),5*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*4 TO ((a3/d123)+m),(a3/d123)*5
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,0,1,0,1,1,1,1,0,1,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*5 TO ((a3/d123)+m),6*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*5 TO ((a3/d123)+m),(a3/d123)*6
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,1,1,0,1,1,0,0,1,0,1,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*6 TO ((a3/d123)+m),7*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*6 TO ((a3/d123)+m),(a3/d123)*7
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,0,0,0,1,1,0,0,0,1,0,0,1,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*7 TO ((a3/d123)+m),8*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*7 TO ((a3/d123)+m),(a3/d123)*8
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,1,1,0,0,0,1,1,1,1,0,1,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*8 TO ((a3/d123)+m),9*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*8 TO ((a3/d123)+m),(a3/d123)*9
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,0,0,0,1,0,0,1,0,1,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*9 TO ((a3/d123)+m),10*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*9 TO ((a3/d123)+m),(a3/d123)*10
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,0,1,0,1,0,1,1,0,1,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*10 TO ((a3/d123)+m),11*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*10 TO ((a3/d123)+m),(a3/d123)*11
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,0,0,1,0,0,0,1,1,0,0,0,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*11 TO ((a3/d123)+m),12*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*11 TO ((a3/d123)+m),(a3/d123)*12
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,1,1,0,1,0,0,1,1,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*12 TO ((a3/d123)+m),13*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*12 TO ((a3/d123)+m),(a3/d123)*13
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,0,0,0,0,1,1,0,0,0,0,1,0,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*13 TO ((a3/d123)+m),14*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*13 TO ((a3/d123)+m),(a3/d123)*14
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

m=0
i1=1
do

dim r(14)
data 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1
for i=1 to 14
read r(i)

if r(i)=1 then
FILL COLOR 50/255,40/255,25/255
fill RECT m,(a3/d123)*14 TO ((a3/d123)+m),15*(a3/d123)
end if
if r(i)=0 then
fill color 250/255,240/255,235/255
fill rect m,(a3/d123)*14 TO ((a3/d123)+m),(a3/d123)*15
end if
i1=i1+1
m=m+(a3/d123)
until i1>2
next i

'r'
''
'игрок
'оброз
OPTION ANGLE DEGREES
sprite 1 begin (a3/d123),(a3/d123)
FILL COLOR 0,100/255,0
shadow on
FILL CIRCLE ((a3/d123)/2),((a3/d123)/2) size ((a3/d123)/2)
draw text "я" at ((a3/d123)/2),((a3/d123)/2)
sprite end
q1=(a3/d123)
q2=((a3/d123)*14)
SPRITE 1 AT q1,q2
SPRITE 1 SHOW

'джостик
if a2<a1 then
'справа
DRAW COLOR 0,0,0
DRAW SIZE 10
DRAW CIRCLE a1-4*(a3/d123),a2-4*(a3/d123) TO a1,a2
draw circle a1-2*(a3/d123),a2-2*(a3/d123) size (a3/d123)*2/3
BUTTON "d1" TEXT "выход" AT (a1-4*(a3/d123)),0 SIZE (a3/d123)*3,(a3/d123)*2

endif
if a2>a1 then
'снизу
DRAW COLOR 0,0,0
DRAW SIZE 10
DRAW CIRCLE a1-4*(a3/d123),a2-4*(a3/d123) to a1,a2
draw circle a1-2*(a3/d123),a2-2*(a3/d123) size (a3/d123)*2/3
BUTTON "d1" TEXT "выход" AT 3/2*(a3/d123),(a2-2*(a3/d123)) SIZE (a3/d123)*3,(a3/d123)*2

endif


'ход
q3=q1
q4=q2

loop:

Do
if  BUTTON_PRESSED ("d1")  then
SET TOOLBAR ON
endif

t1=x 
t2=y
get touch 0 as x,y
UNTIL x>t1 or x<t1 or y>t2 or y<t2

 if x>(a1-5/2*(a3/d123)) and  x<(a1-3/2*(a3/d123)) and y<(a2-5/2*(a3/d123)) then
sprite 1 at q3,(q4-(a3/d123))
endif

if x>(a1-5/2*(a3/d123)) and  x<(a1-3/2*(a3/d123)) and y>(a2-5/2*(a3/d123)) then
sprite 1 at q3,(q4+(a3/d123))
endif

if x<(a1-5/2*(a3/d123)) and y>(a2-5/2*(a3/d123)) and y<(a2-3/2*(a3/d123)) then
sprite 1 at (q3-(a3/d123)),q4
endif

if x>(a1-5/2*(a3/d123)) and y>(a2-5/2*(a3/d123)) and y<(a2-3/2*(a3/d123)) then
sprite 1 at (q3+(a3/d123)),q4
endif
pause .2
GET SPRITE 1 POS q3,q4

goto loop

Image

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 »

Хочу для игры сделать программу , где нужен рандом , но в команде проблема : очень часто появляются нули , где ошибка:

Code: Select all

RANDOMIZE
dim a(21)
k=rnd(21)
a(k)=k
k=rnd(21)
q1=a(k)
k=rnd(21)
q2=a(k)
k=rnd(21)
q3=a(k)
k=rnd(21)
q4=a(k)
k=rnd(21)
q5=a(k)
k=rnd(21)
q6=a(k)
k=rnd(21)
q7=a(k)
k=rnd(21)
q8=a(k)
k=rnd(21)
q9=a(k)
k=rnd(21)
q10=a(k)

print "числа " &q1 & "," & q2 & "," & q3 & "," & q4 & "," & q5 & "," & q6 & "," & q7 & "," & q8 & "," & q9 & "," & q10
print " среднее орефметическое " & (q1+q2+q3+q4+q5+q6+q7+q8+q9+q10)/10
Image

Post Reply