Вверх ↑
Этот топик читают: Гость
Ответов: 884
Рейтинг: 322
#1: 2026-06-02 16:29:14 ЛС | профиль | цитата
Ни как не могу сообразить, как сдвигаются фишки и заполняют пустые клетки.
https://disk.yandex.ru/i/ZEsQh_tOOSEs0A
карма: 1

0
Ответов: 9002
Рейтинг: 825
#2: 2026-06-02 20:13:04 ЛС | профиль | цитата
kamakama, так это не ваша игра? Нажать на одну фигурку, а потом на фигурку рядом (не по диагонали) и они меняются местами, в т.ч. и с пустой клеткой. три (потом две) в "ряд" исчезают.
В "Перевёртышах", когда остаются два номера не на своём месте, возможно их поменять, т.е. игра всегда имеет решение, правда алгоритм такого решения мне найти не удалось
карма: 19

0
Ответов: 884
Рейтинг: 322
#3: 2026-06-02 22:38:16 ЛС | профиль | цитата
Леонид, игрушка моя. Это штука называется три в ряд. Если совпадают три или более картинки то они изчезают и на их место сверху в том же порядке спускаются кубики и оставшееся место заполняются случайно.
Целый день просидел, а толку нет. Хотя что то в голове мелькает.
карма: 1

0
Ответов: 9002
Рейтинг: 825
#4: 2026-06-03 10:08:42 ЛС | профиль | цитата
kamakama, А-а, понятно, сразу не дошло
карма: 19

0
Ответов: 1120
Рейтинг: 224
#5: 2026-06-05 06:42:28 ЛС | профиль | цитата
kamakama писал(а):
Ни как не могу сообразить, как сдвигаются фишки и заполняют пустые клетки.

Собрал пример на GameEngine. Реализация алгоритма "осыпания" сделана на 3-х циклах.
Картинки фишек честно позаимствованы у тебя. Только я уменьшил всё в 2 раза, твоя форма не помещается у меня на экране.
Всё надо разархивировать в одну папку.
https://forum.hiasm.com/getfile/40639

Редактировалось 1 раз(а), последний 2026-06-06 07:01:30
карма: 20

