AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Raccourcir un long code

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Raccourcir un long code    Mer 30 Avr 2014 - 17:20

Bonjour .

J'ai un code de 88 lignes que je doit changer a chaque fois que je cree un objet , sois un gros travail ^^

Je voudrai savoir si c'est possible de le raccourcire en 8 lignes a peut près , je pense que c'est possible car a chaque fois c'est le même code mais avoir d'autre chiffres , mais vue que ce sont des variables qui change , je ne peut pas faire de boucle for ou repeat ( j'ai essayer pas mal de chose même si je pense que les boucles for ne serait pas utile ) .
Je précise que le code est dans Step .

Le code :
Code:

with craft_slot0 {
if slot_n=0{if global.nb_cobble>0{global.slot_0=obj_drop_cobble ; global.spr_slot0=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_0=obj_drop_wood ; global.spr_slot0=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_0=obj_drop_dirt ; global.spr_slot0=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_0=obj_drop_arbre_plante ; global.spr_slot0=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot2

with craft_slot1{
if slot_n=0{if global.nb_cobble>0{global.slot_1=obj_drop_cobble ; global.spr_slot1=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_1=obj_drop_wood ; global.spr_slot1=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_1=obj_drop_dirt ; global.spr_slot1=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_1=obj_drop_arbre_plante ; global.spr_slot1=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot3

with craft_slot2{
if slot_n=0{if global.nb_cobble>0{global.slot_2=obj_drop_cobble ; global.spr_slot2=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_2=obj_drop_wood ; global.spr_slot2=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_2=obj_drop_dirt ; global.spr_slot2=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_2=obj_drop_arbre_plante ; global.spr_slot2=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot4

with craft_slot3{
if slot_n=0{if global.nb_cobble>0{global.slot_3=obj_drop_cobble ; global.spr_slot3=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_3=obj_drop_wood ; global.spr_slot3=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_3=obj_drop_dirt ; global.spr_slot3=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_3=obj_drop_arbre_plante ; global.spr_slot3=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot5

with craft_slot4{
if slot_n=0{if global.nb_cobble>0{global.slot_4=obj_drop_cobble ; global.spr_slot4=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_4=obj_drop_wood ; global.spr_slot4=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_4=obj_drop_dirt ; global.spr_slot4=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_4=obj_drop_arbre_plante ; global.spr_slot4=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot6

with craft_slot5{
if slot_n=0{if global.nb_cobble>0{global.slot_5=obj_drop_cobble ; global.spr_slot5=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_5=obj_drop_wood ; global.spr_slot5=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_5=obj_drop_dirt ; global.spr_slot5=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_5=obj_drop_arbre_plante ; global.spr_slot5=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot7

with craft_slot6{
if slot_n=0{if global.nb_cobble>0{global.slot_6=obj_drop_cobble ; global.spr_slot6=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_6=obj_drop_wood ; global.spr_slot6=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_6=obj_drop_dirt ; global.spr_slot6=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_6=obj_drop_arbre_plante ; global.spr_slot6=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot8

with craft_slot7{
if slot_n=0{if global.nb_cobble>0{global.slot_7=obj_drop_cobble ; global.spr_slot7=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_7=obj_drop_wood ; global.spr_slot7=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_7=obj_drop_dirt ; global.spr_slot7=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_7=obj_drop_arbre_plante ; global.spr_slot7=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

//////////// slot9

with craft_slot8{
if slot_n=0{if global.nb_cobble>0{global.slot_8=obj_drop_cobble ; global.spr_slot8=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{global.slot_8=obj_drop_wood ; global.spr_slot8=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{global.slot_8=obj_drop_dirt ; global.spr_slot8=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{global.slot_8=obj_drop_arbre_plante ; global.spr_slot8=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}}

Merci d'avance , sa m'aidera Beaucoup si vous savez comment faire , car changer a chaque fois sa , me donne envie de me tué ! ^^
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 17:24

scripts

_________________
                 
Revenir en haut Aller en bas
Rem_101
*Excellent utilisateur*
avatar

Messages : 4356
Localisation : chez votre marchand de journaux

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 17:29

^ fais des fonctions. Smile
Revenir en haut Aller en bas
Herdge
Très bonne participation
avatar

Messages : 164

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 18:05

J'en profite pour poser une question. Dans ton projet Bomberman Onilink tu utilises quasiment que des scripts et très peu de codes dans les objets. Cela rend évidemment tout plus élégant et plus lisible. Je me demandais si cela optimisait aussi l'exécution ou non ?
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 18:34

J'ai du mal m'exprimer ^^
C'est un seul et meme code sur un seul et meme objet , donc un script ne me servirait a rien , enfin je pense .

Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
avatar

Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 19:01

Ben oui script  crossa  j'ai la flemme d’essayer de comprendre ce que tu as voulu faire mais en gros:

tu fais un script au nom que tu veux
Code:
if slot_n=0{if global.nb_cobble>0{argument0=obj_drop_cobble ; argument1=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{argument0=obj_drop_wood ; argument1=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{argument0=obj_drop_dirt ; argument1=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{argument0=obj_drop_arbre_plante ;
argument0=spr_arbre_plante}else{slot_n+=1


tu appel ton script avec les bon arguments:

Code:
with craft_slot1{
scr_nom(global.slot_1,global.spr_slot1)}

with craft_slot2{
scr_nom(global.slot_2,global.spr_slot2)}

with craft_slot3{
scr_nom(global.slot_3,global.spr_slot3)}

with craft_slot4{
scr_nom(global.slot_4,global.spr_slot4)}

etc...


Herdge

Non les scripts c'est juste pour l'aspect pratique et visuel rien d'autre.

_________________
Spoiler:
 


Dernière édition par chopsuey le Mer 30 Avr 2014 - 20:19, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 19:45

Avec GM ça ne rend pas l’exécution plus rapide, mais dans un langage compilé le fait de réduire la taille du code peut permettre une exécution plus rapide grâce a la mémoire cache du processeur, ainsi que les optimisations apportées par le compilateur.
Dans tous les cas il faut vraiment utiliser dès que possible des fonctions, car ça sert avant tout a rendre le code plus clair, en plus de diminuer sa taille.
Un bon code avec des fonctions aux noms explicite n'aurait même pas besoin de commentaires, c'est pour dire a quel point c'est vital d'en faire usage dès que cela est possible.

_________________
                 
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 20:45

ha ok je n'avais pas conpris ou vous vouliez métré un script autant pour moi , merci beaucoup en tout cas .
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Raccourcir un long code    Mer 30 Avr 2014 - 21:24

j'ai un petit problème , j'ai bien mis mon script et tout , mais le jeu se comporte comme si justement le code n'était pas la , pourtant mon script est bien :

Nom du script : scr_craft_if

Code:
if slot_n=0{if global.nb_cobble>0{argument0=obj_drop_cobble ; argument1=spr_cobble}else{slot_n+=1}}
if slot_n=1{if global.nb_wood>0{argument0=obj_drop_wood ; argument1=spr_wood}else{slot_n+=1}}
if slot_n=2{if global.nb_dirt>0{argument0=obj_drop_dirt ; argument1=spr_dirt}else{slot_n+=1}}
if slot_n=3{if global.nb_arbre_plante>0{argument0=obj_drop_arbre_plante ;argument1=spr_arbre_plante}else{slot_n+=1}}

if slot_n>3{slot_n=0}

et le code que j'ai mis :

Code:
with craft_slot0{scr_craft_if(global.slot_0,global.spr_slot0)}
with craft_slot1{scr_craft_if(global.slot_1,global.spr_slot1)}
with craft_slot2{scr_craft_if(global.slot_2,global.spr_slot2)}
with craft_slot3{scr_craft_if(global.slot_3,global.spr_slot3)}
with craft_slot4{scr_craft_if(global.slot_4,global.spr_slot4)}
with craft_slot5{scr_craft_if(global.slot_5,global.spr_slot5)}
with craft_slot6{scr_craft_if(global.slot_6,global.spr_slot6)}
with craft_slot7{scr_craft_if(global.slot_7,global.spr_slot7)}
with craft_slot8{scr_craft_if(global.slot_8,global.spr_slot8)}

Mais comme j'ai dit le jeu se comporte comme si le script était pas la :/
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Raccourcir un long code    Jeu 1 Mai 2014 - 7:27

Les arguments sont des copies des paramètres envoyés a la fonction.
Voila pourquoi fallait utiliser un tableau pour les slots (t'aurais juste eu a envoyer des indices en paramètres), car maintenant tu es nickay.

_________________
                 
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Raccourcir un long code    Jeu 1 Mai 2014 - 9:51

J'utiliserai alors un tableau Merci bien pour l'info ^^
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Raccourcir un long code    Jeu 1 Mai 2014 - 10:47

Je ne comprend pas meme avec un tableau sa ne marche pas :/

j'ai bien mis :
with craft_slot0{scr_craft_if(global.slot[0],global.slot_spr[0])}

dans le draw :

with craft_slot0{
if global.slot_spr[0] !=0 {draw_sprite(global.slot_spr[0],0,x,y)}}

j'ai initialiser les variable : global.slot[0]=0 et global.slot_spr[0]=0

Une idée ?

Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8904
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Raccourcir un long code    Jeu 1 Mai 2014 - 11:03

Faut pas passer le tableau, mais l'indice du tableau:

script:
if(slot_n==0) {if global.nb_cobble>0{global.slot[argument0]=obj_drop_cobble ; global.slot[argument1]=spr_cobble}else{slot_n+=1}}

appel:
with craft_slot0{scr_craft_if(0, 0)}

_________________
                 
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Raccourcir un long code    Jeu 1 Mai 2014 - 12:06

Exacte merci bien ^^
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Raccourcir un long code    

Revenir en haut Aller en bas
 
Raccourcir un long code
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Semaine internationale du portage => code promo ;-)
» Vocabulaire dans la Marine (code international des signaux )
» Chasseur de mines M619 Vinh-Long
» Code pour 10 % chez Séphora !
» Recherche des Verre Long Drink F913

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: