Sokoban en ... sed ?

Posté par  . Modéré par Pascal Terjan.
Étiquettes :
1
21
mar.
2002
Humour
sed est un véritable couteau suisse. Il est principalement connu pour sa capacité à faire des remplacements (s/toto/tata/), mais ce n'est qu'une de ses commandes et il permet de faire beaucoup plus.

verd666 a ainsi écrit un sokoban en sed (mode texte, mais en couleur), avec 90 niveaux.

sed, un programme à (re) découvrir

Aller plus loin

  • # retour vers le futur

    Posté par  (site web personnel) . Évalué à -10.

    Ca me rappelle les astuces qu'on lisait il y a 15 ans dans les magazines informatiques, genre comment faire un casse-brique ou un Puissance 4 avec votre tableur sous DOS...
    C'est bien, on progresse.
    • [^] # Re: retour vers le futur

      Posté par  . Évalué à 10.

      Hi,

      Je pense qu'il faut voir la le defi technique, pas forcement le truc 3D qui va exploser ta carte graphique.
    • [^] # Re: retour vers le futur

      Posté par  . Évalué à 8.

      Le truc c'est que si tu es capable de faire un sokoban en sed, imagine ce que tu peux faire avec OpenGL et SDL par exemple !
      • [^] # Re: retour vers le futur

        Posté par  . Évalué à 10.

        >Le truc c'est que si tu es capable de faire un sokoban en sed,
        >imagine ce que tu peux faire avec OpenGL et SDL par exemple !

        Par exemple remplacer tata par toto dans un fichier texte grace aux librairies OpenGL / SDL, ca ro><or grave.
        Oui, oui, j'y vais...
      • [^] # Re: retour vers le futur

        Posté par  . Évalué à 0.

        Ben sauf avoir une sacree imagination...
    • [^] # Re: retour vers le futur

      Posté par  (Mastodon) . Évalué à 7.

      Ce qui est sympa, c'est "l'exploit".
      Et puis l'auteur le dit lui même :
      #r and always remember, it's cool because it's SED. if you don't like it
      #r you can try xsokoban instead [...]
  • # Excellent !

    Posté par  . Évalué à 6.

    C'est décidé, je ne bosse pas cet aprem' .

    Un grand merci à l'auteur !
  • # beurk

    Posté par  (site web personnel) . Évalué à 3.

    Les key-bindings me rappellent l'odieux vi, eeeeerk.
    C'est quand même assez impressionnant, je pense que sed n'a pas encore pu donner toute la mesure de sa puissance. Alors tous ceux qui disent Ada par ci, Eiffel par là, prosternez-vous devant l'oeuvre du Grand Sed, car comme l'a dit la fille de la télé, SED C'EST DIEN.

    --
    celui-ci je l'aurais bien posté en anonyme :-/
    • [^] # Re: beurk

      Posté par  . Évalué à 10.

      hors sujet, mais, un truc qui m'a toujours fait marrer avec vi, c'est le pourquoi du comment que les touches de déplacement (j,k, etc. maintenant les flèches fonctionnent aussi, mais faites un vi sous SCO et vous verrez..) ont été choisies ainsi: tout simplement parce que sur la machine sur laquelle ça a été implémenté à l'origine, de petites flèches étaient peintes sur ces touches sur le clavier (genre il y a 20 ans...)

      d'une certaine façon, c'est normal, mais bon, sur les autres ordis où ça a été utilisé, qui ont vite représenté la majorité des ordis où vi était lancé, ça fait vraiment bizarre !!! :-)))

      bref, tout ceci c'est du passé, maintenant vi s'utilise avec les flèches comme tout autre éditeur, mais l'histoire de l'informatique, c qqch ;-)
      • [^] # Re: beurk

        Posté par  . Évalué à 10.

        Exemple vecu: OpenBSD 3.0, SunSparc10 avec clavier type 5, mode console (pas de X11 installe): le driver clavier ne gère apparament pas les touches de fonction (copy/paste, etc), le pavé numérique et les flèches de curseurs (enfin, peut être que c'est possible, mais il faudrait configurer et en tout cas ca marche pas par défaut).

        Et la tu est très, très content que vi te permette le deplacement curseur avec des touches ordinaires. Et donc vi, on l'aime aussi pour ca...
      • [^] # Re: beurk

        Posté par  . Évalué à 2.

        Eh oui, aussi bizarre que cela puisse paraître, l'informatique n'a pas commencé avec des claviers de 105 touches pourvus de dessins de fenêtres aux alentours de la barre d'espacement. Etonnant hein !? Y avait une vie avant ton PC !
  • # Mais sed udélire !

    Posté par  (site web personnel) . Évalué à 10.

    C'est vraiment super chouette.

    On peut aussi trouver un programme sed qui fait les tours de Hanoï :
    http://spazioweb.inwind.it/seders/tutorials/hanoi.htm(...)
    (moins joli que le M-x hanoi, c'est sûr).

    Et il parait qu'il y a aussi des tribunes qui sont faites en sed, incroyable, non ?
    • [^] # Re: Mais sed udélire !

      Posté par  . Évalué à 8.

      Des tribunes ?

      Force est de constater, dans ce cas que sed est réellement un outil de décideur pressé.
      wmc² supporte-t-il sed ?

      s/Score:./-1
  • # Roxor !!!

    Posté par  (site web personnel) . Évalué à 8.

    Les amateurs de regexp se régalent

    Slurppp :p

    L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

  • # marche pas avec ...

    Posté par  (site web personnel) . Évalué à -4.

    cygwin et sed 3.02

    ouhhhhh ca suxxx :-)
    • [^] # Si si !

      Posté par  . Évalué à 7.

      Il faut faire 'Entree' apres avoir lance le jeu.

      Ce qui est marrant, c'est qu'il faut valider les deplacements par 'Entree', et on peut taper plusieurs touches avant de valider.

      Par exemple, pour le premier niveau, on peut placer la premiere brique en faisant :
      khhhkkkkhkhhjhhjjjlllllllllllll, puis 'Entree'.

      (sauf erreur)
      • [^] # khhhkkkkhkhhjhhjjjlllllllllllll

        Posté par  . Évalué à 4.

        Oui, oui, ça marche :)
      • [^] # Re: Si si !

        Posté par  . Évalué à 8.

        D'ailleurs, on pourrait faire un concours : pour un niveau donné, trouver la séquence de touches la plus courte possible pour le terminer.

        Ou encore, trouver une même séquence de touches qui permette de finir des niveaux différents.
        • [^] # Re: Si si !

          Posté par  . Évalué à 1.

          > D'ailleurs, on pourrait faire un concours : pour un niveau donné, trouver la séquence de touches la plus courte possible pour le terminer.

          Je pense que ca doit deja exister, vue que les niveaux semblent etre les niveaux standards

          > Ou encore, trouver une même séquence de touches qui permette de finir des niveaux différents.

          Masochiste !
    • [^] # Si marche très bien

      Posté par  . Évalué à 4.

      pourquoi cette vilaine rumeur ?
      ça r0><0r !

      sato@SUPER-UEQ6ZJD7A ~
      $ sed --version
      GNU sed version 3.02

      Copyright (C) 1998 Free Software Foundation, Inc.
      This is free software; see the source for copying conditions. There is NO
      warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
      to the extent permitted by law.

      sato@SUPER-UEQ6ZJD7A ~
      $ ./sokoban.sed
      Welcome to the SED Sokoban

      Please select a level to begin [1-90]:
      1

      SED Sokoban - LEVEL 1

      %%%%%
      % %
      %o %
      %%% o%%
      % o o %
      %%% % %% % %%%%%%
      % % %% %%%%% ..%
      % o o ..%
      %%%%% %%% %@%% ..%
      % %%%%%%%%%
      %%%%%%%

      ça r0><0r même avec cygwin !
  • # pas du tout, effaces !

    Posté par  (site web personnel) . Évalué à -2.

    <marketeux>
    Mais non ! Il faut coder ca en Java J2EE sous forme d'applet pour intégrer ca sous forme de composant CORBA ou .NET (voire de servlet interfacé à une base de données JDBC, pour avoir l'abstraction de database), et enregistrer toutes les données en XML ! C'est ca l'informatique moderne !
    </marketeux>

    -1 et je ---->[]
  • # Mince ! 215 lignes pour le moteur de jeu !!!

    Posté par  (site web personnel) . Évalué à 9.

    J'ai du recompter pour y croire !

    "La première sécurité est la liberté"

    • [^] # Re: Mince ! 215 lignes pour le moteur de jeu !!!

      Posté par  (site web personnel) . Évalué à -1.

      Et alors, je suis sur qu'en C ou en basic tu peux arriver à beaucoup moins, tu as juste à faire une routine d'affichage d'un tbleu, une routine pour gérer 4 touches et une pour vérifier que le jeu n'est pas fin, ça doit se faire en moins que ça (en utilisant la sortie console).

      Le mec s'est fait plaisir en codant ça avec sed, C'est vraiment le prog pour dire "vous avez vu je l'ai fait en sed", c'est tout, faut pas chercher de supériorité technique que c'était mieux avant les jeux 3D etc, etc...

      Son code est imbitable grave, , ce qui n'enléve rien au fait que l'auteur maitrise super bien sed, mais c'est utiliser un couteau rond pour dévisser des vis cruciformes, ça marche mais c'est pas adapté.

      Donc arrêter de vous extasier, c'est marrant, c'est astucieux et ça peux servir pour faire semblant de travailler au boulot, faut pas chercher plus loin.
  • # La joie c'est quand on est joyeux................

    Posté par  . Évalué à -4.

    Voilà je n'ai qu'un tout petit commentaire à faire... tout petit petit petit jvous dis. Et insignifiant à souhaits avec ca.

    Juste le temps de vous emmerder avec mes déboire de programmation qui trop souvent me poussent à croire que cette #|&@=* de machine binaire m'a complètement bousillé le cerveau.

    Tout dabord... bravo au développeur du sokoban original... je suis certain qu'il a perdu sa femme, son fric et probablement une ou deux couilles à faire ce merveilleux jeux qui avouons-le... a su nous garder rivés à l'écran des heures durant.

    Mon deuxième coup de coeur va à Verd... parce qu'il ne se rend pas compte à quel point il nous prouve qu'on peut TOUT faire en informatique, meme sans des outils avancés (lire: qbasic), ou des outils écrits dans un autre but (lire: sed OU mIRC... et voilà ou se cache ma réplique magique)

    Utilisateur acharné d'OpenBSD, de Mandrake Linux, de Beos, de Windows 2000 et de (ce gluant mais chouette) DR-DOS... je ne saurais vous dire ce qui m'a poussé à développer autant sur "mIRC-Script"...

    Ouais bon... des fois j'ai envie de m'ouvrir les veines à coups de bouchons de bière tellement le débuguage est délirant (1 heure de code pour 2 de débuguage)

    Seulement voilà... c'est phun... et je n'ai rencontré aucun autre outil aussi jovial tout en restant orienté objet (Arghhhh tuez visual basic quelqu'un)... bon... point de vue "Regular Expressions"... ca chie royalement.... je préfère Perl c'est clair... Mais essayez une fois pour voir... ce qui vous forcera à

    1-ré-installer ce Windoze 9x/2000 que vous aviez si joyeusement formaté 3 fois pour etre sur qu'il ne refasse pas surfasse OU

    2-Si vous êtes intelligent... utilisez Wine comme il se doit.


    Non c'était une farce.. n'allez pas programmer sous mIRC... vous allez vous retrouver comme moi... un déchu qui tente par tous les moyens d'anihiler la gazelle qui cours dans sa tête.

    Allez... soyez heureux vous aussi... vous le méritez (Tux!!!! Tux!!!! Gloire au grand Tux!!)

    =-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-
    Copyright (c) mÐc Software (R) 2002
    Tous droits réser... ...dans l'cul!
    =-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-
  • # Y a un bug ?

    Posté par  (site web personnel) . Évalué à 1.

    sed c dien comme dirait l'aut mais ca empeche pas les bugs: cf au hasard niveau 48 si qqu'un a reussi ce niveau (notamment a passer les '*') qu'il me le dise !


    --
    Un stagiaire en mode analyse quand ca s'emmerde forcement ca va chez linuxfr :)
  • # Editeur en sh

    Posté par  . Évalué à 6.

    Ca n'utilise que /bin/sh, /bin/dd and /bin/rm
    J'ai apprécié l'arithmétique avec dd:

    http://www.tardis.ed.ac.uk/~lard/fomcol/code/clc1.txt(...)

    Il existe aussi un assembleur x86 en bash, j'ai perdu l'url

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.