0
Ответов: 884
Рейтинг: 322
#6: 2026-06-05 09:10:01 ЛС | профиль | цитата
Gunta, это я уже решил, правда не так изящно, но вариант рабочий.
Add(MultiElement,12895376,301,259)
{
}
BEGIN_SDK
Add(EditMulti,1708653,20,21)
{
EventCount=3
WorkCount=1
Width=1308
Height=494
VOffset=100
HOffset=1170
link(doWork1,4552525:doEvent1,[(61,127)(61,281)])
}
Add(Hub,7580019,651,40)
{
OutCount=3
link(onEvent1,6629949:doWork1,[(828,46)])
link(onEvent2,9784622:doLength,[(689,53)(689,60)])
link(onEvent3,14385666:doFor,[(680,60)(680,172)])
}
Add(Replace,1252,602,40)
{
SubStr="9"
link(onReplace,7580019:doEvent1,[])
}
Add(Length,9784622,714,54)
{
link(onLength,8683701:doOperation,[(757,60)(757,105)(694,105)(694,123)])
}
Add(For,14385666,714,166)
{
End=8
link(onEvent,332573:doRandom,[])
link(Start,8683701:Result,[])
}
Add(Random,332573,770,166)
{
Max=8
link(onRandom,6629949:doWork2,[])
}
Add(StrCatDelim,484713,868,194)
{
Point(doClear)
link(onStrCatDlm,12132912:doEvent1,[])
link(Str1,484713:Result,[(874,179)(855,179)(855,238)(874,238)])
}
Add(Math,8683701,714,117)
{
Op2=1
link(Op1,9784622:Result,[])
}
Add(HubEx,6629949,824,166)
{
Angle=1
link(onEvent,484713:doStrCatDlm,[(828,200)])
}
Add(Hub,12132912,914,194)
{
link(onEvent1,9092120:doLength,[(938,200)(938,223)])
link(onEvent2,9975257:doCompare,[])
}
Add(Length,9092120,949,217)
{
link(onLength,8895173:doCompare,[])
}
Add(If_else,8895173,1012,217)
{
Op2=Integer(64)
link(onTrue,484713:doClear,[(1061,223)(1061,270)(828,270)(828,207)])
}
Add(If_else,9975257,1068,201)
{
Op2=Integer(64)
link(onTrue,7434314:doEnum,[(1121,207)(1121,207)])
link(Op1,9092120:Result,[(1074,189)(997,189)(997,260)(955,260)])
}
Add(ArrayEnum,587201,126,142)
{
link(onItem,10510177:doEvent1,[])
link(onEndEnum,8680573:doEnum,[(178,155)(178,176)])
link(Array,395993:Var2,[])
}
Add(StrList,9994205,112,62)
{
Strings=#2:56|2:48|2:40|2:32|2:24|2:16|1:8|1:0|2:57|2:49|2:41|2:33|2:25|2:17|1:9|1:1|2:58|2:50|2:42|2:34|2:26|2:18|2:10|1:2|2:59|2:51|2:43|2:35|2:27|2:19|2:11|1:3|2:60|2:52|2:44|2:36|2:28|2:20|2:12|1:4|2:61|2:53|2:45|2:37|2:29|2:21|2:13|1:5|2:62|2:54|2:46|2:38|2:30|2:22|2:14|1:6|2:63|2:55|2:47|2:39|2:31|2:23|2:15|1:7|
}
Add(Hub,4552525,70,275)
{
OutCount=3
link(onEvent1,16283247:doClear,[(508,281)(508,94)])
link(onEvent2,839424:doClear,[(1188,288)(1188,214)])
link(onEvent3,587201:doEnum,[(98,295)(98,148)])
}
Add(StrCat,11023604,266,74)
{
Point(doClear)
link(onStrCat,3038098:doEvent1,[])
link(Str1,11023604:Result,[(272,57)(255,57)(255,116)(272,116)])
link(Str2,1786744:Var,[])
}
Add(GlobalVar,1786744,273,32)
{
Point(doName)
}
Add(Hub,10510177,194,142)
{
link(onEvent1,1786744:doName,[(226,148)(226,45)])
link(onEvent2,11023604:doStrCat,[(237,155)(237,80)])
}
Add(Hub,3038098,315,74)
{
link(onEvent1,15666108:doLength,[(343,80)(343,103)])
link(onEvent2,1089744:doCompare,[])
}
Add(Length,15666108,357,97)
{
link(onLength,14621841:doCompare,[])
}
Add(If_else,14621841,413,97)
{
Op2=Integer(8)
link(onTrue,11023604:doClear,[(456,103)(456,155)(248,155)(248,87)])
}
Add(If_else,1089744,462,81)
{
Op2=Integer(8)
link(onTrue,16283247:doAdd,[])
link(Op1,15666108:Result,[(468,71)(399,71)(399,141)(363,141)])
}
Add(StrList,16283247,525,81)
{
}
Add(ArrayEnum,8680573,539,170)
{
link(onItem,1252:doReplace,[(587,176)(587,46)])
link(onEndEnum,13851374:doFor,[(588,183)(588,311)(76,311)(76,454)])
link(Array,16283247:Array,[])
}
Add(StrList,839424,1217,201)
{
}
Add(Str_Enum,7434314,1127,201)
{
Delimiter=""
link(onEnum,839424:doAdd,[(1188,207)(1188,207)])
}
Add(FormatStr,15910462,238,420)
{
Mask="%1;%2"
link(onFString,3259609:doSplit,[])
link(Str1,3090886:Item,[(244,397)(202,397)])
link(Str2,4606192:Item,[(251,398)(251,398)])
}
Add(For,13851374,91,448)
{
End=63
link(onEvent,10755462:doEvent1,[(139,454)(139,328)])
link(onStop,13287542:doTimer,[])
}
Add(ArrayRW,3090886,196,322)
{
link(Array,395993:Var3,[(202,117)])
}
Add(ArrayRW,4606192,245,357)
{
link(Array,839424:Array,[(251,331)(1237,331)])
}
Add(Hub,10755462,154,322)
{
OutCount=3
link(onEvent1,3090886:doRead,[])
link(onEvent2,4606192:doRead,[(181,335)(181,363)])
link(onEvent3,15910462:doString,[(175,342)(175,426)])
}
Add(GetDataEx,395993,126,112)
{
link(Data,9994205:Array,[])
}
Add(MultiStrData,3259609,315,420)
{
link(onPart1,1708653:onEvent1,[(1267,426)(1267,127)])
link(onPart2,1708653:onEvent2,[(1275,433)(1275,134)])
}
Add(PointHint,16070788,854,42)
{
Info=#0:|0:|53:Тут считываем по вертикали состояние доски до слияния|42:и вычисляем как должны заполняться столбцы|
VAlign=0
Width=393
Height=74
}
Add(Timer,13287542,161,455)
{
Interval=100
Enable=1
AutoStop=1
link(onTimer,1708653:onEvent3,[(1284,461)(1284,141)])
}
END_SDK


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

Редактировалось 1 раз(а), последний 2026-06-05 09:50:11
карма: 1

0
Ответов: 2489
Рейтинг: 698
#7: 2026-06-05 17:51:16 ЛС | профиль | цитата
kamakama писал(а):
Ни как не могу сообразить, как сдвигаются фишки и заполняют пустые клетки.
https://disk.yandex.ru/i/ZEsQh_tOOSEs0A
Как что-то скачать по этой ссылки?
карма: 11

0
Ответов: 1120
Рейтинг: 224
#8: 2026-06-05 18:38:39 ЛС | профиль | цитата
sla8a писал(а):
Как что-то скачать по этой ссылки?


карма: 20

0
Ответов: 2489
Рейтинг: 698
#9: 2026-06-05 18:52:46 ЛС | профиль | цитата
Gunta, обведи кружочком на этом скриншоте:

карма: 11

0
Ответов: 1120
Рейтинг: 224
#10: 2026-06-05 19:07:58 ЛС | профиль | цитата
sla8a писал(а):
Gunta, обведи кружочком на этом скриншоте:

Когда я нажимаю на ссылку я получаю то, что на моём скриншоте.
Почему у тебя это выглядит так, я не знаю.
карма: 20

0
Ответов: 2489
Рейтинг: 698
#11: 2026-06-05 19:13:10 ЛС | профиль | цитата
Вот мобильная версия:

Gunta писал(а):

Когда я нажимаю на ссылку я получаю то, что на моём скриншоте.
Когда-то и у меня так же было.
карма: 11

0
Ответов: 884
Рейтинг: 322
#12: 2026-06-05 19:18:53 ЛС | профиль | цитата
sla8a, у меня в браузере стоит в паролях https://passport.yandex.com/ и там же имя пользователя и пароль.
карма: 1

0
Ответов: 2489
Рейтинг: 698
#13: 2026-06-05 19:31:00 ЛС | профиль | цитата
kamakama, эта информация должна мне как-то помочь в скачивании файла со схемой?

Я извиняюсь за флуд в теме, но только хотел сообщить что как минимум мне не доступна схема которую обсуждают в теме.
карма: 11

0
Ответов: 884
Рейтинг: 322
#14: 2026-06-05 19:59:40 ЛС | профиль | цитата
sla8a, если у тебя есть яндекс диск на компе то доступ должен быть. Ссылка без ограничений.
карма: 1

0
Ответов: 2489
Рейтинг: 698
#15: 2026-06-05 20:07:56 ЛС | профиль | цитата
kamakama, никогда не было.
карма: 11

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)