Skocz do zawartości

4 w lini sprawdzanie


Rekomendowane odpowiedzi

Witajcie.

Jest taka gra "4 w lini" probuje ja napisac i utknalem na sprawdzaniu czy sa 4 w prostej lini .robie to na tablicy dwu-wymiarowej pola tak samo jak w oryginale7x6 image_index zmienia wartosci w tablicy:

0- pole puste

1- gracz1

2- gracz2

Jak mozna sprawdzic horyzontalnie ,wertykalnie i po ukosie czy gracz ulozyl 4 w lini ?

Mialem cos na h i w ale nie dzialalo dobrze bo jak ulozylem kwadrat z 4 to tez dawalo wygrany wynik

GML

_s=0;

_p=1;

for (h=0; h<7; h++;)

{

for (w=0; w<6; w++)

{

if block[w, h]== _p {_s++} else {break;}

}

}

if _s>=4 {pl=1;}

A moze w "gridsach" jest jakis sposob?

Odnośnik do komentarza
Udostępnij na innych stronach

Rozwiązanie po oporze:

Najprostrzy to podwójna pętla for tak aby przejść przez każde pole. Jeżeli pole nie jest 0 sprawdź czy 3 następne pola w lewo/prawo/górę/dół/cztery skosy jest takie samo. Ofc mozesz tez sprawdzic czy sprawdzane pole nie jest za blisko ktores krawedzi aby bez powodu nie sprawdzac w kierunku w ktorym jest za malo oczek.

Odnośnik do komentarza
Udostępnij na innych stronach

hm muszę nad tym trochę podumać jak to zrobić dawno nie programowałem.

Ale skosy to już w ogóle nie mam pojęcia jak się za to zabrać

 

 

 

EDIT:

problem rozwiązany:) i gra gotowa: instalka

GML
//sprawdzanie poziomo

for (i=0; i<4; i++;)

{

for (j=0; j<6; j++;)

{

 

if block[j,i]=2 and block[j,i+1]=2 and block[j,i+2]=2 and block[j,i+3]=2

{

player2_win=true;

}

}

}

//sprawdzanie pionowo

for (a=0; a<3; a++;)

{

for (b=0; b<7; b++;)

{

 

if block[a,b]=2 and block[a+1,b]=2 and block[a+2,b]=2 and block[a+3,b]=2

{

player2_win=true;

}

}

}

//sprawdzanie po ukosie /

for (c=0; c<3; c++;)

{

for (d=0; d<4; d++;)

{

if block[c,d+3]=2 and block[c+1,d+2]=2 and block[c+2,d+1]=2 and block[c+3,d]=2

{

player2_win=true;

}

}

}

//sprawdzanie po ukosie \

for (e=0; e<3; e++;)

{

for (f=0; f<4; f++;)

{

if block[e,f]=2 and block[e+1,f+1]=2 and block[e+2,f+2]=2 and block[e+3,f+3]=2

{

player2_win=true;

}

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...