Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Apr 23, 2019 9:22 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 57 posts ]  Go to page Previous 1 2 3 4
Author Message
 Post subject:
PostPosted: Wed Dec 17, 2014 1:40 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1143
Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?

_________________
я лишь учусь


Top
   
 Post subject: Re: 2048
PostPosted: Wed Dec 17, 2014 1:42 am 
Offline
Public Relations
User avatar

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


Top
   
 Post subject: Re: 2048
PostPosted: Wed Dec 17, 2014 2:01 pm 
Offline
User avatar

Joined: Wed Dec 10, 2014 1:51 pm
Posts: 21
punk_joker wrote:
Игра сразу пишет на rd, или в начале пытается в папке с бинарником писать?

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

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


Top
   
 Post subject: Re: 2048
PostPosted: Wed Dec 17, 2014 3:02 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
raandoom wrote:
Не понятно на чём компилятор основывался, вырезав кусок кода.

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

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

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


Top
   
 Post subject: Re: 2048
PostPosted: Thu Dec 18, 2014 1:50 am 
Offline
User avatar

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


Top
   
 Post subject:
PostPosted: Thu Dec 18, 2014 2:54 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1143
Отлично, все работает. Но можно попросить сделать, чтобы в начале игра пыталась сохранить рекорд в той же папке что и бинарник, а уже в случае неудачи на rd?

_________________
я лишь учусь


Top
   
 Post subject: Re: 2048
PostPosted: Thu Dec 18, 2014 3:05 am 
Offline
User avatar

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


Top
   
 Post subject:
PostPosted: Thu Dec 18, 2014 3:07 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1143
Было бы неплохо.

_________________
я лишь учусь


Top
   
 Post subject: Re: 2048
PostPosted: Sat Dec 20, 2014 1:34 am 
Offline
User avatar

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


Top
   
 Post subject: Re: 2048
PostPosted: Sun Dec 21, 2014 1:42 am 
Offline
User avatar

Joined: Wed Dec 10, 2014 1:51 pm
Posts: 21
Просто увеличил шрифт на фишках в 2 раза. Теперь это выглядит так. Так лучше?
Image


Top
   
 Post subject: Re: 2048
PostPosted: Sat Jan 03, 2015 1:15 am 
Offline
Public Relations
User avatar

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


Top
   
 Post subject: Re: 2048
PostPosted: Sun Jan 04, 2015 1:17 am 
Offline
Public Relations
User avatar

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 57 posts ]  Go to page Previous 1 2 3 4

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited