Galaxy 55 : script de récupération des prix

Edit 2013-11-19 : le jeu Galaxy 55 a été mis en jachère pour une durée indéterminée. Cet article n’est donc plus d’actualité. Je le conserve ici, car tout ce que je dis est éternel.

Salutations aux capitalicubistes qui me lisent !

Aujourd’hui, un article de geek avec du code dedans. Mais pas du python. Nous, dans le blog de Réchèr, on n’est pas que des machines à pythonner, on est aussi des êtres humains, avec un cœur, un foie, des ovaires et/ou des couilles. (On est surtout un mec tout seul avec des petites voix dans la tête).

Bref, ce que je vous propose, c’est

Du javascript DTC (Dans Ta Console)

Une fois n’est pas coutume, mais plusieurs fois est ; la société Motion Twin a créé un chouette jeu. C’est « comme Minecraft, mais dans l’espace », et ça s’intitule Galayx 55. Le joueur y explore des planètes diverses et variées. Minage, extraction, récolte et recherche de constructions témoignant d’une civilisation perdue sont de mise. Je ne vous décris pas tout en détail, d’autres sites feront ça mieux que moi, et avec moins de commentaires débiles en rouge pour sous-entendre que je suis fou et que je voudrais que tout parte, non que tout reste, non que tout parte mais que le reste reste, prolétaritude du dictatioriaaaaaaaaaaaaahhhhh !

Ce jeu comporte un marché d’échange de cubes. Un peu comme Wall Street, mais sans les hippies qui l’occupy. (Tiens d’ailleurs, il en est où ce mouvement ? Faudra que je le moteur-de-recherchise, à l’occasion). Les joueurs y font des offres d’achats, de vente et des transactions. Tout cela est bien biaux.

Il y a juste un problème d’interface : on peut consulter les prix pour chaque type de cube, un par un, mais il n’y a pas de récapitulatif global!

Il y a aussi quelques soucis dans l’affichage des courbes.

Alors vous êtes là, avec vos planètes comportant des centaines de cubes, vous « kiffez » l’exploitation intensive de la nature dans le but bien légitime d’amasser de l’argent, vous êtes prêt à tondre des hectares entier de forêt luxuriante pour votre luxe, mais vous ne pouvez pas savoir quels cubes se vendent le mieux. Mince alors.

Heureusement, je suis là.

Disgression : j’ai mis le mot « kiffer » entre guillemets juste pour m’amuser à faire le type qui parle pas djeun’s mais qui essaie quand même de parler djeun’s tout en ayant bien conscience qu’il sait pas le faire, et qui prend tout cela au second degré. Je fais du second degré sur du second degré. D’ailleurs, pour être vraiment clair sur mes intentions, j’aurais du mettre les guillemets entre guillemets. Ça aurait donné quelque chose comme ça : ‘ »‘kiffer' »‘. Sauf que WordPress bidouille mes guillemets pas comme je veux. Bon, passons.

Galaxy 55 est un jeu comportant des arbres et des barrières en bois, comme ce qu’on voit en arrière-plan de cette image.

Je me suis lancé dans la réalisation d’un bout de javascript automatisant la récupération des prix. Comme j’y connais pas grand-chose à la programmation web en général, je me suis dit que ce serait sûrement faisable sous la forme d’un gros tas de code à copier-coller comme un bourrin dans la console du navigateur. J’y suis parvenu.

Je ne m’en suis rendu compte que plus tard, mais j’ai vraiment eu du bol. Ça a pu fonctionner ainsi grâce au fait que la recherche des cubes, leur sélection et la récupération des prix se font par des requêtes Ajax.

(ici, il faudrait mettre une image d’un bidon de lessive Ajax, mais ce serait tellement convenu. Je vous l’épargne, d’accord ?)

Les requêtes Ajax ne changent pas l’URL, ce qui signifie qu’il n’y a pas de méga-reset de la page web qui aurait tué dans l’œuf l’exécution de mon gentil script. Oui, mon script s’exécute dans un œuf et il vous emmerde.

Et donc ça marche. Mon code, après quelques instants de moulinage, finit par logger dans la console le tableau complet des cours et des prix. Pour savoir comment s’en servir, vous pouvez consulter, au choix

Faites-en bon usage, jeunes parallelépipédocapitalistes !

Les trucs que j’ai pas réussi à faire dans ce script

Des requêtes jQuery qui ne se bloquent pas

Une petite partie de jQuery ?

Une petite partie de jQuery ?

Doit y avoir un truc qui m’échappe avec cette cochonnerie. Je tape $(« div#best_ask span.tgt ») dans la console et j’obtiens un tableau contenant un élément. Jusqu’ici tout va bien.

Sur la même page, je lance mon script comportant cette ligne de code, et elle me renvoie null.

Je me dis qu’il faut peut-être attendre que les ajaxeries en cours soient terminées. Je met la ligne dans une fonction SetTimeout, qui se relance tant que le truc obtenu est null. Le bastringue se coince dans une boucle infinie. Merci, au revoir, et passez-moi une brouette de commandes getElement [ById / sByTagName / sByClassName ].

Continuer mon script sur une autre page

Lorsque je suis parvenu à logger le tableau dans la console, je me suis dit que ce serait cool de l’envoyer automatiquement à un site de pastebin. C’est là que je me suis heurté au problème non vu précédemment, grâce au gros coup de bol.

Ça paraît évidemment pour ceux qui font du web depuis l’époque où leur mère suçait encore des bites, mais pour moi, ça ne l’était pas. Je vais donc vous l’écrire en gras : La plupart des infos en mémoire (variables, fonctions à exécuter après un timer, etc.) sont oubliées lorsqu’on recharge la page ou qu’on change d’URL.

Ce n’est pas une limitation technique, le navigateur fait exprès d’être amnésique de la sorte. Il s’agit d’une sorte de mesure de sécurité, appelée la « Same Origin Policy », ou quelque chose comme ça. Il y a bien une instruction javascript pour changer de page, mais lorsqu’on l’exécute : pouf ! Mémoire-de-poisson-rouge power !

Rien à voir, sinon le mot "cube".

Rien à voir, sinon le mot « cube ».

Les « vrais » sites web, pour conserver leurs informations, utilisent des cookies dont ils gavent votre navigateur. Il est certainement possible de concocter rapidement une de ces délicieuses friandises, mais ça n’aidera pas mon pauvre script dans sa pauvre console. Il va de toutes façons se stopper en changeant de page.

La solution serait d’utiliser un plug-in comme GreaseMonkey, qui peut cuisiner ses propres cookies en interne, et exécuter différents morceaux de javascript dans différentes pages. J’en aurais donc un morceau dans la page Galaxy 55, un autre dans celle du pastebin, et les données se transmettraient grâce à un cookie commun. (kou-ki-kom-1).

Sauf que je n’ai pas envie de mettre tout ce bazar en place, d’abord parce que j’ai la flemme, et ensuite parce que ce serait moins portable. Le script tel qu’il est actuellement n’a rien besoin d’autre qu’un navigateur. Pas de singe graisseux à installer, ni tout autre tralalas.

Je veux que ça reste super simple à utiliser, que n’importe quel joueur puisse l’exécuter et rediffuser publiquement les prix afin d’en faire profiter tout le monde. J’ai dit.

Autre petite chose concernant Galaxy 55

Pour aller d’une planète à l’autre, on dispose d’un vaisseau, à concevoir soi-même comme on veut.

 Y'avait trop de cube dans l'image précédente. Pour compenser, voici des courbes.

Y’avait trop de cubes dans l’image précédente. Pour compenser, voici des courbes.

Ce vaisseau doit respecter diverses contraintes : étanchéité, accès à l’ordinateur de bord, accès au transmuteur, etc. Comme je suis un grand scientifique, je suis parvenu à créer le plus petit vaisseau acceptable possible. Le détail de ces recherches cruciales et sérieuses est publié dans le forum (http:// twinoid.com/fr/tid/forum#!view/96|thread/11814458).

Le vaisseau possède également une valeur de vitesse, qui semble être calculée en fonction du nombre de cubes. J’ai trouvé la formule exacte. Mes expériences empiriques et les conclusions théoriques qui en découlent sont décrites dans le sujet du forum sus-mentionné. Distinction suprême pour mon travail de chercheur, cette formule de vitesse est reprise dans la revue scientifique Twinpedia (http:// www. twinpedia.com/galaxy55/donnees_mathematiques).

Mes nouveaux l’amis de l’internet

Pour trouver la réponse à mes questions existentielles sur le javascript et les pastebin, j’ai eu recours à mes nouveaux l’amis de l’internet. Ils s’appellent Sam et Max et ont un blog super (http:// sametmax.com/).

Allez-y les voir, je les «’» »«’»kiffe«’» »«’». Voici une photo d’eux, avec un troisième ami indéterminé.

 Photo prise à la soirée-anniversaire de celui du milieu.

Photo prise à la soirée-anniversaire de celui du milieu.

Je vais essayer, dans les semaines qui viennent, de leur proposer des articles sympatoches sur le python ou autre. C’est toujours bien de squatter un peu le blog d’autres gens, ça permet d’amener du flux de cerveau dans le mien.

J’en profite également pour remercier Roro, un autre l’ami de l’internet, qui m’a introduit (avec vaseline) au blog de Sam&Max. Il n’a pas de site ni de blog ni de truc comme ça, alors je vais juste le remercier publiquement ici.

Merci !!!

Merci !!!

Et merci à lui pour plein d’autres trucs !!

5 réponses à “Galaxy 55 : script de récupération des prix

  1. Source des images

    Les deux images du jeu.
    http://cur.lv/6h9f
    http ://galaxy55.com/

    Eh bien elles viennent du jeu, figurez-vous. La première image, c’est ma planète principale, qui vient de la version alpha 3 du jeu. J’y entrepose tous le bazar de cube intéressant que je pique sur d’autres planètes. À ce sujet, j’ai architecté une structure de stockage ordonnée, pratique d’accès et évolutive. J’écrirais un autre article à ce sujet dès que j’en ai le temps. (Donnez-moi votre pognon, tout ça…)

    La seconde image, c’est l’interface rustique et marronne du marché au cube. Mais comme le reste du jeu est quand même vachement bien, et encore en cours de développement, et totalement gratuit pour l’instant, je crois qu’on va pas trop se plaindre.

    Une nana avec les cheveux roses.
    http://cur.lv/6hag
    http ://bbw-girls.tumblr.com/post/15565061122/gsggs

    Bon c’est une fausse couleur de cheveux, mais on ne va pas lui en tenir rigueur n’est-ce pas ? On a bien le droit, de temps en temps, d’améliorer artificiellement son corps. D’autre part, ce sont de faux nichons, mais on va lui en tenir raideur, n’est-ce pas ? Ça me fait penser aux Twix, avant, ça s’appelait des raideurs. Eh oui, je suis vieux, comme le dit le texte débile qui « circule sur internet », stipulant que les gens qui savent que ça s’appelaient raideur avant sont des vieux. Moi je vieux bien, sauf qu’on s’est un peu foutu de ma gueule, parce qu’au fur et à mesure que je deviens vieux, on recule d’autant l’âge de la retraite. Et ça me fait bien chier. Faudrait savoir. Je suis vieux pour les trucs de jeunes, et jeunes pour les trucs de vieux tel que la retraite. Ça doit être ça la magie de la « génération perdue ». (Toutes les générations se plaisent à se nommer « la génération perdue », pour se dédouaner des problèmes qu’elles ont).

    Des gens (modernes, apparemment), qui jouent au jokari.
    http://cur.lv/6hmk
    http ://www. dejeunesgensmodernes.com/2012/07/summer-pastime-14-le-jokari/

    Pour ceux qu’auraient pas compris, c’est un jeu de mot entre « jQuery » et « jokari ». Nan, attendez, je vous explique. C’est parce que, au niveau de la sonorité, dans « jQuery », on commence par prononcer « ji », et ça ressemble un peu à « jo », comme dans « jokari ». Et ensuite, on prononce « query » (kouèri), et ça ressemble un peu à « kari », comme dans jokari. Attendez, là vous rigolez pas, mais c’est parce que je vous ai pas encore complètement tout expliqué bien en détail. Donc, dans « jQuery », y’a le son « j », qui ressemble (et qui est même égal) à « j ». Ensuite, y’a « i », même si c’est pas écrit dans le mot, on le prononce. Eh bien ce « i », il n’est pas vraiment égal à « o ». Mais c’est pas grave, parce que c’est la suite qu’est marrante. Et donc, ensuite, on a le son « k » qui est égal au son « k ». Puis le son « ouè », enfin là ça fait bizarre, c’est parce que je l’écrit le plus possible de la manière dont ça se prononce, le mieux ce serait de le mettre en phonétique, mais tout le monde sait pas forcément écrire la phonétique, en particulier moi, et donc le son « ouè », il ressemble un peu au son « a », ouè mais non en fait il ressemble pas à, il est carrément pas égal. C’est pas grave. Et pour finir, on a les sons « r » et « i », qui, eux, sont totalement égaux aux sons « r » et « i ». Et c’est pour ça que c’est drôle, parce que les sons sont son s’on s’ont çon.

    Couverture de la BD « le cube numérique ».
    http://cur.lv/4we4u
    http ://www .cdiscount.com/livres-bd/bd-humour/capricorne-t-4-le-cube-numerique/f-105041901-9782803613953.html

    C’est dessiné et scénarisé par Andreas, mon auteur de BD préféré. J’en ai parlé dans un article d’un ancien numéro de 42. Je peux pas tout raconter en détail ici, ce serait vraiment trop lon lon lon lon. Mais sachez que je vous réserve peut-être quelque chose par rapport à ce monsieur Andreas. « Le maître », comme ils disent chez BdParadisio.

    Encore une image du jeu.
    http://cur.lv/6hmx
    http ://galaxy55.com/media

    Celle-ci ne vient pas d’une de mes planètes, mais d’un screenshot de démo du jeu. Donc bien présenté comme il faut. J’en fait pas des aussi classes avec mes planètes, mais j’ai quand même quelques zones topologeogéographiques assez vertigineuse. Des cailloux biscornus à perte de vue, des cascades géantes, des crevasses sans fond font fon fon fon fon fon fon fon.

    Des fesses.
    http://cur.lv/6hmy
    http ://maxx46.tumblr.com/post/31936111497

    Ce sont des chouettes fesses. Je ne connais pas le nom de l’actrice-top-modèle, désolé. Tout ce que je peux vous dire, c’est quelque chose qui ne bugge pas avec le son « on ». Parce que des fesses comme ça, quand même, ça distord suffisamment la réalité vers un monde positif, magique et plein d’arc-en-ciel pour être capable de me corriger mes bugs. Ce qu’il faudrait c’est des femmes habillées comme ça qui se promènent dans la rue. Ça soignerait plein de probèmes du monde.

    Un chien, un autre chien et un lapin.
    http://cur.lv/6hnc
    http ://www .ugo.com/web-culture/dog-on-dog-on-rabbit

    Par tradition, mes nouveaux l’amis de l’internet sont représentés par des animaux. La tradition est ici de circonstance, puisque Sam est un chien et Max un lapin. Quand à leur troisième ami chien, je ne sais pas qui c’est. Mais la photo, ainsi que sa date de publication nous permettent de savoir que l’anniversaire de cet ami se situe aux alentours du 11 avril. Je dis ça rapport à la blague : « Qu’est-ce que 3 pédés qui s’enculent à la queue-leu-leu (c’est leu cas de le dire). Réponse : l’anniversaire de celui du milieu ».
    Ah ouais, et sinon, la page, faut la charger deux fois de suite pour voir l’image. Enfin chez moi, c’est ce que ça fait. Je sais pas pourquoi. Mais je m’en fout. C’est rigolo, c’est la phrase inverse de la phrase de l’informaticien typique. « Chez moi, ça marche pas ». (Ça c’est la phrase inverse, la vraie phrase, c’est l’autre, faut inverser pour l’avoir.)

    Un singe qui sourit.
    http://cur.lv/6hnl
    http ://www .wallpapers-avenue.com/animaux-7/singe-667/singe-n-5424-wallpaper-5424.html

    Donc animal, parce que ami. OK, on reste dans la même optique. Et sinon, c’est un clin d’oeil subtil à cet immonde carte animée en Flash, visible sur le site de l’internaute, où on voit un crétin de singe avec une guitare, qui chante « merci, merci, meeeerci ». Mais là, en l’occurrence, le singe, ce serait moi, et non pas le nouveau l’ami de l’internet. Puisque c’est moi qui remercie Roro le pas-singe pour tous ce qu’il a fait pour moi. (regonflage d’ego, aide matérielle, bizarrisme de l’espace, …).

    Et j’ai encore plein de trucs que j’aimerais faire.

  2. Quand est-ce que tu nous pond un truc en python ?
    Avec son accompagnement de petits légumes (non mais ça va pas…moi !…De commentaires !…veux-je dire !°
    Quelque chose d’évolutif. Petite chose insignifiante à la naissance.
    Mais à laquelle tu ajouterais des membres au fil du temps et de ta disponibilité.
    Boouuuh! la dis-po-ni-bi-li-té..La chose la plus rare et la plus chère
    sur cette foutue planète.
    Bon. ben on va prendre patience.
    Si tu a un moment, passe où tu sais, on n’y fait pas du python, mais on y fait quand meme.

  3. Ton appel a été entendu mon ami !

    Je reconnais que, pour la plupart de mes créations, je préfère attendre de l’avoir totalement finie pour la proposer au monde extérieur.

    Les libristes disent « release early, release often ». J’ai longtemps pensé que c’était applicable aux logiciels, mais pas aux « oeuvres d’arts », et donc pas aux jeux vidéos.

    Mais comme tu le dis, la disponibilité se faisant rare, je ne suis jamais sûr de parvenir à finir ce que je commence. Il vaut donc mieux le jeter en pâture au monde extérieur dès que possible. Le monde en fera bien ce qu’il voudra.

    Je te remercie pour ces encouragements et pour ton intérêt. Ca mérite bien un tout petit quelque chose en retour. Alors, hop, tu peux aller là : https://github.com/darkrecher/GMarble

    Tu lis le texte de présentation, tu récupères le code source et tu en fais ce que tu veux.

    J’ai un autre projet, un peu plus volumineux, que je déposerais également dans mon github. Ca devrait venir très bientôt.

    Promis, j’essaye de repasser là où je sais, dans la semaine. En attendant, amuses-toi bien avec cet embryon de GMarble !!

Laisser un commentaire