Hey bonjours à tous et à toute,
Aujourd'hui j'ai remis la main sur un mods que j'apprécie particulièrement. Il s'agit de ComputerCraft. Ce mods ajoute à votre petit minecraft un ordinateur totalement programmables permettant de créer des logiciels personnalisé pour votre propre besoin. Que type de logiciel? Tout dépend de votre capacité à scripté tout ça et de votre patience.
http://www.minecraftforum.net/topic/892282-11-computercraft-13/
Quelque exemple de ces capacités c'est de transformer l'ordinateur en porte logiques ou en minuterie pour vos divers projet. Vous pouvez aussi créer un système de mots de passe permettant d'ouvrir une porte ou activé un système de redstone.
Pour utilisé l'ordinateur il vous suffit de le posé et ensuite vous pouvez utilisé certaine commande. Programs vous donnera accès à la liste des programs existant que vous devrai testé pour bien comprendre. Il y a des système pour contrôlé la redstone, des jeux et des programs de calcule.
Mais passons. Vous surtout créer vos propre programs. pour faire cela il suffit de faire "edit" (sans les ") et le nom de votre programs. Vous pouvez aussi édité tout les autres programs. Je vous conseillerait de lire les divers code pour apprendre quelque tours. Donc pour le moment on vas faire edit lock pour créer un fichier appelé lock.
Ici je vais vous montré à créer un petit système très simple pour verrouiller une porte ou autre. Mais le but est surtout de vous mettre un peu dans le bain du scripting en LUA. Avant de mettre un premier code j'aimerais que vous gardiez la tête à la simplicité. Ne chercher pas le "code complexe" car le code est assez simple à comprendre.
__________________________________
term.clear()
term.setCursorPos(1,1)
password = "minecraft" -- Mot de passe
debug = "microsoft" -- ouvre le système de de-bug
write("entrer votre mot de passe : ")
input = read() -- Pour lire le mot de passe
term.clear() -- nettoie l'écran
term.setCursorPos(1,1) -- et replace le curseur au début
if input == password then -- Si le mot de passe est minecraft
print("mot de passe accepter!") -- alors il écrit sur l'écran ce message
rs.setOutput("left",true) --Active un signale de redstone. Ici par exemple du côté gauche de l'ordinateur. Donc true pour activé.
sleep(2) -- place la séquence en pause pour 2 secondes.
rs.setOutput("left",false) -- ferme le circuit de redstone
shell.run(lock) -- redémarre l'application
elseif input == debug then --- Si le mot de passe entré est microsoft
exit() --Exits the program -- quitte le programme pour permettre de modifié tout ça.
else -- en cas d'échec des deux condition
print("mot de passe invalide! Adieu!") -- écris le message
sleep(2) -- mets la routine en pause 2 seconde
rs.setOutput("right"),true) -- active un signal de redstone à droite
sleep(2) -- met en pause la routine 2 seconde
rs.setOutput("right"),false) -- ferme le signal de redstone à droite
shell.run(lock) -- redémarre le programmes
end -- mets fin à la séquence du IF.
_________________________
Ok. À première vue ça semble une chose qui vas vous donnez mal au crane mais attendez un peu et regardé attentivement le code. Outre les quelques commande que vous devez retenir le reste est simplement basé sur la logique. Je vous explique le fonctionnement. Un script informatique pars du haut et vas devoir remplir des conditions d'étape en étape. Si une conditions est remplie alors il vas faire ce qu'on lui demande. Sans quoi il vas passé à la condition suivante.
Ici il vas commencer par nettoyer l'écran placé le curseur au début. c'est le :
term.clear()
term.setCursorPos(1,1)
Ensuite
password = "minecraft"
debug = "microsoft"
Cette section ne sera pas inscrite à l'écran. Elle permet de placer vos variable. la variable password par exemple défini quel sera votre mot de passe. Debug quand à lui définira le mot de passe à entré pour sortir du programs et modifié votre ordinateur. Sans ce mot de passe le programs tournera en loop ce qui veux dire qu'il tournera sans arrêt.
write("entrer votre mot de passe : ")
input = read()
Write inscrira la phrase demandé à l'écran. Ici c'est donc le mot de passe. Input c'est la variable d'entré. Ici on utilise read() qui vas donc lire la réponse donné à write. Donc si vous entré ici minecraft la réponse à l'input sera "minecraft". Mais considéré que l'input peut être différente chose. Par exemple un signal de redstone. À quoi cela servirais alors? Je l'expliquerai un peu plus bas. Pour le moment poursuivons.
term.clear()
term.setCursorPos(1,1)
Remet l'écran à zéro
if input == password then
print("mot de passe accepter!")
Ici on est dans l'aspect qui vas définir l'action à réalisé. Donc. if veux dire SI. Donc if input == password then signifie alors SI input == minecraft alors... Print vas inscrir à l'écran le message sans offrir à l'utilisateur la possibilité d'écrire contrairement à write.
rs.setOutput("left",true)
sleep(2)
Après avoir écris ce message il vas activé le signal de redstone à gauche ce qui permettra alors, par exemple, d'ouvrir une porte ou d'activé un système. Sleep vas quant à lui conservé le signal activé pour un certain temps. Il vas gelé le processus.
rs.setOutput("left",false)
shell.run(lock)
Et ici le programmes après 2 seconde vas venir fermé le signal et donc la porte. Shell.run(lock) quant à lui est une variable qui vas redémarré le programs au début. Donc shell.run est la commande habituel et (lock) est le nom de votre programme. Il est important de le mettre entre parenthèse car il dois lire cette variable pour pouvoir l'utilisé. Vous pourriez aussi, avec shell.run fait transité votre ordinateur d'un programs à un autre. j'expliquerai l'utilisé dans le PS2 en bas.
elseif input == debug then
exit()
Bon Elseif permet d'avoir un second mot de passe. Une seconde entré. Dans le cas présent c'est le mot de passe du mode débug. il permettra de fermé le programmes car exit() vas vous permettre d’accédé à nouveau à votre ordinateur et donc modifié les programmes. Noté que c'est donc la seul manière de modifiée les choses si vous mettez votre programmes en startup (je vous expliquerai aussi comment).
else
print("mot de passe invalide! Adieu!")
sleep(2)
Else vas être l'action entreprise lors de l'entré de tout autre mot de passe. En gros c'est ce qui est invalide. Le sleep quand à lui vas juste gardé le message affiché 2 seconde. Donc si ensuite vous avez activé un piège... dégagé!
rs.setOutput("right"),true)
sleep(2)
Active un signal de redstone à droite pour activé un piège entre autre chose.
rs.setOutput("right"),false)
shell.run(lock)
Ferme le circuit de redstone (et referme donc le piège) et ensuite vas relancé le programmes avec shell.run(lock) pour demandé à nouveau le mot de passe.
end
End est à mettre à la fin de chaque section contenant un if. Il ferme la condition....
Et voila qui conclut un peu ce tutoriel sauf pour les PS.
PS1 : activé un ordinateur avec un signal de redstone pourrait paraitre idiot mais en fait les ordinateurs peuvent envoyé un signal de redstone nettement plus complexe en une petite boite. Il faut savoir que le rs.setOutput est très basic ici. Mais vous pouvez plus tard utilisé des codes de couleurs. Donc si vous emettez un signal de redstone code bleu tout les ordinateurs recevrons ce signal mais seul ceux avec un rs.input d'un signal redstone code bleu seront activé. Et donc vous pourriez avec un seul bouton activé un système très complexe. Je laisse tout ça à votre imagination.
PS2 : Shell.run() permet d'activé de multiple programmes par une action. Admettons que vous cherchiez à créer un système multitâche vous pourriez alors utiliser une question tel que "que voulez vous faire" et la réponse alors pourrais être multiple. Si tant est que les réponses sois basé sur des chiffres voila ce qui pourrais arrivé. Si vous faite 1 alors shell.run(porteouverte) et si vous faite 2 alors shell.run(portefermé) et si vous faite 3 shell.run(dispenser) . En activant ces divers programs vous pourrez donc activé toute sorte de système en entrant simplement un choix. Si c'est pas clair dite le moi je me ferai un plaisir d'essayé tant bien que mal d'expliqué mieux que ça.
PS3 : Bon. Terminons avec le startup. Maintenant que vous avez créer votre programmes vous voulez probablement que celui-ci démarre en démarrant l'ordinateur. Pour ce faire il faut modifié le nom du programmes qui est actuellement lock. Il existe donc deux méthode. sois au départ vous créer votre programme en l'appelant directement startup. Sois vous allez devoir recopié votre programmes en tant que startup. pour ce faire vous utilisé la commande "CP" (sans les ") ce qui signifie copie. vous allez faire
cp lock startup
ce qui devrais normalement copier votre fichier lock en lui donnant le nom de startup. En utilisant la commande "reboot" (toujours sans les ") vous allez redémarré l'ordinateur qui devrais alors avoir directement votre programmes de verrouillage.
Si vous aviez des questions n’hésiter pas. Je suis loin d'être un super spécialiste mais je ferai de mon mieux pour vous aider. Peace les gens 