{"id":133,"date":"2017-11-16T19:40:40","date_gmt":"2017-11-16T18:40:40","guid":{"rendered":"http:\/\/discreteempire.com\/?p=133"},"modified":"2021-02-28T15:17:58","modified_gmt":"2021-02-28T14:17:58","slug":"szybki-sprawdzian","status":"publish","type":"post","link":"https:\/\/discreteempire.pl\/index.php\/2017\/11\/16\/szybki-sprawdzian\/","title":{"rendered":"Szybki sprawdzian"},"content":{"rendered":"<p>Ju\u017c jaki\u015b czas pisz\u0119 framework Dynamics. Ilo\u015b\u0107 funkcjonalno\u015bci si\u0119 zwi\u0119ksza, wi\u0119c trzeba sprawdzi\u0107 czy to co zosta\u0142o zaimplementowane do czego\u015b si\u0119 przyda. Postanowi\u0142em obs\u0142u\u017cy\u0107 poruszanie si\u0119 Pacmana. Jest to jedna z podstawowych funkcji gry dlatego zdecydowa\u0142em si\u0119 zaimplementowa\u0107 j\u0105 jako pierwsz\u0105.<\/p>\n<p>Potrzebne aby posta\u0107 mog\u0142a si\u0119 porusza\u0107:<\/p>\n<ul>\n<li>plansza (Gameboard)\n<ul>\n<li>b\u0119dzie pilnowa\u0107 kolizji ze \u015bcianami i innymi obiektami<\/li>\n<\/ul>\n<\/li>\n<li>posta\u0107 (Pacmana)\n<ul>\n<li>porusza si\u0119 po planszy &#8211; cyklicznie wysy\u0142a rozkazy ruchu na kolejne pole<\/li>\n<li>zmienia kierunek ruchu<\/li>\n<\/ul>\n<\/li>\n<li>konfiguracja serwis\u00f3w:\n<ul>\n<li>obs\u0142uga rozkaz\u00f3w<\/li>\n<li>obs\u0142uga zdarze\u0144<\/li>\n<li>obs\u0142uga rozkaz\u00f3w planszy<\/li>\n<li>obs\u0142uga rozkaz\u00f3w postaci<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>W tym momencie nie musz\u0119 si\u0119 skupia\u0107 nad jako\u015bci\u0105 kodu poniewa\u017c jest to tylko testowa implementacja.<\/p>\n<p>Jak to wygl\u0105da.<\/p>\n<div style=\"width: 840px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-133-1\" width=\"840\" height=\"473\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/discreteempire.com\/wp-content\/uploads\/2017\/11\/pacman-move.mp4?_=1\" \/><a href=\"http:\/\/discreteempire.com\/wp-content\/uploads\/2017\/11\/pacman-move.mp4\">http:\/\/discreteempire.com\/wp-content\/uploads\/2017\/11\/pacman-move.mp4<\/a><\/video><\/div>\n<p>Na filmie w g\u0142\u00f3wnym oknie mo\u017cemy zaobserwowa\u0107 poruszaj\u0105c\u0105 si\u0119 posta\u0107, a poni\u017cej w konsoli wysy\u0142ane rozkazy i publikowane zdarzenia.<\/p>\n<p><del>Kod do posta dost\u0119pny na GitHubie: Dynamics &#8211; Quick test<\/del><\/p>\n<p>Na repo nie by\u0142o nic ciekawego, wi\u0119c wraz z porzuceniem projektu usun\u0105\u0142em je.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ju\u017c jaki\u015b czas pisz\u0119 framework Dynamics. Ilo\u015b\u0107 funkcjonalno\u015bci si\u0119 zwi\u0119ksza, wi\u0119c trzeba sprawdzi\u0107 czy to co zosta\u0142o zaimplementowane do czego\u015b si\u0119 przyda. Postanowi\u0142em obs\u0142u\u017cy\u0107 poruszanie si\u0119 Pacmana. Jest to jedna z podstawowych funkcji gry dlatego zdecydowa\u0142em si\u0119 zaimplementowa\u0107&#8230; <a class=\"read-more\" href=\"https:\/\/discreteempire.pl\/index.php\/2017\/11\/16\/szybki-sprawdzian\/\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[19],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9lLj4-29","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":91,"url":"https:\/\/discreteempire.pl\/index.php\/2017\/11\/05\/lubie-ddd\/","url_meta":{"origin":133,"position":0},"title":"Lubi\u0119 DDD","date":"2017-11-05","format":false,"excerpt":"Na studiach nauczono mnie programowa\u0107 obiektowo, lecz w pracy ta umiej\u0119tno\u015b\u0107 nie bardzo mi si\u0119 przyda\u0142a. Pierwszy du\u017cy projekt, z kt\u00f3rym si\u0119 w niej spotka\u0142em, by\u0142 napisany w architekturze tr\u00f3jwarstwowej. Musia\u0142em zapomnie\u0107 o tym czego si\u0119 wcze\u015bniej nauczy\u0142em i zacz\u0105\u0107 pisa\u0107 strukturalny kod jak w C tylko, \u017ce w Javie.\u2026","rel":"","context":"In &quot;Dynamics&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":153,"url":"https:\/\/discreteempire.pl\/index.php\/2017\/12\/06\/usprawnienia\/","url_meta":{"origin":133,"position":1},"title":"Usprawnienia","date":"2017-12-06","format":false,"excerpt":"Po cz\u0119\u015bciowej implementacji przyszed\u0142 czas na usprawnienie. Pierwsze na czym si\u0119 skupi\u0142em to agregaty. Nic nowego nie wymy\u015bli\u0142em, po prostu wykona\u0142em metod\u0119 Kopiego Pejsta z Axona. Najwi\u0119ksz\u0105 zalet\u0105 przepisywania tego by\u0142o zrozumienie jak dzia\u0142a metoda apply z\u00a0AggregateLifecycle\u00a0i jest to jedna z ciekawszych implementacji jak\u0105 widzia\u0142em w swoim \u017cyciu. Drugim usprawnieniem\u2026","rel":"","context":"In &quot;Dynamics&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":75,"url":"https:\/\/discreteempire.pl\/index.php\/2017\/10\/13\/pierwszy-kontakt\/","url_meta":{"origin":133,"position":2},"title":"Pierwszy kontakt","date":"2017-10-13","format":false,"excerpt":"W pracy g\u0142upot robi\u0107 nie mog\u0119 (klient si\u0119 na to nie zgadza),\u00a0 wi\u0119c w domu musz\u0119 si\u0119 wyszale\u0107. Dlatego postanowi\u0142em napisa\u0107 w\u0142asny framework do Unity3D. Od kilku lat stara\u0142em si\u0119 napisa\u0107 jakie\u015b gry ale zawsz\u0119 ko\u0144czy\u0142o si\u0119 to fiaskiem. G\u0142ownie ze wzgl\u0119du na brak test\u00f3w i ci\u0119\u017cki do utrzymania kod.\u2026","rel":"","context":"In &quot;Dynamics&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":269,"url":"https:\/\/discreteempire.pl\/index.php\/2018\/10\/16\/nie-korzystaj-z-axon-i-jpa\/","url_meta":{"origin":133,"position":3},"title":"Nie korzystaj z Axon i JPA","date":"2018-10-16","format":false,"excerpt":"Problemy z JPA i Axonem nie zaczynaj\u0105 si\u0119 od razu. Pocz\u0105tki s\u0105 wolne, chcesz aby wykona\u0142 si\u0119 jeden rozkaz, p\u00f3\u017aniej sto rozkaz\u00f3w, wszystko przechodzi swobodnie i szybko, nie wida\u0107 \u017cadnego problemu. Gdy zaczyna si\u0119 robi\u0107 powa\u017cnie i musisz wykona\u0107 np. czterdzie\u015bci tysi\u0119cy rozkaz\u00f3w to wtedy zauwa\u017casz dziwne zachowanie swojego komputera.\u2026","rel":"","context":"In &quot;Nie korzystaj z Axona&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":297,"url":"https:\/\/discreteempire.pl\/index.php\/2019\/01\/16\/nie-korzystaj-z-axona-i-list\/","url_meta":{"origin":133,"position":4},"title":"Nie korzystaj z Axona i list","date":"2019-01-16","format":false,"excerpt":"To nie jest tak, \u017ce w Axonie w agregatach i sagach nie mo\u017cna korzysta\u0107 z list. Je\u017celi kolekcja zawiera niewielk\u0105 ilo\u015b\u0107 element\u00f3w, oko\u0142o 1000, to nie ma problemu. Je\u017celi jednak wymagana jest obszerniejsza lista to napotykamy problemy pami\u0119ciowe i wydajno\u015bciowe. Co nale\u017cy zrobi\u0107 aby nie mie\u0107 takich problem\u00f3w? Problem pami\u0119ci\u2026","rel":"","context":"In &quot;Nie korzystaj z Axona&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":334,"url":"https:\/\/discreteempire.pl\/index.php\/2019\/01\/16\/nie-korzystaj-z-axona-i-tracking-processor\/","url_meta":{"origin":133,"position":5},"title":"Nie korzystaj z Axona i Tracking Processor","date":"2019-01-16","format":false,"excerpt":"Lubi\u0119 placki i Axona. Przez wi\u0119kszo\u015b\u0107 czasu dzia\u0142a szybko, stabilnie i niezawodnie, a problemy, kt\u00f3re sprawia jako\u015b da si\u0119 rozwi\u0105za\u0107. Jednak tym razem b\u0119d\u0119 namawia\u0142 na ca\u0142kowite porzucenie Tracking Processor. Jest to najlepsza funkcjonalno\u015b\u0107 Axona dodana w wersji 3, a zarazem bardzo niedopracowana. Je\u017celi zale\u017cy Ci na pr\u0119dko\u015bci przetwarzania i\u2026","rel":"","context":"In &quot;Nie korzystaj z Axona&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/posts\/133"}],"collection":[{"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/comments?post=133"}],"version-history":[{"count":7,"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/posts\/133\/revisions"}],"predecessor-version":[{"id":293,"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/posts\/133\/revisions\/293"}],"wp:attachment":[{"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/media?parent=133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/categories?post=133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/discreteempire.pl\/index.php\/wp-json\/wp\/v2\/tags?post=133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}