Cześć!
Tworzę pewien projekt, który ma działać podobnie do Wolfram Alpha, oczywiście w trochę innych warunkach i dla innego typu zadań. Od razu zaznaczę, że nie chcę zrobić konkurencji dla Wolframa, bo wiem, że w pojedynkę to niemożliwe :)
Mam pewne pytanie czy istnieje jakiś wzorzec projektowy, który pomógłby mi "zamieniać" stringa na np. tablicę z obiektami? Już wyjaśniam co mam na myśli:
Przykładowy string:
Oblicz największy wspólny dzielnik dla liczb 12 i 14.
Po wstępnym przygotowaniu:
@nwd@ dla liczb 12 i 14
Wymyśliłem sobie, że będę pobierał z bazy kod dla danego fragmentu stringu - w tym przypadku wszystkie wariacje największego wspólnego dzielnika zamieni na @nwd@ - a w małpach dlatego, żeby uniknąć problemów przy ewentualnej zamianie przez str_replace.
Problem zaczyna się w tym momencie. Oczywiście mógłbym zrobić ogromnego switcha, który szukałby w stringu kodów i znajdując jakiś wykonywał odpowiednie czynności. Jest jakiś sposób, dzięki któremu mógłbym to jakoś bardziej zautomatyzować?
Tutaj mam przykładowe działanie programu w tym momencie:
Rozpoznaje on słowa kluczowe dla danych i szukanych i odpowiednio dzieli stringa w zależności od budowy pytania. Chciałbym się teraz zająć tymi danymi i szukanymi tak, aby program wiedział co robić gdy ktoś wpisze 2+2, największy wspólny dzielnik z liczb 12 i 13, czy oblicz obwód trójkąta o bokach długości 3, 4 i 5. Mam już wiele pojedynczych modułów, które wykonują takie obliczenia, chodzi mi tylko i wyłącznie o tą analizę stringa pod takim kątem, żeby program wiedział co robić!
Będę wdzięczny za każde wskazówki!
Pozdrawiam,
Miko