Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Jak porówniać tablice


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 Marox44

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:16
  • Imię:Marek
  • Lokalizacja:Gliwice
Offline

Napisano 20.02.2011 18:25

Wiem, że temat już staary, ale mam pytanie co do tablic standardowych. Da się zrobić coś takiego, jak porównać dane dwóch tablic?
Chodzi mi o np. coś takiego:

JEDNA TABLICA

DRUGA TABLICA

Obie mają taką samą liczbę pól, i zawierają tylko liczby naturalne.

ZERO WSPÓLNYCH LICZB:
robi coś


JEDNA WSPÓLNA LICZBA:
robi coś



DWIE WSPÓLNE LICZBY:
robi coś


I tak dalej...
Prosiłbym o wyjaśnienie czy jest w ogóle takie coś możliwe, oraz jak by takie coś wyglądało.

Pozdrawiam,
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 20.02.2011 18:54

Przeniosłem tu ten temat :P

Musisz przejść przez wszystkie kombinacje indeksów i sprawdzać czy są takie same

public plugin_init() {
	log_amx "%d", 	getIntersect({1, 2, 3}, 			{4, 3, 2, 1});
	log_amx "%d", 	getIntersect({1, 2, 3, 4,  5}, 		{4, 3, 2, 1});
	log_amx "%d",	 	getIntersect({5, 6, 7, 5, 6, 7}, 	{8, 9, 10, 1});
	log_amx "%d",	 	getIntersect({1}, 			{4, 3, 2, 1});
}

getIntersect(const Array1[], const Array2[], len1 = sizeof Array1, len2 = sizeof Array2){
	//Second Less Than First
	new bool:sltf = (len1 > len2);
	
	new iCount = 0;
	
	new iLen = max(len1, len2);
	new iLen2 = min(len1, len2);
	for(new i=0;i<iLen;i++) 
		for(new j=0;j<iLen2; j++)
			if(sltf ? (Array1[i] == Array2[j]) : (Array2[i] == Array1[j]) )
				iCount++;
	return iCount;
}

  • +
  • -
  • 1

#3 Marox44

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:16
  • Imię:Marek
  • Lokalizacja:Gliwice
Offline

Napisano 20.02.2011 19:30

Acha.... :^D

A można by to było jakoś prośiej zrobić np. na zmiennych?
U mnie to ma być 6 liczb tu 6 liczb tam .

I tak jak pisałem porównać ile pasuje... wiem, że to pewnie głupie pytania ale w tym temacie to zielony jestem O:)
więc trzeba to tablicami czy mnożna jakoś prościej.... :?:

Użytkownik Marox44 edytował ten post 20.02.2011 19:32

  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 20.02.2011 23:03

Napisałem Ci funkcję do porównywania dowolnych tablic, a Ty marudzisz? xD

new Tablica[6], Tablica2[6];
new ileWspólnych = getIntersect(Tablica, Tablica2);

  • +
  • -
  • 1

#5 Marox44

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:16
  • Imię:Marek
  • Lokalizacja:Gliwice
Offline

Napisano 21.02.2011 07:32

Ok dzięks, mam tylko jeszcze pytanko jak wprowadzić te liczby do tablicy oddzielnie? Jak je oddzielić... przecinkiem się nie da, próbowałem.

Użytkownik Marox44 edytował ten post 21.02.2011 07:33

  • +
  • -
  • 0

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 21.02.2011 13:13

przez deklarację
new Tablica[6] = {1,2,3,4,5,6};
przez przypisanie
new Tablica[6];
Tablica[0] =1;
Tablica[1] =2;
Tablica[2] =3;
Tablica[3] =4;
Tablica[4] =5;
Tablica[5] =6;

  • +
  • -
  • 1

#7 Marox44

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:16
  • Imię:Marek
  • Lokalizacja:Gliwice
Offline

Napisano 21.02.2011 22:22

na razie próbuje tworzyć prosty kod w oparicu o te informacje i tak:

new liczby_typowane[6]


register_clcmd("amx_lotto","lotto",_, "<liczba1> <liczba2> <liczba3> <liczba4> <liczba5> <liczba6>")



read_argv(1, liczby_typowane[0], 2);
read_argv(2, liczby_typowane[1], 2);
read_argv(3, liczby_typowane[2], 2);
read_argv(4, liczby_typowane[3], 2);
read_argv(5, liczby_typowane[4], 2);
read_argv(6, liczby_typowane[5], 2);





client_print(id, print_chat, "Twoje liczby to: %i, %i, %i, %i, %i, %i", liczby_typowane[0], liczby_typowane[1], liczby_typowane[2], liczby_typowane[3], liczby_typowane[4], liczby_typowane[5])


Chodzi mi o to, że ktoś wpisuje w konsoli amx_lotto "1" "6" "12" "23" "32" "67" i pokazuje mu na czacie co wpisał. (wiem, że troche to dziwne ale to dopiero pierwsze kroki ;P )

Spróbowałem, tak jak wyżej napisałem, lecz wyskakuje ciągle 49, 49, 49, 49, 49, 49.
Chciałem sam coś z pomocą poradników ale niestety nic z tego :( , jakby był ktoś skory pomóc....
Chyba źle pobieram te argumenty z komendy....
Pomyśle jeszcze nad tym trzeźwo rano xD

Użytkownik Marox44 edytował ten post 21.02.2011 22:28

  • +
  • -
  • 0

#8 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 21.02.2011 22:39

chyba dałeś za mało kodu... -.-'

@down czyli nie dałeś wszystkiego co powinieneś dać żebyśmy ci pomogli

Użytkownik FreZZy edytował ten post 22.02.2011 08:42


#9 Marox44

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:16
  • Imię:Marek
  • Lokalizacja:Gliwice
Offline

Napisano 22.02.2011 07:33

hmmm :) , czyli?

Dodano 22 luty 2011 - 12:48:

#include <amxmodx>
#include <cstrike>
#include <fun>

#define PLUGIN "Lotto"
#define VERSION "1.0"
#define AUTHOR "Dr. House"

new liczby_typowane[6]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("lotto","lotto",_, "<liczba1> <liczba2> <liczba3> <liczba4> <liczba5> <liczba6>")
}


public lotto (id) {

read_argv(1, liczby_typowane[0], 2);
read_argv(2, liczby_typowane[1], 2);
read_argv(3, liczby_typowane[2], 2);
read_argv(4, liczby_typowane[3], 2);
read_argv(5, liczby_typowane[4], 2);
read_argv(6, liczby_typowane[5], 2);


client_print(id, print_chat, "Twoje liczby to: %i, %i, %i, %i, %i, %i", liczby_typowane[0], liczby_typowane[1], liczby_typowane[2], liczby_typowane[3], liczby_typowane[4], liczby_typowane[5])

}



Dodano 24 luty 2011 - 20:40:
odświeżam :) Jest już wystarczająco kodu?

Dodano 24 luty 2011 - 20:41:
PS. jest cały plugin
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych