Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Emulation de Tableaux
Emulation de Tableaux
Par Tynril le 1/12/2002 à 21:09:00 (#2688361)
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)
Jaha Effect :D
Par Azrael07 le 1/12/2002 à 21:44:18 (#2688680)
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 ^_^
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)
désolé....
Par Azrael07 le 1/12/2002 à 22:07:04 (#2688867)
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)
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)
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)
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)
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)
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)
Jaha Effect :D
Par Jaha Effect le 1/12/2002 à 22:55:42 (#2689242)
Merci pour cette explication :)
Jaha Effect :D
Par coolstar le 2/12/2002 à 0:57:49 (#2689968)
Par Tynril le 2/12/2002 à 1:17:06 (#2690076)
[Edit]Grosse flemme ce soir... 'ferais demain si personne l'a fait d'ici là
JOL Archives 1.0.1
@ JOL / JeuxOnLine