Pull to refresh

Comments 23

Копировать 5 исходников вручную — это жесть, так что вот архив для тех, кому интересно поиграть: berezuev.ru/tmp/muffe.zip
Надеюсь, автор перезальет и выложит в посте.
Выглядит, как откомпилированный код с развёрнутыми циклами :)
я тоже на семерке все это делал, скрин вы видите в статье
скорее всего у вас стоит
 echo on 
, а нужно
 echo off 

проверьте первую строчку батника

Баг:
image
Вот из такого положения нельзя сдвинуть вниз↓ или влево←. Но у вас можно. Появляются новые двойки.
Автор писал про это
2-ки появляются после каждого нажатия кнопки, даже если не произошло смещение и/или сложение.
Да, zigrus и пишет, что некоторые вещи ещё не реализованы, в частности то, о чём вы говорите.
хотелось бы получить дельный совет как это можно поправить
Когда только эта штука появилась, забавы ради тоже потратил вечер на написание консольной версии. И эту проблему не решал (то есть работает как и у вас). В целом, много общего в результатах, разве что я уместился в 40 строк (в 30 не вышло, но, полагаю, можно постараться), ибо Python.

Лечить проблему можно, например, сравнивая состояние поля до движения и после. Если они одинаковы, значит движение не происходит, значит так нельзя. Это самый банальный способ.
я тоже об этом думал. придется добавить еще 16 переменных и 16 проверок IF
думал что как то проще можно
Ну это вариант в лоб. Можно (и нужно) сделать умнее. Например, вести флаг изменения состояния поля, который изначально в false и устанавливается в true при любом изменении состояния. По этому флагу и определять, изменилось что-нибудь или нет. Это следующий по простоте и очевидности вариант. Возможны и другие, но нужно смотреть, не окажутся ли они более сложными и менее логичными.

У меня, к слову, ячейки могли двигаться только в одну сторону (предположим, вниз, это неважно). Но поле имело функция поворота на 90 градусов в одну сторону (не на экране, в памяти). Соответственно, направление движения определяло лишь число поворотов поля до движения и после него. А в коде движения я рассматривал уже исключительно одну ситуацию с движением в одну сторону.
добавил флаг изменений
счет, лучший счет, появление четверок
ну вообще если не требовать совместимости с досом,
то
if условие (
команда1
команда2
команда3
)
должно работать
такая конструкция у меня работала через раз.
Вы меня, конечно, извините, но ваш код ужасен.
Чтобы это не было пустыми словами, сделал свой вариант 2048 cmd и выложил на GitHub.
Там, возможно, не реализовано всё что нужно, да и сам язык батников, конечно, ущербный по определению,
но всё-таки надо же как-то использовать возможности языка, на котором пишете.
Не может правильно написанная команда работать через раз.
спасибо, вот что значит когда человек умеет программировать.
все что вы написали про мой код это правда.

цветная версия через 3 года
цвет получают через findstr
вывод через < nul set /p str=
по этому так сильно тормозит процесс отрисовки
Sign up to leave a comment.

Articles