2048
-
Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?to infinity and beyond
А вот нечего на Хабре оптимизирующие компиляторы хвалить, и говорить, что Ассемблер не нуженraandoom wrote:Так... Кое что обнаружил. Компилятор, оптимизируя код, выкинул сохранение результата По этой причине в rd даже файл не создается, хотя должен А так выходит, что сохранение в rd работает (как минимум до перезагрузки), для постоянного надо пользовать RDSAVE. Завтра исправлю код, чтобы компилятор не считал код сохранения ненужным
В данный момент игра пытается читать и писать в файл "/sys/games/2048.dat".punk_joker wrote:Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?
Ну это не про меня.yogev_ezra wrote:А вот нечего на Хабре оптимизирующие компиляторы хвалить, и говорить, что Ассемблер не нужен
Во первых: я read-only там, потому хвалить ничего не мог. Но не считаю, что оптимизация плохо, но не в данном случае Не понятно на чём компилятор основывался, вырезав кусок кода.
Во вторых: как так не нужен? С Ассемблера я начал программировать, решив научиться писать патчи для телефонов Sony Ericsson. И научился А потом и на Си и C++ перешел. Поэтому, как минимум, мне он очень был нужен
В коде написано, что __asm__-блок использует адрес переменной cfg, но не написано, что он использует содержимое переменной cfg. Вот компилятор и выкидывает все записи в cfg. То же самое касается функции загрузки - в __asm__-блоке не написано, что он меняет highscore, а всё остальное записывает 0 в highscore, так что компилятор сразу возвращает 0. Объяснить компилятору, что __asm__-блок может читать или писать куда угодно в память, можно примерно так:raandoom wrote:Не понятно на чём компилятор основывался, вырезав кусок кода.
Code: Select all
__asm__ __volatile__("int $0x40":"=a"(ret),"=b"(rnum):
"a"(70),"b"(&cfg):
"memory");
Code: Select all
__asm__ __volatile__("int $0x40":"=a"(ret),"=b"(rnum),"=m"(highscore):
"a"(70),
"b"(&cfg),"m"(cfg));
Сделаем мир лучше!
CleverMouse, спасибо большое за помощь. Теперь загрузка и сохранение результата работает как надо
Еще добавил сообщение о том, что ходы кончились. Уже все в репозитории и к данному моменту скорее всего собралось
Еще добавил сообщение о том, что ходы кончились. Уже все в репозитории и к данному моменту скорее всего собралось
Отлично, все работает. Но можно попросить сделать, чтобы в начале игра пыталась сохранить рекорд в той же папке что и бинарник, а уже в случае неудачи на rd?
to infinity and beyond
Хорошо, конечно можно. А нужна ли возможность возобновления прошлой игры? То есть играл, закрыл игру, открыл и продолжил с того состояния (распложение фишек и очки), в котором закрывал игру.
Было бы неплохо.
to infinity and beyond
Добавил сохранение всего состояния игры Теперь можно поиграть, закрыть игру, погулять, открыть игру и продолжить играть с места, на котором игра была закончена. Чудеса
Просто увеличил шрифт на фишках в 2 раза. Теперь это выглядит так. Так лучше?
Просьба ответить на опрос о предпочтительном способе голосования: viewtopic.php?f=8&t=2959
Тест-репорт от организатора конкурса:
1)Дело в том, что великий комбинатор играл в шахматы второй раз в жизни. Ты не поверишь, но я поиграл в 2048 первый раз в своей жизни! Ну так получилось - не люблю я такие игры. И я долго не мог понять, какими кнопками управлять, и как же вообще играть - ни в самой игре, ни в файле README, ни в теме на форуме никаких указаний не было. Пришлось перегружаться в Windows, и лезть в интернет читать правила игры. Не мешало бы добавить инструкции в саму игру или в файл README.
2)
3) В последней версии цифры на кубиках стали хорошо видны, но зато стала плохо видна первая строчка (Restart / очки / рекорд). Надо бы оставить её такой же, как в самой первой версии (или как-то ещё поменять, но сейчас очень сложно разобрать).
1)
2)
Всё-таки первым делом нужно пытаться писать в папке с бинарником, а он у тебя на <disk_name>/KolibriOS/games/2048/2048. Но приятно, что теперь сохранение работает правильно.raandoom wrote:В данный момент игра пытается читать и писать в файл "/sys/games/2048.dat".punk_joker wrote:Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?
3) В последней версии цифры на кубиках стали хорошо видны, но зато стала плохо видна первая строчка (Restart / очки / рекорд). Надо бы оставить её такой же, как в самой первой версии (или как-то ещё поменять, но сейчас очень сложно разобрать).
Who is online
Users browsing this forum: No registered users and 3 guests