Wpis z mikrobloga

@NamalowanyPrzezSmutek: Mam pytanko odnośnie gry Snake. Czy generując losowe położenie jedzenia powinienem uwzględniać "kafle" zajęte przez samego węża? Powiedzmy, że mam siatkę z kafli 10x10. Teraz losuję dwie wartości 1-10 i tam tworzę jedzenie. Tylko w tym przypadku jedzenie może się pojawić na samym wężu. Czy tak to powinno wyglądać? Czy może w randomie powinienem filtrować kafle zajęte przez węża? Mam nadzieję, że dobrze wytłumaczyłem.
#programowanie #snake #javascript #webdev #gamedev
  • 12
  • Odpowiedz
@NamalowanyPrzezSmutek: najprościej losować póki nie trafisz nie w węża, w przypadku małego węża będzie nawet szybsze, ale im większy wąż tym mniejsza szansa na trafienie więc wydajność będzie spadać. Ja bym generował listę punktów w których może być umieszczone jedzenie i losował z tego zbioru. Jak dobrze zoptymalizujesz zarządzanie zbiorem (zamiast liczyć cały będziesz dodawał zwalniany i odejmował zajmowany punkt podczas ruchu węża) i wybierzesz dobrą strukturę danych to będzie szybkie
  • Odpowiedz
@NamalowanyPrzezSmutek: nie musisz liczyć wolnych pól za każdym razem - robisz na początku posortowaną listę z wolnymi polami, jeżeli wąż się poruszy to usuwasz z listy nową pozycję głowy i dodajesz starą pozycję ogona (jak wąż coś zjada to ogon zostaje w starym miejscu, czyli dodajesz tylko nową głowę)
  • Odpowiedz