Aller au contenu

AlexMog

Modérateur spécialisé
  • Compteur de contenus

    322
  • Inscription

  • Dernière visite

  • Days Won

    34

Tout ce qui a été posté par AlexMog

  1. AlexMog

    Le Melichat

    Nop, le serveur est en full C, le client en Javascript.
  2. La commande PRIVMSG est fonctionnelle est implémentée (en test) sur le serveur.
  3. Ajout des commandes: PRIVMSG, ADDADMIN, REMADMIN, ADDOP, REMOP, KICK, BAN, CLIENT.
  4. Nouveau protocole en cours de mise en place (edit du sujet), IL N'EST PAS ENCORE ACTIF!
  5. Désolé si je n'ai pas pu répondre/travailler sur ce sujet, je n'ai pas eu accès à internet depuis 3 jours \o/. Pour ce qui est de la suite, effectivement des gros changements arrivent au niveau du protocole, et encore merci et bravo à Anaeria pour son très bon boulot
  6. Années d'experiences, Epitech et tests personnels (on a recoder Objdump à epitech, donc on sais comment ça marche vue de l'interieur )
  7. exact, le registre fais la même taille dans les deux cas (je parle de registre ASM ici)
  8. Un serveur et un client de test sont disponibles pour ceux qui souhaitent tester la communication, pour voir les réponses serveur ETC . RDV ici: http://labs-epimars.eu/alexmog/projets/melichat/ (ip serveur: labs-epimars.eu:42420
  9. Comme dit dans le protocole: "commande LOGIN", ce sera par authentification directe avec Melinyel
  10. Bad idea, on passe déjà par des websockets, ça risque de rendre le travail encore plus contraignant pour les devs! Je préfère baser le tout avec des commandes simples. (Façon IRC, une RFC simple), ce qui n'empeche pas de pouvoir déjà envoyer du HTML pour pouvoir mettre des couleurs dans le bordel (ou du BCode?)
  11. Je vous propose un petit client web vite fais, avec toute la panoplie API websocket (qu'il vous restera simplement à utiliser ) si vous souhaitez faire votre propre client en HTML/JS : http://labs-epimars.eu/alexmog/melichat-web.zip Enjoy! (Ceux qui le veulent: vous pouvez utiliser le code pour créer le votre, et le montrer sur ce lien! PAR CONTRE! ATTENTION! c'est un client qui envoie EN DUR les commandes (donc, il faut envoyer COMMANDE arguments ...), vous pouvez faire en sorte que celui-ci envoie MSG tout seul si il n'y a pas de commandes, etc.. C'est du parsing tout ça . J'espère avoir du monde qui fera des tests Je vous fournirais bientôt un serveur de tests .
  12. faudra voir avec les dev de l'appli melinyel
  13. Salut les enfants! Comme vous le savez déjà, notre joli forum a déjà un tchat... Comment dire... Plutôt basique, et qui a pas mal de latence =(. J'aimerais donc savoir si quelqu'un serait intéréssé pour le re-coder en ma compagnie? En sachant que celui-ci fournira un protocole open, qui pourra être utilisé par d'autres programmeurs si ils veulent se connecter au serveur de tchat . Ce que vous devez savoir si vous voulez rejoindre le projet: Eh bien, le minimum du design web, donc du HTML et du CSS, ainsi que pas mal de Javascript (puisque c'est une application est à coder et non pas du static!). Je vous fournis les fonctions évènementielles au niveau de la communication client/serveur (donc pas de soucis, vous ne toucherez pas aux Websockets si vous n'êtes pas habitué à les utiliser ), par contre, il faut savoir coder en Javascript pour parser les commandes . (ce qui est demandé est très simple!) Protocol_version actuelle du serveur: 086. dernière version du protocole: 093. Vous pouvez retrouver le protocole de communication ici: http://labs-epimars.eu/alexmog/projets/melichat/protocole.html Voilà, j'espère que vous serez intéréssés! J'attends avec impatience vos réponses . si certains dev veulent se lancer dans la création d'un client, je peux leur fournir les accès pour le serveur de test actuel . Si vous avez des idées d'ajout, hésitez pas! Bref! a bientôt! AlexMog.
  14. En réalité, c'est plus complexe que ça. Il faudrais tout décompiler en ASM pour voir ce que cela engendre réellement dans le code. pour l'ASM: méthode 1: push rbp mov rbp,rsp mov eax,DWORD PTR [rip+0xce] # 0x4005a4 mov DWORD PTR [rbp-0x4],eax movss xmm1,DWORD PTR [rbp-0x4] movss xmm0,DWORD PTR [rip+0xc2] # 0x4005a8 mulss xmm0,xmm1 movss DWORD PTR [rbp-0x4],xmm0 mov eax,0x0 pop rbp ret méthode 2: push rbp mov rbp,rsp mov eax,DWORD PTR [rip+0xde] # 0x4005b4 mov DWORD PTR [rbp-0x4],eax movss xmm0,DWORD PTR [rbp-0x4] movss xmm1,DWORD PTR [rip+0xd2] # 0x4005b8 divss xmm0,xmm1 movss xmm1,DWORD PTR [rip+0xca] # 0x4005bc mulss xmm0,xmm1 movss DWORD PTR [rbp-0x4],xmm0 mov eax,0x0 pop rbp ret Très clairement, tu fais appel moins de fois à ton processeur (14 appels contre 11), la première méthode est donc la plus rapide. Mais attention! Ce n'est valide que car les 2 cas proposent des float. En effet, si nous utilisions des int du début à la fin, la 2nde méthodes aurait été plus viable, pour éviter les casts inutiles. PS: je suis partit du principe que tu utilisait des floats pour tes calculs! Il faut savoir que les calculs entre floats sont BEAUCOUP (2.5*) plus lents que les calculs avec des int.
  15. Points positifs de chaque langages: C++: - Langage bas niveau, si tu sais faire du C++, tu sera faire du C# - Gestion de la mémoire complète (héoui, c'est toi qui fais tout à ce niveau là!) - Gestion des références, et de tout le tralala - Amélioration de l'apprentissage technique au niveau des langages machines - Tout ce qui peut être fait en C# peut être fait en C++! C#: - Très simple à prendre en main, très facile à apprendre - Garbage collector, donc yolo la mémoire - Framework .net assez complet (pas besoin de recoder plein de trucs (point positif ET négatif)) Points négatifs: C++: - Si tu as de mauvaises bases en C, ou que tu n'as jamais fait de C modulaire, certaines erreurs de C++ te seront étranges, mais si tu es adepte de la gestion mémoire, tu n'aura aucun soucis (les pointeurs, toussatoussa) - Long à apprendre et demande du temps pour bien le prendre en main C#: - Unique à windows, non compatible ou très mal adapté aux autres langages - Utilise le framework.net, ce qui peut ralentir les programmes (niveau indexation des foncitons, entre autre) - Lourd, un programme en C# sera au moins 25% plus lourd au niveau de la mémoire. - Peu de gestion mémoire (ça peut être un bon point comme un mauvais. Moins de memory gest = moins de contrôle) - Tout ce qui peut être fait en C++ ne peut pas être fait en C# (merci les limitations du framework .net) Voilà, à toi de faire ton choix à présent! Enjoy coding!
  16. AlexMog

    "else if" dans une boucle

    c'est le "équivalent au else" qui était faux . Ca n'équivaut pas à un else . Continue saute tout le code suivant le continue, et retourne au début de la boucle (en ASM, c'est un jmp vers le début de la boucle). Break arrete l'exécution de la boucle.
  17. AlexMog

    "else if" dans une boucle

    Je vois ce que tu veux faire. Je corrige ton code desuite, en te disant tes erreurs: bool condition = false; if (variable <= 0) { condition = true; } if (condition == false) { for (index = 0 ; index < 150 ; index++) { if (tableau[index] == 1) { condition = true; } else if (condition == true) { continue; // Ne sert à rien, n'utilises pas Continue si tu ne sais pas à quoi il sert. } } } if (condition == false)//équivalent du "else" // Faux. { } Le recode qui marche vraiment: if (variable > 0) { for (index = 0 ; index < 150 ; index++) { if (tableau[index] == 1) { condition = true; break; } } } if (!condition) { // à faire. }
  18. AlexMog

    Cours #4 - Récursivité et stack

    Un exemple de code ASM avec un generic push: ;; exemple avec la fonction "hello world" x86 asm global main extern printf section .text main: push rbp ;; Ici, le generic push mov rbp, rsp ;; Suite du generic push (on le retrouvera dans toutes les fonctions en C (sans exceptions, il est ajouté automatiquement par le compilateur) mov rdi, FormatStr ;; 1er param de printf call printf ;; call de printf mov rsp, rbp ;; on remet l'ancienne stack en place pop rbp ;; on vire la sauvegarde de l'ancienne stack mov rax, 60 ;; on prépare l'appel au systcall "exit" xor rdi, rdi ;; on passe le paramètre 0 dans rdi (xor x, x revient à mettre 0 dans x (car un xor de 2 même valeurs donne 0) syscall ;; appel du systcall n°60 ret ;; section read only section .rodata FormatStr db 'Hello World !',0Ah,0
  19. AlexMog

    Cours #4 - Récursivité et stack

    En réalité, tout ce passe au niveau du code ASM. Pour éviter de modifier la stack précédente, et être sûr que ladite stack ne soit pas modifiée, toutes les fonctions font une sauvegarde temporaire de la stack (c'est ce qu'on appelle le "generic push" en ASM). La stack est donc remplie temporairement avec les anciennes valeurs. Qui plus est, lorsque tu utilise une fonction qui contient elle même une variable, ou qui passe une variable en paramètre, celle-ci est stockée en stack (c'est pour cela qu'on préfèrera envoyer un pointeur plutôt qu'une structure en dur dans une fonctions ) (pour info: un pointeur = 8 octets (une structure contenant 2 int = 8 * 2 octets. Le choix est vite fait.)
  20. Hate de voir ça dans ce cas
  21. Bonjour à tous, Je vous présente Evolve Game. Evolve game est un jeu adapté d'une map sur Starcraft II (evolve) crée par VisionElf. Le but du jeu est de "farmer" les créatures. Plus vous tuez des créatures, plus vous gagnez des statistiques. Par exemple, si vous tuez un zombie, vous gagnez de la vie en plus, si vous tuez un creeper, c'est des dégats, si vous tuez un ocelot, de la vitesse, etc... Si vous tuez un joueur, vous gagnez 50% de ses stats. Le but du jeu étant d'adapter ce gamemode en PVP . Pour l'instant le plugin est encore en dév, et encore en alpha. Néanmoins, il est pratiquement fonctionnel, et il est conseillé de le coupler avec un autre plugin PVP (par exemple, un joli hunger games amélioré avec ce plugin? ) Enjoy the game! http://dev.bukkit.org/bukkit-plugins/evolve-game/ A bientôt! Mog.
  22. AlexMog

    Cours #0 - Avant propos et outils

    haha effectivement
  23. Pas de soucis Et ne t'inquiète pas, en allant à Epitech, tu n'aura pas besoin de savoir grand chose en arrivant
  24. AlexMog

    Cours #0 - Avant propos et outils

    haha exact, surtout que mes cours sont très proches de ceux piscine . Bref, bienvenue à toi dans la famille Epitech
×
×
  • Créer...