Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб ноя 18, 2017 4:55 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 57 сообщений ]  На страницу Пред. 1 2 3 4
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср дек 17, 2014 1:40 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Ср дек 17, 2014 1:42 am 
Не в сети
Public Relations
Аватара пользователя

Зарегистрирован: Пн июн 07, 2010 12:01 pm
Сообщения: 1879
raandoom писал(а):
Так... Кое что обнаружил. Компилятор, оптимизируя код, выкинул сохранение результата :) По этой причине в rd даже файл не создается, хотя должен :) А так выходит, что сохранение в rd работает (как минимум до перезагрузки), для постоянного надо пользовать RDSAVE. Завтра исправлю код, чтобы компилятор не считал код сохранения ненужным :)
А вот нечего на Хабре оптимизирующие компиляторы хвалить, и говорить, что Ассемблер не нужен :lol:


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Ср дек 17, 2014 2:01 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср дек 10, 2014 1:51 pm
Сообщения: 21
punk_joker писал(а):
Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?

В данный момент игра пытается читать и писать в файл "/sys/games/2048.dat".
yogev_ezra писал(а):
А вот нечего на Хабре оптимизирующие компиляторы хвалить, и говорить, что Ассемблер не нужен :lol:

:) Ну это не про меня.
Во первых: я read-only там, потому хвалить ничего не мог. Но не считаю, что оптимизация плохо, но не в данном случае :) Не понятно на чём компилятор основывался, вырезав кусок кода.
Во вторых: как так не нужен? С Ассемблера я начал программировать, решив научиться писать патчи для телефонов Sony Ericsson. И научился :) А потом и на Си и C++ перешел. Поэтому, как минимум, мне он очень был нужен :)


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Ср дек 17, 2014 3:02 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1600
raandoom писал(а):
Не понятно на чём компилятор основывался, вырезав кусок кода.

В коде написано, что __asm__-блок использует адрес переменной cfg, но не написано, что он использует содержимое переменной cfg. Вот компилятор и выкидывает все записи в cfg. То же самое касается функции загрузки - в __asm__-блоке не написано, что он меняет highscore, а всё остальное записывает 0 в highscore, так что компилятор сразу возвращает 0. Объяснить компилятору, что __asm__-блок может читать или писать куда угодно в память, можно примерно так:
Код:
    __asm__ __volatile__("int $0x40":"=a"(ret),"=b"(rnum):
                         "a"(70),"b"(&cfg):
                         "memory");

Если заранее известно, какие переменные затронуты, можно и так:
Код:
    __asm__ __volatile__("int $0x40":"=a"(ret),"=b"(rnum),"=m"(highscore):
                         "a"(70),
                         "b"(&cfg),"m"(cfg));

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Чт дек 18, 2014 1:50 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср дек 10, 2014 1:51 pm
Сообщения: 21
CleverMouse, спасибо большое за помощь. Теперь загрузка и сохранение результата работает как надо :)
Еще добавил сообщение о том, что ходы кончились. Уже все в репозитории и к данному моменту скорее всего собралось :)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 18, 2014 2:54 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Отлично, все работает. Но можно попросить сделать, чтобы в начале игра пыталась сохранить рекорд в той же папке что и бинарник, а уже в случае неудачи на rd?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Чт дек 18, 2014 3:05 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср дек 10, 2014 1:51 pm
Сообщения: 21
Хорошо, конечно можно. А нужна ли возможность возобновления прошлой игры? То есть играл, закрыл игру, открыл и продолжил с того состояния (распложение фишек и очки), в котором закрывал игру.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 18, 2014 3:07 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
Было бы неплохо.

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Сб дек 20, 2014 1:34 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср дек 10, 2014 1:51 pm
Сообщения: 21
Добавил сохранение всего состояния игры :) Теперь можно поиграть, закрыть игру, погулять, открыть игру и продолжить играть с места, на котором игра была закончена. Чудеса :)


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Вс дек 21, 2014 1:42 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср дек 10, 2014 1:51 pm
Сообщения: 21
Просто увеличил шрифт на фишках в 2 раза. Теперь это выглядит так. Так лучше?
Изображение


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Сб янв 03, 2015 1:15 am 
Не в сети
Public Relations
Аватара пользователя

Зарегистрирован: Пн июн 07, 2010 12:01 pm
Сообщения: 1879
Просьба ответить на опрос о предпочтительном способе голосования: viewtopic.php?f=8&t=2959


Вернуться к началу
 Заголовок сообщения: Re: 2048
СообщениеДобавлено: Вс янв 04, 2015 1:17 am 
Не в сети
Public Relations
Аватара пользователя

Зарегистрирован: Пн июн 07, 2010 12:01 pm
Сообщения: 1879
Тест-репорт от организатора конкурса:
1) Дело в том, что великий комбинатор играл в шахматы второй раз в жизни. Ты не поверишь, но я поиграл в 2048 первый раз в своей жизни! Ну так получилось - не люблю я такие игры. И я долго не мог понять, какими кнопками управлять, и как же вообще играть - ни в самой игре, ни в файле README, ни в теме на форуме никаких указаний не было. Пришлось перегружаться в Windows, и лезть в интернет читать правила игры. Не мешало бы добавить инструкции в саму игру или в файл README.
2)
raandoom писал(а):
punk_joker писал(а):
Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?

В данный момент игра пытается читать и писать в файл "/sys/games/2048.dat".
Всё-таки первым делом нужно пытаться писать в папке с бинарником, а он у тебя на <disk_name>/KolibriOS/games/2048/2048. Но приятно, что теперь сохранение работает правильно.
3) В последней версии цифры на кубиках стали хорошо видны, но зато стала плохо видна первая строчка (Restart / очки / рекорд). Надо бы оставить её такой же, как в самой первой версии (или как-то ещё поменять, но сейчас очень сложно разобрать).


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 57 сообщений ]  На страницу Пред. 1 2 3 4

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB