-
Data: 2010-03-01 17:35:47
Temat: Re: Jaki język?
Od: "slawek" <s...@h...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "jacem" <j...@1...pl> napisał w wiadomości grup
dyskusyjnych:hmgm9b$e7b$...@a...news.neostrada.pl
...
> Jak myśli człowiek w trakcie takiej gry?
> Sławku, grając w tetris, jaką obierasz strategię?
> To pierwsze, podstawowe założenie.
Ja tam "nie myślę" - tzn. nie stosuję jakiegoś formalnego algorytmu. Więc
raczej blado od tej strony. :)
> Chyba bajbardziej optymalne byłoby dążenie do zapewnienia jak najbardziej
> płaskiej powierzchni.
> I od tego należałoby zacząć.
> Mnie się prędzej nasuwa analogia do gry w kółko i krzyżyk niż szachy.
Kiedyś napisałem program grający w kółko i krzyżyk - algorytm był
jednolinijkowy, do dziś pamiętam:
n = (n + 1) mod 9
Sprawdza się na planszy 3x3, AI zawsze jako druga, numeracja pól jakoś tam
sobie szła. Nie wygra i nie przegra. Czysty minimax.
> Ludzie, którzy na codzień zajmują się tworzeniem gier, na pewno dadzą
> wyczerpującą odpowiedź. Przypuszczam, że tego typu problemy mają już dawno
> rozpracowane.
Zgoda, ale NIE chodzi o to aby ZROBIĆ TO - ale aby zastanowić się JAK DUŻE
TO BYŁOBY WYZWANIE.
I odpowiedź niekoniecznie nieomylna - może algorytm da się streścić w paru
linijkach? A może porządny algorytm to jakieś 10 tysięcy linii kodu? Mnie
nie interesuje, by taki napisać (bo i po co?) - ale aby zorientować się, jak
bardzo ufacie swoim ulubionym językom programowania. Jeżeli ktoś np. pisze,
że PHP jest cool - a potem nie potrafi ocenić, ile musiałby naklepać tego
PHP aby mieć "program rozwiązujący łamigłówkę Tetris" - to czy PHP jest taki
cool? Zamiast PHP podstawcie sobie inne języki, przeiterujcie.
Jeszcze jedno - zakładam że program nie musi być the best - takim "terisowym
mistrzem" - patrz Głęboko Niebieski i gra w szachy. Chodzi tylko o to, by
grał sportowo, uczciwie. Dlatego odpadają programy upuszczające klocki tak
jak są, albo upuszczające je z losowym obrotem i przemieszczeniem. Pewnym
utrudnieniem mogłoby być przesuwanie klocków tak, aby wlazły pod inne
(pozwalamy opaść w pewnym położeniu... i myk w lewo lub prawo gdy będą już
na dole) - więc załóżmy że tego robić nie wolno.
Ja bym próbował np. tak jak poniżej. Nie twierdzę, że to dobre rozwiązanie.
Przesunięć jest może 10, obroty mnożą to przez 4, symetria może zredukować.
Czyli jakieś do 40 pozycji do rozpatrzenia, powiedzmy 2^5. Typów klocków
jest może z 2^4. Stąd przewidywanie jakie przyjdą kolejne dwa (mając już
jeden) i spasowanie ich daje łącznie (2^5)^3 * (2^4)^2 = 2^23 = 8 milionów
kombinacji. To niedużo - jeżeli jeszcze uda nam się ograniczyć trochę
(usunąć te, które są ewidentnie złe, odfiltrować symetryczne). Czyli
wstawiamy klocek tak, aby optymalnie pasował - biorąc pod uwagę kolejne dwa,
których jeszcze nie ma. I od nowa.
Musimy jeszcze jakąś reprezentację mieć planszy, klocków, definicję
"optymalności" - nie mówię że to łatwe i nie jest pracochłonne.
Ale zakładam, że program ma prawo się mylić - tzn. nie musi sprawdzać
wszystkich możliwości, może używać funkcji random (jeżeli to uzasadnione).
Trzebaby pogooglać - może są jacyś entuzjaści tego typu programów. Ale nie
chodzi o sam program - lecz o zagadnienie, które: a. można zaprogramować; b.
nie jest to "typowe" programowanie
kadry-płace-excel-webmastering-cholera-wie-co; c. fajne jakieś takie wyszło.
Moim zdaniem ciekawiej jest porównywać "jak duży ma być program układający
Tetris" - niż programy "Hello, I am Jan... Jan B."
slawek
Następne wpisy z tego wątku
- 01.03.10 17:51 slawek
- 01.03.10 23:07 Arkadiusz Dymek
- 02.03.10 05:08 slawek
- 02.03.10 08:14 jacem
- 02.03.10 09:41 slawek
- 03.03.10 08:52 jacem
- 03.03.10 13:52 slawek
- 03.03.10 14:33 Jędrzej Dudkiewicz
- 03.03.10 17:21 slawek
- 04.03.10 10:10 jacem
- 04.03.10 10:11 jacem
- 04.03.10 10:25 jacem
- 04.03.10 10:57 slawek
- 04.03.10 11:02 slawek
- 04.03.10 13:17 jacem
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę
- 2025-12-25 Skuteczność wymiaru sprawiedliwości
- 2025-12-24 Felgi
- 2025-12-24 2,5 x więcej niż Li-Ion
- 2025-12-24 No i kolejny ograniczony
- 2025-12-24 Warszawa => Młodszy Specjalista ds. wsparcia sprzedaży <=
- 2025-12-24 New York Times zagrożeniem bezpieczeństwa narodowego USA - POTUS D. Trump
- 2025-12-24 Podżeganie?
- 2025-12-24 => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-12-24 otwarcie drugiej obwodnicy Trójmiasta




7 pułapek i okazji - zobacz co cię czeka podczas kupna mieszkania na wynajem