CHAT MAIOR

29 de ago. de 2011

[INC] Foreach [iPs]TeaM 1.0

Introdução:

Então, a algum tempo tento fazer um sistema de foreach parecido com do Y_less.
Infelizmente nem sempre dava certo, ou as vezes ficava lento demais, (a versão mais próxima foi FoReX, que chegava a sere 2 vezes mais lentos e não funcionava com outras arrays, apenas para jogadores) então hoje pensando sobre alguma lógica correta e veloz, depois de tantas falhas, consegui criar algo bem próximo, talvez até melhorado do outro foreach.

Criei o sistema muito a base do foreach dele, até mesmo sendo a mesma velocidade nos testes de execução.

Porém tem um detalhe.
As funções deste foreach foram criadas de forma mais leve e rápida, atualmente não tenho testes complexos, mas parece estar funcional e muitos superiores na velocidade de execução das funções perante ao foreach criado por Y_less (itteradd e itterremove)

Atualmente estou utilizando como ponto de referência o -1, logo partes da array com -1 não funcionaram (mas isto pode ser mudado, assim como o outro foreach)

Deixei o mais genérico possível, segundo a dica de Toríbio que sempre falava nestas coisas (ao menos, este funciona com outras arrays, \i/)

Basicamente existem 2 funções principais, que adicionam e removem iteratores, também uma que percorre o array.


Exemplo:
Aqui um exemplo da utilização de foreach:


new newItterArray:NOME_VAR;

addItterArray:NOME_VAR<255>;
addItterArray:NOME_VAR<455>;

delItterArray:NOME_VAR<255> 

foreach(NOME_VAR, i)
{
   printf("Achei o %d", i);
}
 

Utilização bem simples
Assim como foreach de Y_less, coloquei um já adaptado para pegar os jogadores onlines, basta usar:

foreach(Player, ii)
{
printf("O Jogador %d está online", ii);
}


Ainda está na primeira versão, pode haver bugs assim como falta de funções, no entanto estarei disposto para ajudar.



Créditos
Bruno da Silva (criador geral)
Y_less (peguei a ideia a partir do foreach dele)

Código:

-> http://pastebin.com/t7bMwWFV

Salve em i_foreach.inc por favor.



NÃO PERMITIDO POSTAR EM OUTROS WEBSITES SEM AUTORIZAÇÃO DA EQUIPE

Nenhum comentário:

Postar um comentário