Witam właśnie dostałem za zadanie napisanie programu do gry w mahjonga np na takiej stronie http://www.gierkionline.pl/gry/Gry+Logiczne/Shanghai+Dynasty.html Do tej pory mieliśmy programowanie ale szczerze powiedziawszy nie wiem nawet jak się za coś takiego wziąć. Czy mogę prosić o waszą pomoc?
Masz napisać program który rozwiązuje planszę w mahjonga czy program który gra w mahjonga na tej stronce? Bo to są dwie zupełnie różne rzeczy. Samo rozwiązywanie planszy to pewnie problem NP i trzeba zrobić jakiś taki rekurencyjny algorytm z jakimis ewentualnymi heurystykami. Ale granie w to na tej stronce to zupelnie inna bajka, bo musiałbyś w jakiś sposób "wczytać" planszę a potem klikać w ramach wykonywania ruchów.
A ja mam ważniejsze pytanie. Program ma grać w mahjonga ale w prawdziwego czy te amerykańskie puzzle?
Program ma grać w mahjonga na dowolnie wybranej przeze mnie stronie internetowej.
No to będziesz miał zabawę...
Screenshot'y ekranu, rozpoznawanie obiektów, odpowiedni ruch myszki...
Jesteś pewien, że nie miałeś napisać programu, w którym grałoby się w madżonga?
Jestem pewien, że mam napisać program który gra w mahjonga, dlatego proszę was o jakąś pomoc jak zacząć bo nie mam pojęcia jak się za to zabrać, a za 2 tygodnie program ma być gotowy
Nikt nie może mi dać jakiś wskazówek?
Hm, no cóż, dostałeś podpowiedzi. Pierwszy pomysł jaki przychodzi do głowy to ręczne pobieranie grafiki z tego flasha. Możesz robić screenshot danego kawałka ekranu i go parsować odpowiednio. Nie masz prostego projektu, w każdym razie, jeżeli coś takiego dostałeś to prowadzący założył, że programować potrafisz.
jeśli ma to działać na dowolnej stronie internetowej to możesz się od razu poddać.
Nie na dowolnej tylko na jednej wybranej.
Moim zdaniem nie ma szans. Sam algorytm do rozwiązywania może przysporzyć problemów, o ile nie pójdziesz na zwykłego rekurencyjnego brute-force. A nawet jeśli to OCR żeby rozpoznać co jest na planszy a potem symulacja kliknięć? Może i da się to zrobić w 2 tygodnie, ale musiałbyś sie na tym bardzo dobrze znać i klepać non-stop.
wydaje mi się że łatwiejszą drogą byłoby grzebanie w pamięci jednej wybranej przeglądarki, jednakże podejrzewam że 95% czasu spędzisz na odczyt stanu gry wraz z symulacją ruchów, a jedynie 5% na samo pisanie algorytmu rozwiązującego. Wg mnie źle zrozumiałeś polecenie.