Toster Posted April 24, 2008 Report Share Posted April 24, 2008 Witam, oto kolejna propozycja mikrokonkursa W zalozeniach to powinien byc konkurs tylko na watkach ale da sie go zrealizowac rowniez bez nich wiec jak kto lubi. proponowany termin konca: niedziela do godziny 24. adres zgloszenia: toster[at]ps.pl poziom trudnosci: sredni (3/5) a teraz miesko czyli o co kaman: mamy linie produkcyjna zlozona z 4 stolow, 1 pudla i 8 robotow. ustawienie lini wyglada tak: Linia produkcyjna przerzuca landrynki miedzy stolami i na koncu do pudla. zalorzenia do zrealizowania: 1) z kazdego stolu landrynke moze podniesc 1 z 2 robotow i przenies na nastepny stol (lub do pudla). Czyli ze stolu nr 1 landrynke moze podniesc R1 lub R2 i polozyc to na stol2. Itd. 2) Kazdy robot reaguje co okreslony czas. Czas reakcji kazdego robota jest staly przy czym kazdy robot ma ten czas inny, wylosowany raz przy uruchomieniu lini. 3) na stole nr 1 na poczatku jest 68 landrynek. 4) na poczatku linia jest wylaczona (powinno to byc gdzies zaznaczone) po nacisnieciu klawisza linia sie wlacza, i jest tak dlugo wlaczona az wszystkie landrynki wyladuja w pudle. Gdy pudlo jest pelne linia powinna sie wylaczyc. 5) po zakonczeniu pracy powinno zostac wyswietlone podsumowanie ile kazdy robot przeniosl landrynek UPDATE: 6) czas przelozenia landrynki z jednego miejsca w 2 gie jest 0. Jest to wartosc stala dla wszystkch robotow zalozmy nie mniej niz 50ms. Punktacja: +1 punkt jesli liczba landrynek w pudle na koniec = 68 +2 punkty jesli dodane zostana oznaczenia ktore roboty sa w aktualnej chwili wlaczone (rozbudowa punktu 4, linia jest wlaczona gdy conajmniej jeden robot jest wlaczony. Robot jest wlaczony jesli przez 3 cykle swojej aktywnosci mial cos do roboty, jesli przez 3 cykle nie mial nic do roboto to zostaje wylaczony) +3 jesli kazdy robot bedzie zrealizowany na osobnym watku. Pozdrawiam, Toster Always Dark<br /> Link to comment Share on other sites More sharing options...
Toster Posted April 25, 2008 Author Report Share Posted April 25, 2008 He he widze ze odzew jest niczym tsunami wprost zerwal dach z mojego bloku Always Dark<br /> Link to comment Share on other sites More sharing options...
xevil21 Posted April 25, 2008 Report Share Posted April 25, 2008 postaram się tym razem napisać coś pozdrawiam! Link to comment Share on other sites More sharing options...
Force Posted April 25, 2008 Report Share Posted April 25, 2008 Wiesz, że możesz na mnie liczyć, może walkowerem nie wygram Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
Toster Posted April 25, 2008 Author Report Share Posted April 25, 2008 Pewnie nie wygrasz bo Blind cos tam bakal ze tym razem zmiecie cie z powierzchni ziemi Always Dark<br /> Link to comment Share on other sites More sharing options...
Force Posted April 25, 2008 Report Share Posted April 25, 2008 aaa wyśle na assemble jakiś plik co powiem, że ważny i musi włączyć i sformatuje mu dysk Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
Toster Posted April 25, 2008 Author Report Share Posted April 25, 2008 To jeszcze musisz uknuc jak xevila zalatwisz Always Dark<br /> Link to comment Share on other sites More sharing options...
Force Posted April 25, 2008 Report Share Posted April 25, 2008 Jak była aukcja listów z powstania warszawskiego to wykorzystano różnice czasu przez strefy czasowe, aby Polska listy wykupiła, to samo zrobię Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
Toster Posted April 26, 2008 Author Report Share Posted April 26, 2008 Jedna wazna rzecz o ktorej nie wspomnialem. Oczywiscie czas przelozenia landrynki z jednego miejsca w 2 gie jest 0. Jest to wartosc stala dla wszystkch robotow. Always Dark<br /> Link to comment Share on other sites More sharing options...
Toster Posted April 27, 2008 Author Report Share Posted April 27, 2008 xevil czekam.... zegar tyka... tik..tak..tik..tak... mam narazie 2 gotowe projekty Always Dark<br /> Link to comment Share on other sites More sharing options...
Toster Posted April 28, 2008 Author Report Share Posted April 28, 2008 Force 1) landrynki sie zgadzaja +1 pkt 2) nie, jest oznaczenie gdy robot przenosi landrynke, nie ma oznaczenia czy jest wlaczony. Nie ma tez tego w kodzie. 3) Tak +3 Blind 1) landrynki sie zgadzaja +1 pkt 2) Tak, +1 (nie spelnia wszystkich wymogow opisanych w konkursie) 3) Tak +3 Suma: Force: 4 Blind: 5 Winner: Blind Kilka slow ponadto: Forca kod jest duzo ladniejszy i czytelniejszy + Blinda robociki sa bardziej zabawne + Za kod Blinda powinno byc biczowanie - dzieki za udzial w konkursie. Ponizej link gdzie mozna sciagnac prace, bedzie aktywny przez pewien czas: Prace Always Dark<br /> Link to comment Share on other sites More sharing options...
Blind Posted April 28, 2008 Report Share Posted April 28, 2008 Bo moj kodzik jest przykladem co moze wyjsc gdy pisze sie cos na szybko i po pijaku PS. linie produkcyjna u mnie wlacza sie Enterem. www.blinder.pl - Blog Link to comment Share on other sites More sharing options...
Force Posted April 28, 2008 Report Share Posted April 28, 2008 No cóż, Blind miał ładniejsze roboty gratuluje, ale biczowanie chce widzieć na youtube Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
xevil21 Posted April 28, 2008 Report Share Posted April 28, 2008 Cześć! Ja miałem inny pomysł na roboty, moje maszynki mają dwie wysuwane ręce i stoją w miejscu niestety, z braku czasu nie udało mi się dokończyć programu poza konkursem pokazuje to, co udało mi się zrobić oczywiście jest to tylko prototyp, więc nie spodziewajcie się zbyt wiele posiada dużo błędów -> -> -> Tasma instrukcja: 1. spacją przechodzimy do menu, 2. enter, 3. spacją włączamy robota nr 1. Pozdrawiam! P.S. Toster - przeszłoby takie rozwiązanie?? Link to comment Share on other sites More sharing options...
Toster Posted April 28, 2008 Author Report Share Posted April 28, 2008 Looks good tylko ze inne roboty sie opieprzaja Zrobiles polska linie produkcyjna ;D Mam nadzieje ze next time sie wyrobisz na czas Always Dark<br /> Link to comment Share on other sites More sharing options...
Force Posted April 29, 2008 Report Share Posted April 29, 2008 Wpadłem na pomysł, który pewnie zostanie zinterpretowany, że chce na swoją korzyść uważam, że powinno być od teraz, że każdym konkursie 15% punktów jest za doc i styl kodu, aby propagować ładne pisanie i nie że robie to aby mieć punkty Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
Blind Posted April 29, 2008 Report Share Posted April 29, 2008 Nie, zly pomysl. A jak znowu bede po pijaku pisal xD liczy sie efekt www.blinder.pl - Blog Link to comment Share on other sites More sharing options...
Toster Posted April 29, 2008 Author Report Share Posted April 29, 2008 Kazdy moj konkurs ma cos na celu. W zaleznosci na co stawiam nacisk to najwyzej punktuje, ale po czesci zgadzam sie z Forcem. Dobry styl kodowania to podstawa kogos kto chce nazywac sie programista. Sam czasami robi bublowaty kod, ale porownujac swoj kod z przed 3-5 lat widze roznice. Juz po prostu nie protrafie pisac kodu bez indentacji, robie to odruchowo niezaleznie od tego czy jestem pijany czy nie Always Dark<br /> Link to comment Share on other sites More sharing options...
Max1414 Posted May 8, 2008 Report Share Posted May 8, 2008 Wedle twoich zaleceń Toster postanowiłem pobawić się w te konkursy no i zacząłem ten... Byłbym wdzięczny za ocenke tego co zrobiłem: http://rapidshare.com/files/113429655/Linia_produkcyjna.rar Może być kiepsko no, ale to moje pierwsze podejście Ofc. wiem, że już konkurs się skończył Moje projekty: http://wojciechkulik.pl Link to comment Share on other sites More sharing options...
Toster Posted May 8, 2008 Author Report Share Posted May 8, 2008 Ok ogolnie niezle, nie bede punktowal wg punktow kilka uwag: 1) function Check: Boolean; jako funkcja wewnetrzna, wg kilku artsow rowniez na Borlandzie i moich doswiadczen: NIE rob tego. Poza tym ze zaciemnia kod nic nie wnosi a bardzie przeszkadza (polecam znalezc i poczytac artsy) 2) Roboty sa na watkech jest ok, ale jest powazny mankament: skad wiesz czy operacja pobrania/zapisania do/z tablicy jest operacja atomowa ? Nie robisz synchronizowanego odczytu/zapisu zmiennej 3) brak porzadnej enkapsulacji. Zmienne globalne raczje nie sa dobrym pomyslem jesli chcesz sie uczyc. 4) przy malutkich zmianach mamy deadlocka. sproboj wprowadzic takie zmiany: linie 64, 65, 66 zmien typy na integer linia 65 zamiast (68, daj (250, linia 219: zamiast Landrynki[1]:=68 daj Landrynki[1]:=250; uruchom aplikacje kilka razy. Srednio 3 na 5 uruchomien mialem deadlocka.... FAIL PS. Plus za ladnie sformatowany kod. Always Dark<br /> Link to comment Share on other sites More sharing options...
Max1414 Posted May 8, 2008 Report Share Posted May 8, 2008 Dzięki wielkie za uwagi. Mam kilka pytań: Ad.1) Czyli powinna być to zwykła funkcja zadeklarowana w klasie? Ad.2) Roboty mają różne czasy reakcji, więc chyba nie powinno być problemu z jednoczesnym dostępem? Ad.3) Umieszczenie tych zmiennych w klasie formy byłoby lepsze? Ad.4) Około 10 razy odpalałem po wprowadzeniu tych zmian co pisałeś i za każdym razem poprawnie dochodziło do końca nie wiem co jest przyczyną Moje projekty: http://wojciechkulik.pl Link to comment Share on other sites More sharing options...
Force Posted May 8, 2008 Report Share Posted May 8, 2008 Ad Ad2) Musisz używać mutexy lub strefy krytyczne. chodzi o to, że funkcja Inc działa tak - pobierz wartość zmiennej, zwiększ o 1 zapisz. Może się zdarzyć tak: jeden wątek pobiera wartość zmiennej, a tu system zabiera mu czas i daje drugiemu wątkowi, on też pobiera wartość zmiennej, zwiększa o 1 i zapisuje, potem znowu odzyskuje władzę wątek numer 1, nic nie wie, że zwiększono zmienną, on ma jej starą wartość, zwiększa o 1 to co ma w rejestrze i zapisuje. Przez to dwa razy wywołujesz Inc, ale wartość zwiększa się tylko o 1. Te sleepy może Twoją czujność zmniejszają. Zobacz jak mój kod wygląda, zasada działania podobna jak u Ciebie, tylko, że pudełko nie jest zmienną integer, a klasą i jej metody zwiększające/zmniejszające mają sekcje krytyczne Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
Max1414 Posted May 8, 2008 Report Share Posted May 8, 2008 Ciekawe... nie znałem wcześniej tych "sekcji krytycznych", jednak serio można się przez te konkursy czegoś nauczyć, hehe Moje projekty: http://wojciechkulik.pl Link to comment Share on other sites More sharing options...
Toster Posted May 8, 2008 Author Report Share Posted May 8, 2008 Ad 1) tak Ad 2) Force dobrze mowi, nie masz gwarancji ze w srodku pracy watka nr 1 nie zostanie on zawieszony a w tym samym miejscu namiesza ci inny watek, po czym pierwszy watek wroci do pracy jakby nigdy nic i poznikaja ci dane. Sleepy wlasnie utrudniaja zalkladamy sytuacje: t=0 Watek 1: Sleep(100), Inc(t), Dec(t) Watek 2: Sleep(50), Inc(t), Sleep(50), t := t * 2 Ile wynosi t ? po 101ms ? 0, 1, 2, 4 ? nie wiadomo ktory watek wczesniej dostal sie do zmiennej t. Ad 3) I tak i nie: tak: bo bylaby to czesc obiektu, co juz ogranicza mozliwosc ze ktos inny cos spapra (jak oczywiscie nie bylby to dane o swobodnym dostepie) nie: bo forma ni jak sie ma do znaczenia tych danych. Ogolnie rzecz biorac spora grupa osob (w tym ja do pewnego czasu) popelnia zasadniczy blad w Delphi/C++/Javie. Zabiera sie za programowanie strukturalne ozdabiajac je obiektowoscia. Zastanow sie jakie powinny byc obiekty opisujace twoj algorytm, za co jaki obiekt powinnien odpowiadac i z jakimi obiektami wspolpracowac. Co kazdy obiekt moze pokazac innym a do czego blokuje innym dostepu. Ad 4) Uroki deadlockow sa takie za na moim kompie wszystko dziala ale na wszystkich innych wysypie sie nie wiadomo kiedy. Wyscigi watkow to smutna rzecz Always Dark<br /> Link to comment Share on other sites More sharing options...
zenn Posted April 28, 2010 Report Share Posted April 28, 2010 Witam, wlasnie przeszukiwałem sieć w celu znalezienia rozwiązania podobnego problemu linii produkcyjnej gdyż sam stanąłem w miejscu. Czy istnieje jeszcze możliwość wglądu do waszych kodów? Pozdrawiam, zenn Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.