Для отладки программы в её тексте мы заполнили 7 клеток подряд единицей, можно было бы и дале так заполнять массив вручную, в тексте программы. Но было бы хорошо сделать редактор - расстановку клеток жизни на поле,например мышью.
Команды работы с мышью указаны в уроках 35, 36.
Но как по экранным координатам занести значения в массив? Точно так же как и при выводе массива-жизни на экран(расстановке кружочков, клеток жизнь).. только направив конвертацию в обратную сторону.
if life(x,y)=1 then circle(2*R*x+K,2*R*y+K),R*0.7,2:paint(2*R*x+K,2*R*y+K),2,2
В программе то что выдает GetMouse я обозначил через mx,my
Решив уравнение mx=2Rx+K найдём x=(mx-K)/2/R, возьмём целую часть... x=int((mx-K)/2/R)
Do
mr = GetMouse (mx, my, , mb)
If mr = 0 Then
If mb And 1 Then
x=int((mx-K)/2/R)
y=int((my-K)/2/R)
if lifenew(x,y)=1 then
lifenew(x,y)=0
paint(2*R*x+K,2*R*y+K),0,0
circle(2*R*x+K,2*R*y+K),R*0.7,0
else
lifenew(x,y)=1
circle(2*R*x+K,2*R*y+K),R*0.7,2
paint(2*R*x+K,2*R*y+K),2,2
End IF
End If
End If
loop while asc(inkey())<>27 and asc(inkey())<>32
Стоит немного улучшить программу, т.к. при установке клетки она неоднокрано устанавливается и снимается. Добавим условие чтобы в обном и том же месте не устанавливалась/не снималась клетка.
Do
mr = GetMouse (mx, my, , mb)
If mr = 0 Then
If mb And 1 and (mx<>mxo or my<>myo or mb<>mbo) Then
x=int((mx-K)/2/R)
y=int((my-K)/2/R)
if lifenew(x,y)=1 then
lifenew(x,y)=0
paint(2*R*x+K,2*R*y+K),0,0
circle(2*R*x+K,2*R*y+K),R*0.7,0
else
lifenew(x,y)=1
circle(2*R*x+K,2*R*y+K),R*0.7,2
paint(2*R*x+K,2*R*y+K),2,2
End IF
mxo=mx:myo=my:mbo=mb
End If
End If
loop while asc(inkey())<>27 and asc(inkey())<>32
@sergiy, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
cats, aim, ianboil, analise, francisgrey, strecoza, mishka, sergiy, vako, rbrown, gildar, max-max, kanenakat, oleg257, zoss, midnight, dimarss, kilobucks, ohlamoon, rusalka, dany2323, maksina, zlody, dr-boo, volv, vasilisapor2, nefer, borodaus, turkish-r, renat242, markvial, status7, gryph0n, voltash, ladynazgool, decha, snaryaga, rubin, francesco, exan, retoldname, stranniksenya, boltyn, alikssandra, gapel, polyakov, acidgarry, borisss, candy777, optimist, tatyanamishenko, yurchello, dayver, bammbuss, seagull15, manavendra, ondantr, vladsm, mirgais, varja, prifix, mp42b, abloud, dignityinside, process, chugoi, nikulinsb, tulencha, nikitosuna, izbushka, astramar, propoker, cryptovisitor, zelivsky, html, vredinka2345, benken, kash47, carpe-diem, ezavarov, makcl, marina-spring, azarovskiy, funt33, samael27, kalter, mister-omortson, nightinga1e, apnigrich, siddxa, cryptobandera, doublingseason, necrogenesis, photofreediver, olgablinova, maryatekun, lologom, anykeycheg, prezza, yroslav94, akva22, tyi-ra, mjataura, elcpa, dobrotanya, boliwar, veta-less, irkinmick, svetozarhobbot, archual, automedia, alexxela, burger-knig, zirodin, cryptenthusiast, veterperemen, flint, charisma, alte
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
Сюда приплывал Моби Дик