Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

pętla for, do porównywania dwóch macierzy


Rekomendowane odpowiedzi

Opublikowano

Hej, cały czas mi wyrzuca bład gdy staram się zastosować ten kod:

For $k=0 to $size_col-1
    For $l=0 To $size-1
	  $klan1=$klan[$l]
	  If $nick= $klan1 Then
		 $hp=_ArrayDelete ($hp, $k)
		 $nick=_ArrayDelete ($nick, $k)
	  EndIf
   Next
Next

Chodzi o to, że staram się znaleźć takie same elementy, które występują w dwóch macierzach. Jeżeli znajdzie ten element, to ma go usunąć.

 

Opublikowano

W błędzie jest napisane co masz źle w składni. 

Mózg to nie mydło; nie ubędzie Ci go, gdy go użyjesz.

Opublikowano

Podaj treść błędu.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

sorry za wcześniejszy kod, ale nie był on pełny. Poprawka:
 

For $k=0 to $size_col
   For $l=0 To $size-1
	  If $nick[$k]= $klan1[$l] Then
		 $race=_ArrayDelete ($nick, $k)
		 $hp=_ArrayDelete ($hp, $k)
          EndIf
   Next
Next

bład  jaki mi wyskakuje to :

new.au3" (96) : ==> Subscript used on non-accessible variable.:
If $nick[$k]= $klan[$l] Then
If $nick^ ERROR

Czy można w ten sposób porównać obydwie macierze, czy jednak wyszukiwać stringa w stringu ?

Opublikowano

zmienna $nick albo w ogóle nie jest zmienną tablicową albo nie jest zmienną jednowymiarową, jak zobaczymy kod od momentu powstania owej zmiennej to może coś zaradzimy  :D

Opublikowano

zmienna $nick albo w ogóle nie jest zmienną tablicową albo nie jest zmienną jednowymiarową, jak zobaczymy kod od momentu powstania owej zmiennej to może coś zaradzimy  :D

 

zmienna $nick jest tablicą o wymiarze większym bądź równym 3, ilość jest ograniczona poprzez zbadanie ilości zawartości wyciągniętych elementów ( w tym przypadku nicków z gry).

 

Co do skróconej wersji kodu, gdzie jest wykorzystywana ta funkcja to:

$data = GETrequest('/coliseum/')   ;pobranie strony
$a=StringSplit($data,"block_zero",1)     ;rozdzielenie bloków strony i umieszczenie w array
$nick=_StringBetween ($a[3],"''/> "," (")    ; wyciągnięcie nicków graczy, którzy aktualnie uczestniczą w walce

 

 

Jestem trochę zielony w AutoIt, ale:

 If $nick[$k]= $klan1[$l] Then 

Czemu w warunku wartości nick[k] nadajesz wartość jaką ma klan1[1].

 

­

 

W tym przypadku chodzi mi o wyeliminowanie przypadku ataku osoby sojuszniczej, atak na osobę z tego samego klanu za pewne nie zostałby pozytywnie odebrany :)

Opublikowano

Jestem trochę zielony w AutoIt, ale:

 If $nick[$k]= $klan1[$l] Then 

Czemu w warunku wartości nick[k] nadajesz wartość jaką ma klan1[1].

 

­

 

Nie nadaje wartości tylko porównuje - w Autoit znaczenie operatora "=" zależy od kontekstu - to akurat jest dobrze, widać, że jesteś zielony ;)

 

Do autora:

błąd wskazuje na odwołanie do nieistniejącego elementu tablicy, chyba powinno być:

For $k=0 To $size_col - 1

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Do autora:

błąd wskazuje na odwołanie do nieistniejącego elementu tablicy, chyba powinno być:

For $k=0 To $size_col - 1

 

 

 

Niestety, problem jest nadal ten sam. Sprawdziłem przy której iteracji zawiesza się poprzez wpisanie zaraz po for "consolewrite (@LF & $k)". Jak widać już na dzień dobry mu nie pasuje, tylko pytanie brzmi dlaczego?

 

Zalogowano
0"C:.....\new.au3" (97) : ==> Subscript used on non-accessible variable.:
If $nick[$k]= $klan[$l] Then
If $nick^ ERROR

Po małej zamianie w kodzie, udało mi się ominąć problem dla zmiennej $k:

 

 

For $k=0 to $size_col-1
   $nick=$nick[$k]
   For $l=0 To $size-1
	  ConsoleWrite ($klan[$l])
	  $klan=$klan[$l]
	  If $nick= $klan Then
		 $race=_ArrayDelete ($race, $k)
		 $hp=_ArrayDelete ($hp, $k)
		 $nick=_ArrayDelete ($nick, $k)
	  EndIf
   Next
Next

ale wystąpił, dalej problem z $l

$klan=$klan[$l]
$klan=$klan^ ERROR

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...