|
Résultats du défi du 20/02/02: Un convertisseur binaire
Le defi consiste a créer un identifieur $c ("c" pour Conversion) ayant pour fonction de convertir un nombre binaire en decimal (base 2 a 10) et vice versa, par le biais de 2 propriétés, "bin" et "dec"
Exemples:
$c(45).bin devra retourner 101101
$c(101101).dec retournera 45
Algorithme:
Trouvable un peu partout sur Internet
|
|
Règlement |
Doit fonctionner sous mirc 5.9
Ne doit pas utiliser l'identifieur $base
Doit être le plus léger possible, tout en restant fonctionnel
Un seul script par personne
pas de DLL
|
| |
|
Cliquer ici pour connaître le gagnant (ou la gagnante)
Liste des participants (5)
Nom du script |
Auteur |
Commentaire |
el pétit $c, en fichier remote, et pas du tout optimisé :)) |
BigBezus |
Points forts:
Très léger (265 octets)
Utilise le préfixe var pour creer une variable, ce qui permet sa destruction automatique a la fin de l'éxécution du script
N'utilise qu'une boucle, et oui, $c fais les 2 conversions (binaire a decimal, et inversement) et vérifie seulement a la fin la propriétée, pour retourner la bonne conversion
Points faibles:
Ne marche pas correctement pour les nombre binaires d'une longueure de plus de 99 caractères.
La propriétée n'est pas proprement vérifiée, en effet, il suffit que la lettre B soit dans la propriétée pour que $c retourne la valeur décimale en binaire (Ex: $c(45).b retournera 101101, et $c(101101).nimportequoi retournera 45)
|
Bin-Dec |
eViL_dEaD |
Points forts:
Marche ;)
475 octets
Dans l'ensemble bonne optimisation du code
Utilise le préfixe var pour creer une variable (ce qui permet de detruire la variable a la fin de l'éxécution du script. Mais ce n'était pas obligatoire)
Points faibles:
Ne reinitialise pas les variables au debut de l'execution (donc si une variable %r existe deja, $c(45).bin peut retourner [contenu actuel de %r]101101)
Utilise $calc() là ou ce n'est pas nécéssaire (Ex: %t = $calc( 2 ^ %p )) (mirc peut calculer automatiquement les variables du type: %x = 10 - 5 (Dans le cas ou ce n'est qu'une seule opération))
|
dec2bin |
Maxou |
Points forts:
Marche :)
496 octets
Partie du code dédiée a la conversion binaire->Décimale légère
Points faibles:
Utlise $calc() là ou ce n'est pas nécessaire
Si la propriété de l'identifieur est autre que bin, celui ci convertit de binaire en decimal automatiquement, meme si la propriété n'est pas dec (du a la ligne: $iif($prop == bin,goto b,goto d)). Cependant, cela n'empeche pas le bon fonctionnement du script si on utilise la propriété dec
|
Debin |
Korrigan |
Points forts:
Marche
Effectue beaucoup des vérifications sur les paramètres ou les propriétés de $c tout au début de l'éxécution, et reporte toutes les erreurs rencontrés dans le status
Points faibles:
Fichier un peu gros par rapports aux autres, 1400 octets et des poussieres, mais tout de meme acceptable (et tres fonctionnel :)
Utilise des variables de plusieurs caractères (Ex: %tok aurais pu etre abrégé en %t)
N'utilise pas le préfixe alias devant les noms d'alias, donc doit etre chargé dans les alias, et non dans le remote
Fichier enregistré au format .ini, donc qui comporte des numéros avant chaque lignes, et augmente la taille du script
Les commandes sont sur plusieurs lignes, ce qui a pour effet d'augmenter la taille du fichier (avec les espaces)
|
Dec2Bin |
Optik |
Points forts:
Je poste mon defi juste pour le fun, rien de plus :)
Points faibles:
|
Le gagnant du défi: el pétit $c, en fichier remote, et pas du tout optimisé :)) de BigBezus
Car il est leger, fonctionnel (ou presque ;), et respecte toutes les contraintes du defi
Retour au défi du moment
|
|