Sztuczna inteligencja w Snake'u

0

Otóż napisałem sobie Snake w Pascalu(nie nawidzę Pascala, wole C++ ale musiałem) i postanowiłem dorobić sztuczną inteligencję czyli po prostu żeby Snakiem kierował komputer.

Napisałem dosyć długi kod i działał nawet całkiem dobrze ale nie tak jak chciałem, znalazłem w nim kilka błędów.

Algorytm działał na zasadzie. Sprawdzał czy może jechać prosto, jeśli nie to sprawdzał czy może w lewo jeśli nie to jechał w prawo. Sprawdzałem też ostatnie kilka ruchów. Snake często ładnie reagował ale popełniał głupie błędy.

Teraz mam do was pytania. Na jakiej zasadzie najlepiej napisać algorytm. Jakieś wskazówki.

0

Jeżeli jabłuszko jest powyżej głowy zaś cały wąż mieści się poniżej jabłka to wybieramy najkrótszą drogę do jabłuszka.
Tak samo sprawdzamy poniżej, po lewej i po prawej.
Jeżeli nie pasuje żaden z tych warunków to się zwijać zygzakiem.

0

Sprawdzasz czy wąż w następnym ruchu nie zamyka jakiejś przestrzeni następnie liczysz jak duża jest ta przestrzeń i porównujesz z długością węża (by mieć pewność, że się zmieści).
Poza tym zmieniasz strategię ruchu zależnie od długości, krótki wąż: kierujesz go najkrótszą drogą, długi waż: to nim kluczysz by się zawijał i oszczędzał przestrzeń.

1 użytkowników online, w tym zalogowanych: 0, gości: 1