Wpis z mikrobloga

Zacząłem się z nudów (i chęci zmiany roboty) próbować uczyć programowania. Zmajstrowałem w javascripcie prostą grę. Jakby się któremuś mirkowi nudziło, to zapraszam do wypróbowania. Ewentualne uwagi może kiedyś uwzględnię i poprawię. Link

Zasady: klikając na kwadrat zmienia się kolor jego i kwadratów sąsiednich. Celem gry jest doprowadzenie wszystkich kwadratów do czerwoności. Dla daltonistów jest wersja z numerkami (widzącym kolory też pomoże, bo pomarańczowy wyszedł mi podobny do czerwonego).

Tak, wiem, strona wygląda jakby jej wiek liczony w latach był większy niż suma IQ moderatorów wykopu.

#gamedev #programowanie
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@powaznyczlowiek: wpisałem po chamsku red, orange, yellow itd. najgorzej wyszedł pomarańczowy, więc lekko go zmieniłem. będę musiał w wolnej chwili znaleźć jakiś lepszy kolorek. sytuację trochę ratują numerki dla daltonistów.
  • Odpowiedz
@bukszpryt czy jest tu jakiś algorytm sprawdzający rozwiązywalnosc? To znaczy, że przy zadanej pozycji początkowej istnieje sekwencja ruchów, która doprowadzi do wygranej. Czy losujesz kolory na pałę i możliwe, że gdy nie da się wygrać?
  • Odpowiedz
@Solidly: Nie, ale zapewniłem rozwiązywalność sposobem przemieszania.
W prostszej wersji gry, która też jest na tej stronie przemieszanie zrobione jest przez przekolorowanie losowych 2-9 kafelków, w tej wersji każdy układ jest na pewno rozwiązywalny. Nie wiem czy przy większej ilości kolorów można rozwiązać dowolny układ, więc mieszanie robione jest przez przez kliknięcie losowej ilości losowych kafelków tak jakby to zrobił gracz. Każdy ruch gracza może zostać odwrócony przez powtórzenie go
  • Odpowiedz
@Oo-oO: Myślałem o zrobieniu jakiejś tabeli wyników, ale najpierw musiałbym ogarnąć sprawy związane z korzystaniem z bazy danych. Do tego takie wyniki, żeby miały sens, powinny być chyba osobno dla każdego układu początkowego, bo w jednym wypadku możesz mieć potrzebnych 5 ruchów, a w innym 15. Ewentualnie można by przyznawać punkty za wykorzystanie jak najmniejszej ilości ruchów powyżej rozwiązania optymalnego, ale do tego musiałbym ogarnąć algorytm rozwiązywania żeby móc wyliczyć
  • Odpowiedz
@bukszpryt: Weź najpierw oprzyj grę o private array/object, a nie value z elementów DOM, bo można sobie podmienić w inspektorze wartości, by wystarczył jeden klik do wygranej ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Makurise: Biorąc pod uwagę charakter gry, nie ma to w tym wypadku raczej znaczenia, ale co do zasady masz rację. Prawdę powiedziawszy, to na samym początku testowałem działanie niektórych elementów właśnie idąc na skróty zmieniając dane przez konsolę. pierwszy kontakt z javascriptem miałem jakiś miesiąc temu w jakiejś gównianej apce do uczenia się podstaw programowania, więc niewiele jeszcze ogarniam.
Co do używania value z elementów strony, to też doszedłem po
  • Odpowiedz
@bukszpryt: W tym incrementalu wszystko jest public, więc można sobie w konsoli wpisać jakiekolwiek wartości (gameData.resources.gold = 99999999). Prywatne zmienne są dostępne poprzez domknięcia oraz IIFE.
  • Odpowiedz
@Makurise: w każdym skrypcie, który póki co napisałem wszystko jest publiczne. chodziło mi o to, że tam przynajmniej nie ma odwołania w kodzie do wartości value w samym htmlu jak to jest zrobione w tych kwadracikach.
  • Odpowiedz