Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Emulation de Tableaux

Par Tynril le 1/12/2002 à 21:09:00 (#2688361)

Je vous recopie ici un script de ZeDuckMaster, à l'époque non-fonctionnel, à cause de la gestion de la mémoire de NWN. Le bug de mémoire étant réparé, ce script marche.

string LIST_SEPARATOR = "#";

struct sPile {
string sData;
string sDernierEnleve;
};

void AjouteElement(struct sPile P,string Element)
{
P.sData = P.sData + LIST_SEPARATOR + Element;
}

struct sPile RetireElement(struct sPile P)
{
string temp = ";
int nb = GetStringLength(P.sData);
P.sDernierEnleve = ";

while(temp!=LIST_SEPARATOR)
{
P.sDernierEnleve = temp + P.sDernierEnleve;
temp = GetSubString(P.sData,nb,1);
if(temp == ")
return P;
nb--;
}
P.sData = GetStringLeft(P.sData,nb);
return P;
}
:)

Par Jaha Effect le 1/12/2002 à 21:18:45 (#2688468)

Tu peux expliquer à quoi ça sert, stp, là j'ai un peu de mal ? :D

Jaha Effect :D

Par Azrael07 le 1/12/2002 à 21:44:18 (#2688680)

ouaou... du grand art.

Jaha Effect > Je veux pas te démoraliser, mais je pense que si tu n'est pas capable de comprendre ce script tu ne sera pas capable de l'utiliser....

En gros c'est un système de pile, on peux en faire plein de trucs, comme une émulation de tableau par exemple, ou d'autres truc, mais bon il fo faire encore quelques fonctions soit meme pour vraiment pouvoir l'utiliser

en tout cas, merci encore Tynil ^_^

moi aussi j'aimerais comprendre

Par Blam le 1/12/2002 à 21:44:27 (#2688681)

tableau de quoi ?

Par Jaha Effect le 1/12/2002 à 21:52:03 (#2688740)

Provient du message de Azrael07

Jaha Effect > Je veux pas te démoraliser, mais je pense que si tu n'est pas capable de comprendre ce script tu ne sera pas capable de l'utiliser....


Ma capacité à utiliser quelque chose dépend uniquement du fait que je trouve une utilité a celle çi.
Alors donne moi une explication clair plutôt que de me laisser dans l'ignorance et évite de me prendre de haut.

Jaha Effect :D

Par Mastokk le 1/12/2002 à 21:52:43 (#2688748)

l'artiste est connu ?:confus: :D











désolé....

Par Azrael07 le 1/12/2002 à 22:07:04 (#2688867)

oulala t'affole pas comme ca. Si je t'explique pas plus c'est tout simplement que j'en suis incapable.

bon je vais essayé de le faire quand meme pour me pardonner "de te prendre de haut" :

Ce principe est le principe de la pile, qui permet selon le script de placer dans la chaine sData de la structure sPile une pile de donnée.

la première info entrée sera la dernière resortie. Le problème c'est que j'ai pas vraimnet d'exemple en tête pour illustrer cela, donc ca doit pas simplifier la compréention.

j'ai bien l'exemple de la pile du processeur, mais je pense pas que ca fera l'affaire....

Bon je cherche, et je vous donne une application de ce truc le plus tot possible (si tynril ne passe pas d'ici la éclairer nos lanternes)

Par Jaha Effect le 1/12/2002 à 22:15:36 (#2688927)

Si je traine sur ce forum, comme beaucoup, c'est avant tout pour apprendre, aider quand je peux, fournir des idées, en trouver ...
Quand je me retrouve confronté à un nouveau concepte, j'essaye tout d'abord d'y trouver une utilité, et si c'est le cas, j'approfondis le sujet jusqu'a ce que j'arrive à me dépatouiller avec.
Alors forcement quand on me sort que je peux pas comprendre, ça m'ennerve :D

Merci d'avance :)

Jaha Effect :D

Par Jedaï le 1/12/2002 à 22:33:44 (#2689055)

Tyn'> Tu veux dire que maintenant les struct sont parfaitement fonctionnelle !:amour:
Allelouïa, sortez les bouteilles faut fêter ça !:rasta:

CA, ça va être bien utile !

Note comme même que je ne m'attendais pas à ça : pile et tableau c'est tout de même pas exactement la même chose ;) . Bon mais là je pinaille :D . Qui veut de mon Chateau Chalon cuvée 1997 ?

Par Jaha Effect le 1/12/2002 à 22:47:57 (#2689185)

Le principe de la pile, j'ai compris...
Ex: tu rempli un carton de bouquins, le premier que tu auras mis dans le carton sera le dernier à en sortir quand tu le videra et le dernier entré sera le premier à sortir.
Ca, ça va, ce qui m'échappe, c'est l'utilité concrète de la chose.

Jaha Effect :D

Par Jedaï le 1/12/2002 à 22:48:10 (#2689188)

Jaha Effect> Une pile c'est un mode de stockage de donnée un peu particulier : imagine toi un paquet de carte, face vers le haut, le seul élément que tu en vois c'est la carte la plus haute. Si tu rajoute une carte, tu ne vois plus celle qui est en dessous, uniquement celle que tu viens de rajouter. Par contre si tu enlève la carte du dessus, tu ne peux plus voir cette carte sur ta pile de carte (éventuellement dans ta main), mais tu peux voir celle qui était en-dessous.

C'est le principe de la pile ! Un seul élément est visible (du moins dans l'acceptation la plus stricte de ce mot) et c'est le dernier qu'on a rajouté. L'expression "premier entré, dernier sorti" qu'on utilise souvent pour qualifier les piles (n'est-ce pas Azrael07 ;) ) vient simplement du fait que si on constitue une pile (en empilant les éléments), le premier élément qu'on mettra dans la pile sera le dernier qu'on récupérera en "désempilant". Les piles ont de nombreuses applications en informatique, surtout au niveau le plus bas (Assembler...) : la "pile" est en effet le modèle naturel du stockage sur ordinateur (on utilise le système d'adresse pour accéder aux éléments plus profond de la pile en fait, mais bon... :) ).
Voilà, c'est le minimum à savoir sur les piles.

Edit: désolé, j'ai commencé ce post avant que tu réponde...

Par Azrael07 le 1/12/2002 à 22:48:58 (#2689193)

bon alors un exemple complètement inutile mais c'ets pour vous aider a comprendre :

on a un campement troll, avec trois troll pas commode du tout. Alors a chaques fois qu'une créature entre dans leur campement, ils prennent la bestiole pour la bouffer. Seulement les trolls mine de rien ont vite le ventre pleins. Dans ces cas la les creatures vont etre mise dans un garde manger, et l'une d'entre elle sera boufée chaques matins. Mais a tant faire, on va bouffer la dernière créature capturée (l'est plus fraiche).

C'est la qu'intervient notre système de pile

Quand le joueur arrivera dans le trigger qui le capturera, on mettre dans celui ci (on enter bien sur)


AjouteElement(sPile P, GetTag(oCreature));
SetLocalString(GetModule(), "BouffeAuxTrolls", P.sData);


Le joueur sera alors placé a la suite de la pile.

Ensuite les troll vont vouloir bouffer le premier joueur de la pile (donc le dernier attrapé), on va le récuperer comme ca


struct sPile P;
P.sData = GetLocalString(GetModule(), "BouffeAuxTrolls");
sPile P = RetireElement(struct sPile P);//la je suis pas sur de la syntaxe de sPile P (c'est peu etre juste "P" mais je pense pas)
object oPlayer = GetObjectByTag(P.sDernierEnleve);


voila j'espère que vous avez a peu près compris, et pis désolé pour l'histoire débile qui sert de background g pas pu m'en empécher ^_^'

EDIT : bon ben voila le temp que je tappe ca y'a deja des réponces qui sont parit.... bon ben on va partir du principe que ca peux toujours servir

Par Jaha Effect le 1/12/2002 à 22:52:17 (#2689214)

Vivi j'avais compris ce concept, c'est des exemple concret en scriptage que j'aimerais voir :)

Jaha Effect :D

Par Jaha Effect le 1/12/2002 à 22:55:42 (#2689242)

Bha voilà qui est nettement plus clair :)

Merci pour cette explication :)

Jaha Effect :D

Par coolstar le 2/12/2002 à 0:57:49 (#2689968)

[FurryEffect]:D[/FurryEffect]

Par Tynril le 2/12/2002 à 1:17:06 (#2690076)

Oui bon, en bidouillant un peu, on peut bosser avec cette pile comme avec un tableau... Rah pis zut, je fais un code pour les tableaux :D Je reviens d'ici quelques minutes. :p

[Edit]Grosse flemme ce soir... 'ferais demain si personne l'a fait d'ici là

JOL Archives 1.0.1
@ JOL / JeuxOnLine