| Conditions multiples [Résolu] | |
|
|
Auteur | Message |
---|
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 12:28 | |
| Salut, j'ai un petit problème, en fait, j'ai plein de conditions avec plein de if (oui je sais je pourrais utiliser switch mais bon ce qui est fait est fait ^^), et à la fin il faut que si toutes les conditions sont fausses le jeu exécute un autre bout de code. Je pourrais utiliser : if variable != 1 && variable != 2 && variable != 3 mais j'ai plein de valeurs possible donc est ce qu'il y a un moyen de faire : if variable != 1 && 2 && 3 (enfin un truc du genre qui irait plus vite que la solution du dessus sachant qu'il faut vérifier plusieurs valeurs pour une seule variable). Merci d'avance
Dernière édition par nicoulas le Jeu 17 Juil 2008 - 16:21, édité 1 fois |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:01 | |
| j'ai une methode mais je sais pas si ca te simplifieras vraiment la tache:
tu cree un tableau valeur[1] valeur[2] dans chacun des elements du tableau tu mets la valeur de la variable que ca ne doit pas etre par exemple valeur[1]=1 valeur[2]=3 valeur[3]=6
et nb_valeurs qui est egal au nombre de valeurs interdites de bases. (ici 3)
et ensuite tu fais une fonction test: dans celle ci tu mets:
var i=0;
for(i=1;i<=nb_valeurs;i+=1) { if valeur[i]=variable { return 0; } }
return 1;
Dernière édition par edi9999 le Jeu 17 Juil 2008 - 13:36, édité 1 fois |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:29 | |
| non en fait c'est pas des valeurs interdites, mais j'ai des valeurs 'de base' et si la variable n'est pas égale à ces valeurs, il faut que j'éxécute un bout de code mais merci de ta réponse |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:34 | |
| oui, mais ca marche quand meme, j'appelle ca valeur interdite comme ca, tu peux mettre valeur de base aussi si tu veux. |
|
| |
Pepsy Utilisateur confirmé: Rang ***
Messages : 608 Localisation : Devant mon ordinateur à écrire des lignes de codes Projet Actuel : RPG
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:34 | |
| tu utilise un switch avec default - Code:
-
switch (variable) { case 1: ACTION ;break; case 2: ACTION ;break; ...... default: ACTION ;break; //Si tout est faux } |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:37 | |
| il a dit qu'il avait la flemme d'utiliser un switch |
|
| |
Pepsy Utilisateur confirmé: Rang ***
Messages : 608 Localisation : Devant mon ordinateur à écrire des lignes de codes Projet Actuel : RPG
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:40 | |
| |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 13:47 | |
| oui mais si c'est la seule solution (ou la plus simple) ... je verrais, si ça se trouve ça me prendrais moins de temps de faire :* if variable != 1 && variable != 2 && variable != 3 then ... au moins ça m'éviterais de tout réécrire ce qui serait bien, ce serait un moyen de faire : if variable != 1 && 2 && 3 then ... mais je crois pas que ce soit possible (en tout cas pas comme ça) @ pepsy : lol ^^ en fait si je fais un switch je suis obligé de tout réécrire |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 14:40 | |
| bin tu regarde tous les valeurs possible de ton nombre
et avec != , > et < t'essaye d'en prendre un maximum de nombre différent
tu peu aussi utilliser or
genre
if (nombre>0 and nombre<102 and nombre!=55) or (nombre>108 and nombre<256) |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 14:42 | |
| oui ça je connais mais ça va être long puisque je dois avoir une vingtaine de valeurs à mettre dans mon if (d'ou le problème) enfin bon au pire je ferais un gros if et puis ça ira plus vite finalement ^^ |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 14:49 | |
| Oui c'est pas un probleme super genant si tu n'as que vingt valeurs. |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 15:51 | |
| Ca dépend, est-ce que ses valeurs sont consécutives ? dans ce cas il pourrait utiliser un simple if( (value > 0) && (value < 20) ) sinon utilise ca : CheckVar( VarName, Mixed Values) VarName - String -> nom de la variable locale Mixed Values - String -> les valeurs que la variable ne peut pas prendre séparées par un "|" (ex: "1|2|3" ) - Citation :
/* * Script CheckVar( VarName, Mixed Values) * par Master47 * * Teste une variable afin de savoir si elle correspond à une des valeurs mélagées * * Retourne : 1 si la variable n'a aucune des valeurs, 0 si oui, -1 si la variable est inconnue * */
// Nom de variable __Var = string( argument[0]) ;
if( !variable_local_exists( __Var ) ) { return -1 ; } // Valeurs à rejeter ( separer les valeurs de '|' ) __ToReject = string( argument[1] ) + "|" ;
// Valeurs à rejeter ( extraites du str ) __Values = ds_list_create(); // Var temporaires var __CVal, __Len;
__CVal = "" ; __Len = string_length( __ToReject ) ;
for( i = 0; string_length( __ToReject) > 0; i += 1 ) { if( string_char_at( __ToReject, 0) == "|" ) { ds_list_add( __Values, string( __CVal )) ; __CVal = "" ; __ToReject = string_copy( __ToReject, 2, __Len - i); } else { __CVal += string_char_at( __ToReject, 0); __ToReject = string_copy( __ToReject, 2, __Len - i); } } var Check;
Check = false ;
for( i = 0; i < ds_list_size( __Values); i += 1) { if( string( variable_local_get( __Var)) == string( ds_list_find_value( __Values, i)) ) { Check = true ; } }
ds_list_clear( __Values) ; ds_list_destroy( __Values) ;
if( Check == false ) { return 1; } else { return 0; }
|
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:05 | |
| ton script a l'air intéressant master, c'est possible de mettre !1|!2 pour les valeurs que peut prendre la variable ou ça ne fonctionnera pas ? |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:11 | |
| Bah t'as pas besoin de faire ca, il te suffit de jouer avec la fonction. Si tu veux par exemple que ta variable ne puisse as prendre ces deux valeurs tu fais : - Citation :
Ret = CheckVar("MyVariable","1|2");
if(Ret == 1) { // n'a pour valeur ni 1 ni 2 } else if(Ret == 2) { // a pour valeur 1 ou 2 } else if(Ret == -1) { //Erreur avec ta variable }
|
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:20 | |
| ah oui ok Merci beaucoup master :-D |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:26 | |
| De rien |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:43 | |
| par contre j'ai mis un petit moment avant de me rendre compte que ton script ne marchait qu'avec les variables locales, donc j'ai transformé ma variable globale en variable locale enfin bon ça marche c'est l'essentiel, encore merci ^^ |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:49 | |
| si tu voulais que ca marche avec des variables globales, il faut que tu changes les variable_local_set et les variable_local_get par des variable_global_set et variable_global_get respectivement :fier: |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:52 | |
| J'avais pensé implanter un système automatique mais jsuis un peu fainéant alors
Dernière édition par master47 le Jeu 17 Juil 2008 - 16:53, édité 1 fois |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:53 | |
| j'ai essayé mais ça n'a pas marché |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 16:54 | |
| |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 17:15 | |
| non je parlais juste de convertir ton script pour les variables globales mais je me suis débrouillé en déclarant une variable locale qui a la valeur de la variable globale donc c'est impec' |
|
| |
Pepsy Utilisateur confirmé: Rang ***
Messages : 608 Localisation : Devant mon ordinateur à écrire des lignes de codes Projet Actuel : RPG
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 23:19 | |
| - nicoulas a écrit:
- non je parlais juste de convertir ton script pour les variables globales mais je me suis débrouillé en déclarant une variable locale qui a la valeur de la variable globale donc c'est impec'
Deux variable au lieu d'une, pas bien pour l'optimisation^^, sa te prend plus de mémoire |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 23:40 | |
| arretez avec vos optimisations par ci optimisations par la . Ca sert a rien de s'epargner quelques noms de variables si on stocke ses fichiers de musiques en.waw meme en .mp3 ou ses images en bmp ou meme en png. C est pas une pauvre variable de plus qui va changer toute la vitesse de votre programme. Si tes variables, tu les changes au total plus de 10000 fois par step, ok. Mais sinon, vous savez bien que chaque objet utilise de toute facon une tonne de variable, comme x,y,image_index,... et il y en a bien au moins 50, donc franchement arretez de rabbachez pour une demi douzaine de variables en plus . |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Jeu 17 Juil 2008 - 23:40 | |
| hé oui mais :
- c'est la (seule ?) solution, en tout cas la plus simple ^^ - c'est pas une variable en plus qui va bouffer de la ram ^^
edit : lol merci edi tu m'as devancé, mais t'as dit l'essentiel ^^ |
|
| |
Pepsy Utilisateur confirmé: Rang ***
Messages : 608 Localisation : Devant mon ordinateur à écrire des lignes de codes Projet Actuel : RPG
| Sujet: Re: Conditions multiples [Résolu] Ven 18 Juil 2008 - 0:24 | |
| |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Ven 18 Juil 2008 - 0:48 | |
| j'ai beaucoup optimisé le reste du jeu donc je peux me permettre une petite folie non ? |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Conditions multiples [Résolu] Ven 18 Juil 2008 - 10:56 | |
| J'apellerais pas ca un petite folie, c'est pas comme si ta variable allait être un string de 14000 caractères, c'est pas ca qui va ralentir ton jeu |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Conditions multiples [Résolu] Ven 18 Juil 2008 - 11:14 | |
| |
|
| |
Pepsy Utilisateur confirmé: Rang ***
Messages : 608 Localisation : Devant mon ordinateur à écrire des lignes de codes Projet Actuel : RPG
| Sujet: Re: Conditions multiples [Résolu] Ven 18 Juil 2008 - 19:46 | |
| Oué mais l'ordinateur est faignant, la preuve il ram:p :gniah: |
|
| |
Contenu sponsorisé
| Sujet: Re: Conditions multiples [Résolu] | |
| |
|
| |
| Conditions multiples [Résolu] | |
|