petit "blême avec les turtle...
3 participants
Page 1 sur 1
petit "blême avec les turtle...
bonjour encore un petit problème je suis sur un mod pack avec botania et j'aimerais automatiser la prod de living wood donc j'ai écrit ce programme...
mais le problème est que ca ne fonctionne pas :/
merci de l'aide
- Code:
while true do
e, b = turtle.inspect()
if b.name == "minecraft:hardened_clay" then
turtle.turnRight()
else
e,b = turtle.inspectDown()
if b.name == "Botania:livingwood" then
turtle.select(16)
turtle.digDown()
turtle.select(1)
turtle.placeDown()
else
turtle.forward()
end
end
end
mais le problème est que ca ne fonctionne pas :/
merci de l'aide
Tonitch8- Messages : 2
Date d'inscription : 30/03/2016
Re: petit "blême avec les turtle...
On n'a pas botania sur le serveur, c'est pas de notre ressors mais si une bonne âme passe par içi tu aurras peut-être une réponse
Re: petit "blême avec les turtle...
N'est ce pas un problème de majuscule avec le B de Botania.
Ok j'avoue j'ai cédé
Ok j'avoue j'ai cédé
Re: petit "blême avec les turtle...
Tu as de la chance qu'eagle_fire t'ai cherché une solution. Parce qu'à part donner ton programme et dire que ça ne marche pas, tu ne donne aucune indications..
Par exemple à quel moment ça marche/marche plus, qu'est-ce qui marche/marche pas... Parfois, en faisant l'effort de poser le problème à plat, on trouve tout seul la solution.
Une solution par exemple, c'est de placer la turtle à côté du bloc, lancer le programme lua, et exécuter la fonction inspect(). Comme ça tu vérifie quelle donnée est renvoyée.
Autre astuce, qui dépanne bien, surtout dans les longs programmes, c'est de rajouter des print() aux moments clés.
Comme ça, à l’exécution, tu peux constater le déroulé. Si ça se bloque, si telle condition if se déclenche ou pas, etc.
Là par exemple, juste après le turtle.inspect() je mettrais ça :
En ce qui me concerne, je suis autodidacte en programmation, et la plus grande part de ce que je sais, c'est en débuggant mes programmes que je l'ai appris.
Par exemple à quel moment ça marche/marche plus, qu'est-ce qui marche/marche pas... Parfois, en faisant l'effort de poser le problème à plat, on trouve tout seul la solution.
Une solution par exemple, c'est de placer la turtle à côté du bloc, lancer le programme lua, et exécuter la fonction inspect(). Comme ça tu vérifie quelle donnée est renvoyée.
Autre astuce, qui dépanne bien, surtout dans les longs programmes, c'est de rajouter des print() aux moments clés.
Comme ça, à l’exécution, tu peux constater le déroulé. Si ça se bloque, si telle condition if se déclenche ou pas, etc.
Là par exemple, juste après le turtle.inspect() je mettrais ça :
- Code:
e, b = turtle.inspect()
if e then print("bloc: "..b.name)
else print("bloc: minecraft:air") end
En ce qui me concerne, je suis autodidacte en programmation, et la plus grande part de ce que je sais, c'est en débuggant mes programmes que je l'ai appris.
skypop- Messages : 95
Date d'inscription : 25/07/2016
Re: petit "blême avec les turtle...
skypop a écrit:Tu as de la chance qu'eagle_fire t'ai cherché une solution. Parce qu'à part donner ton programme et dire que ça ne marche pas, tu ne donne aucune indications..
Par exemple à quel moment ça marche/marche plus, qu'est-ce qui marche/marche pas... Parfois, en faisant l'effort de poser le problème à plat, on trouve tout seul la solution.
Une solution par exemple, c'est de placer la turtle à côté du bloc, lancer le programme lua, et exécuter la fonction inspect(). Comme ça tu vérifie quelle donnée est renvoyée.
Autre astuce, qui dépanne bien, surtout dans les longs programmes, c'est de rajouter des print() aux moments clés.
Comme ça, à l’exécution, tu peux constater le déroulé. Si ça se bloque, si telle condition if se déclenche ou pas, etc.
Là par exemple, juste après le turtle.inspect() je mettrais ça :
- Code:
e, b = turtle.inspect()
if e then print("bloc: "..b.name)
else print("bloc: minecraft:air") end
En ce qui me concerne, je suis autodidacte en programmation, et la plus grande part de ce que je sais, c'est en débuggant mes programmes que je l'ai appris.
je t'avourais que j'ai fait sa tous à l'heure a la va vite et je m'en excuse
donc... j'ai tenté de cree un programe qui cree du living wood... (jusque la tous va bien)
(le living wood se produit en placent du boit autours d'une plante) : http://puu.sh/qLPYS/f59a6ac222.png
donc je fait en sorte que la turtle tourne sur la boucle de bois et casse en dessous d'elle (et replace un bois) quand elle est transformé en livingwood
je tien juste a dire que je ne me suis pas trompé sur les id (ou majuscules) car j'ai effectivement testé grâce a turtle.inspect()
le problème : lors du démarage, la turtle casse le bloc en dessous d'elle et place du bois et puis... ba... c'est tout, elle s’arrête là
si qqun peut m'aider
Tonitch8- Messages : 2
Date d'inscription : 30/03/2016
Re: petit "blême avec les turtle...
edit : Je tien à m'excuser pour ce post inutile... car il y'a longtemps que je n'ai plus utilisé computercraft et j'avais oublié...
Roulement de tambours
que les turtles avaient besoin de fuel...
ce topic reste visible 24h avant de (si posible) soit suprimé pour ce qui on tenté de m'aider (que je remercie) puise voir le problème...
Roulement de tambours
que les turtles avaient besoin de fuel...
ce topic reste visible 24h avant de (si posible) soit suprimé pour ce qui on tenté de m'aider (que je remercie) puise voir le problème...
Tonitch8- Messages : 2
Date d'inscription : 30/03/2016
Re: petit "blême avec les turtle...
Désolé si ma réponse t'es paru un peu sèche. Ne t'inquiètes pas, j'ai pas à mal pris ta demande.
Dans un problème de programme qui ne tourne pas, on ne se rend pas forcément compte de ce qu'on demande, et comment. ça arrive à tout le monde, et tout le monde n'en prend pas conscience.
Dans un problème de programme qui ne tourne pas, on ne se rend pas forcément compte de ce qu'on demande, et comment. ça arrive à tout le monde, et tout le monde n'en prend pas conscience.
skypop- Messages : 95
Date d'inscription : 25/07/2016
Re: petit "blême avec les turtle...
Je viens de penser à un autre truc qui aurait pu te mettre sur la voie.
Et c'est un truc qui ne figure pas dans la doc officielle : http://www.computercraft.info/wiki/Turtle_(API)
mais qui mériterait de l'être.
Il est indiqué que les fonctions turtle.forward() turtle.back() turtle.up() et turtle.down() renvoi un boolean en cas de succès (true ou false). Or en cas d'échec, une seconde variable est envoyée. Un texte qui décrit la raison de l'échec.
Par exemple :
La variable err sera (à priori nil en cas de succès sinon) une chaine de texte (string), le message d'erreur.
Si la turtle est à cours de fuel, il est alors écit à l'écran "La turtle n'a pas avancé : Out of fuel"
S'il y avait un bloc ou une entité qui lui barrait la route "La turtle n'a pas avancé : Movement obstructed"
Note que le message "Movement obstructed" l'emporte sur "Out of fuel". C'est à dire que si la turtle n'a pas de fuel, et qu'il y a un obstacle sur son passage, c'est le message "Movement obstructed" qui est renvoyé.
C'est également valable pour les fonction turtle.place(), turtle.placeUp(), turtle.placeDown() et probablement d'autres. Pour le savoir, il suffit de lancer le programme lua, et d’exécuter les fonctions. S'il y a le retour de deux lignes ou plus, c'est que la fonctions a retourné plusieurs variables, et qu'il est possible de les récupérer en alignant plusieurs noms de variables séparées par des virgules.
Et c'est un truc qui ne figure pas dans la doc officielle : http://www.computercraft.info/wiki/Turtle_(API)
mais qui mériterait de l'être.
Il est indiqué que les fonctions turtle.forward() turtle.back() turtle.up() et turtle.down() renvoi un boolean en cas de succès (true ou false). Or en cas d'échec, une seconde variable est envoyée. Un texte qui décrit la raison de l'échec.
Par exemple :
- Code:
local test, err = turtle.forward()
if test then
print("La turtle a avancé comme prévu")
else
print("La turtle n'a pas avancé : "..err)
end
La variable err sera (à priori nil en cas de succès sinon) une chaine de texte (string), le message d'erreur.
Si la turtle est à cours de fuel, il est alors écit à l'écran "La turtle n'a pas avancé : Out of fuel"
S'il y avait un bloc ou une entité qui lui barrait la route "La turtle n'a pas avancé : Movement obstructed"
Note que le message "Movement obstructed" l'emporte sur "Out of fuel". C'est à dire que si la turtle n'a pas de fuel, et qu'il y a un obstacle sur son passage, c'est le message "Movement obstructed" qui est renvoyé.
C'est également valable pour les fonction turtle.place(), turtle.placeUp(), turtle.placeDown() et probablement d'autres. Pour le savoir, il suffit de lancer le programme lua, et d’exécuter les fonctions. S'il y a le retour de deux lignes ou plus, c'est que la fonctions a retourné plusieurs variables, et qu'il est possible de les récupérer en alignant plusieurs noms de variables séparées par des virgules.
skypop- Messages : 95
Date d'inscription : 25/07/2016
Sujets similaires
» poser piston vers le haut avec une turtle
» [turtle] Plateforme
» [Library Turtle] - Gestion de l'inventaire pour les debutants
» [Creative] OptimineMgr - Banc de test pour Turtle
» Le Saviez-vous [peripheral.wrap (computer, turtle)]
» [turtle] Plateforme
» [Library Turtle] - Gestion de l'inventaire pour les debutants
» [Creative] OptimineMgr - Banc de test pour Turtle
» Le Saviez-vous [peripheral.wrap (computer, turtle)]
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum