• [^] # Re: Et comment est le langage de programmation ?

    Posté par . En réponse à la dépêche WHAT NOW? > Créer des jeux d'aventure avec JACL 2.8.0. Évalué à 2.

    comme d'autres langages du même type, il permet de faire également d'autres choses, mais bien entendu c'est plus centré sur la manipulation d'un monde virtuellement manipulable, que pour créer un logiciel de calcul formel.

    Inform 6 est plus généraliste que JACL (d'après ce que j'ai pu voir), mais les 2 peuvent manipuler des boucles, gérer des exceptions, faire de l'arithmétique...

    Un objet avec jacl se construira de cette sorte :


    object armoire: armoire cupboard (et autres synonymes)
    has CONTAINER FEMALE LOCKED CLOSED CLOSABLE
    short une "armoire"
    definite l'
    long "Une armoire se trouve contre le mur opposé
    à l'entrée de la cuisine.^"
    quantity 1
    capacity 20
    mass 120


    et pour déverrouiller cette armoire :

    {unlock_with_clef
    write "Vous déverrouillez l'armoire avec votre clef.^"
    ensure armoire hasnt LOCKED
    }


    Déjà qu'Inform n'est pas très prisé par les programmeurs habitués à du C, d'après les remarques que j'ai pu lire, je pense que cela sera encore pire pour JACL. Mais en tant que système pour créer des jeux textuels, il me semble bien efficace. C'est plus facile de créer de nouveaux verbes rapidement, notamment, et il me semble de plus haut niveau qu'Inform6, et avec plus de fonctionnalités de base (gestion du poids dans l'inventaire par exemple)

    Et comme on peut l'interfacer à un serveur web, on peut même imaginer d'autres applications possibles. Bon, c'est pas du ruby on rail, mais par exemple si on veut afficher une page qui appelle des sites internet selon les objets qu'on manipule dans le jeu, on peut écrire ça :



    location nest

    {+intro
    write "You are in a confortable nest, with a big book in front of you, which you can consult about topics or simply randomly read.^You can also search for informations in the tiny screen under your right wing."
    }

    object book: book screen


    object i
    player

    grammar read random page >wikipedia_random
    grammar read book >wikipedia_random

    grammar search for $string >google
    grammar search $string >google

    grammar consult about $string >wikipedia
    grammar consult $string >wikipedia


    grammar tweet $string >tweet2

    {+wikipedia_random
    write "You open the book and read:^^<iframe src=~http://en.wikipedia.org/w/index.php?title=Special:Random&(...) width=~99%~ height=~300~>^^"
    }

    {+wikipedia
    write "You open the book and consult for " $string[0] ":^^<iframe src=~http://en.wikipedia.org/w/index.php?title=" $string[0] "&printable=yes~ width=~99%~ height=~300~>^^"
    }


    {+google
    write "You search for " $string[0] "^^<iframe src=~http://www.google.com/search?q="$string[0]"~ width=~99%~ height=~300~>^^"
    }


    constant title_image "bird.png"
    constant footer_image "none"
    constant header_colour "#535F38"
    constant linkbar_colour "#748768"
    constant maintext_colour "#D2DDD0"

    #include "verbs.library"



    Si vous téléchargez jacl sur le site plus haut, vous copiez ce code dans un fichier test.jacl, et démarrez le serveur avec cgijacl test.jacl et vous pouvez voir le résultat sur http://localhost:8080/

    Il y a aussi des comparaisons de code entre ce système et d'autres, en partant sur un jeu similaire, ici :
    http://www.firthworks.com/roger/cloak/jacl/index.html
    http://www.firthworks.com/roger/cloak/index.html

    Pour en revenir à Inform6, certains ont créé un tetris, un jeu d'échec, un jeu d'arcade dans ce langage :

    http://wurb.com/if/genre/43
    http://ifwiki.org/index.php/ZRacer

    (malheureusement on n'a pas le code source)

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it