| | Comparaison GML/other | |
| | Auteur | Message |
---|
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Comparaison GML/other Mer 8 Mai 2013 - 19:02 | |
| Suite au message de Marty sur la partie Zut je met ici un petit comparatif entre le GML et de l'AS3 (actionScript 3) si des personnes sont motivées pour faire la même chose avec un autre langage je leurs tends mon clavier. Note : j'utilise des accesseurs même sous GM. AS3: - Spoiler:
- Code:
-
package { public class Witch { //##### Attributs ##### //##################### private var _name:String; private var _level:int; private var _life:int; private var _life_max:int; //##### Create ##### //################## public function Witch( level:int, name:String ) { _level = level; _name = name; _life = _life_max = level*10; } //##### GET ##### //###############
public function get level():int { return _level; } public function get name():String { return _name; } public function get life():int{ return _life; } public function get life_max():int{ return _life_max; } //##### SET ##### //###############
public function set level( level:int ):void { _level = Math.max(1,level); } public function set life( life:int ):void { _life = Math.max(0,life); }
public function set life_max( life_max:int ):void { _life_max = Math.max(1,life_max); } } }
GML: - Spoiler:
Objet: Witch create: - Code:
-
name=""; level=1; life_max=level*10; life=life_max; script: witchGetLevel - Code:
-
return argument0.level; script: witchGetName - Code:
-
return argument0.name; script: witchGetLife - Code:
-
return argument0.life; script: witchGetLifeMax - Code:
-
return argument0.life_max; script: witchSetLevel - Code:
-
argument0.level = max(1,argument1); script: witchSetLife - Code:
-
argument0.life = max(0,argument1); script: witchSetLifeMax - Code:
-
argument0.life_max = max(1,argument1);
Note: En AS3 il est impossible de modifier le nom (_name) du mage alors qu'en GML on peut le faire et pour les utilisateurs de CheatEngine c'est cadeaux bonux.
Création d'une instance avec le constructeur (create pour GM) et modification / récupération des attribues avec les méthodes get/set. AS3: - Spoiler:
- Code:
-
var my_witch:Witch = new Witch(10, "Magnius"); trace(my_witch.level); //retourne 10; my_witch.level=20; trace(my_witch.level); //retourne 20;
GML: - Spoiler:
- Code:
-
my_witch=instance_create();
with(my_witch){ level=10; name="Magnius"; } show_debug_message(witchGetLevel(my_witch));// return 1 ... but, but, but, but, WTF!? witchSetLevel(my_witch,20); show_debug_message(witchGetLevel(my_witch));// retourne 20;
A savoir: AS3 peut tourner sous un navigateur qui dispose d'un lecteur flash mais peut tourner comme une application de bureau avec Adobe Air et ça sous les systèmes soutenues par Air et en bonus c'est compatible WII et WII U |
| | | onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Comparaison GML/other Mer 8 Mai 2013 - 19:28 | |
| C++ - Code:
-
class Witch { string name; int level, life_max, life;
public: Witch() : name(""), level(1), life_max(10*level), life(life_max) {} Witch(string name, int level) : name(name), level(level), life_max(10*level), life(life_max) {}
int getLevel() const { return level; } string getName() const { return name; } int getLife() const { return life; } int getLifeMax() const { return 10*level; }
void setLevel(int level) { this->level = level; } void setLife(int v) { life = v; } void setName(string str) { name = str; } }; - Code:
-
Witch witch("Magnius", 10); cout << witch.getLevel() << endl; witch.setLevel(20); cout << witch.getLevel() << endl; |
| | | onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Comparaison GML/other Mer 8 Mai 2013 - 20:21 | |
| C - Code:
-
typedef struct Witch { char name[30]; int level, life_max, life; };
void witchInit(Witch *ins) { ins->name[0] = '\0'; ins->level = 1; ins->life_max = 10; ins->life = ins->life_max; }
void witchSetName(Witch *ins, const char *str) { strcpy (ins.name, str); }
int witchGetLifemax(Witch *ins) { return ins->level * 10; }
- Code:
-
Witch witch; witchInit(witch); printf("%d\n", witch.level); witch.level = 20; printf("%d\n", witch.level); |
| | | Oculus Utilisateur confirmé: Rang *****
Messages : 1688
| Sujet: Re: Comparaison GML/other Mer 8 Mai 2013 - 20:42 | |
| C# - Code:
-
public class Witch { public string Name { get; set; }
private int level; public int Level { get { return level; } set { level = Math.Max(1, value); } }
private int life; public int Life { get { return life; } set { life = Math.Max(0, value); } }
private int lifeMax; public int LifeMax { get { return lifeMax; } set { lifeMax = Math.Max(1, value); } }
public Witch(int _level, string name) { level = _level; Name = name; life = lifeMax = level * 10; }
} - Code:
-
Witch myWitch = new Witch(10, "Magnius"); Console.WriteLine(myWitch.Level); myWitch.Level = 20; Console.WriteLine(myWitch.Level); |
| | | Morwenn Très bonne participation
Messages : 151 Projet Actuel : Icare
| Sujet: Re: Comparaison GML/other Mar 6 Aoû 2013 - 17:11 | |
| Python 3 - Code:
-
class Witch: def __init__(self, name="", level=1): self.name = name self.level = level self.life = self.life_max
@property def life_max(self): return self.level * 10
- Code:
-
witch = Witch("Magnius", 10) print(witch.level) witch.level = 20 print(witch.level)
Python 2 - Code:
-
class Witch(object): def __init__(self, name="", level=1): self.name = name self.level = level self.life = self.life_max
@property def life_max(self): return self.level * 10
- Code:
-
witch = Witch("Magnius", 10) print witch.level witch.level = 20 print witch.level
Note : J'aurais pu faire de life, level et name des property également. Seulement, ce n'est pas nécessaire pour le moment. On peut transformer ça plus tard dans le développement sans changer les endroits où les variables sont utilisées. _________________ Dur Dabla, pour qui voudrait écouter un brin de metal celtique.
Dernière édition par Morwenn le Mer 7 Aoû 2013 - 14:15, édité 2 fois |
| | | GrandeLangue Bonne participation
Messages : 77 Localisation : Lille Projet Actuel : Faire des maths
| Sujet: Re: Comparaison GML/other Mar 6 Aoû 2013 - 22:53 | |
| Caml Light - Code:
-
type witch = { name: string; level: int; life: int; life_max: int };;
let Witch name level = let life = 10 * level in { name = name; level = level; life = life; life_max = life };;
let witchSetLevel witch level = { name = witch.name; level = max 1 level; life = witch.life; life_max = witch.life_max };;
let witchSetLife witch life = { name = witch.name; level = witch.level; life = max 0 life; life_max = witch.life_max };;
let witchSetLifeMax witch life_max = { name = witch.name; level = witch.level; life = witch.life; life_max = max 1 life_max };; - Code:
-
let my_witch = ref (Witch "Magnius" 10);; print_int !my_witch.level;; (* return 10 *) my_witch := witchSetLevel !my_witch 20;; print_int !my_witch.level;; (* return 20 *) Malheuresement, je ne connais pas le OCaml. (C'est d'autant plus malheureux qu'OCaml, c'est Caml Light en mieux, avec des notions d'objet et de classe en plus ) |
| | | Contenu sponsorisé
| Sujet: Re: Comparaison GML/other | |
| |
| | | | Comparaison GML/other | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |