petit "blême avec les turtle...

Voir le sujet précédent Voir le sujet suivant Aller en bas

petit "blême avec les turtle...

Message par Tonitch8 le Mar 23 Aoû - 17:28

bonjour Very Happy 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...

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

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par eagle_fire78 le Mar 23 Aoû - 18:37

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
avatar
eagle_fire78

Messages : 69
Date d'inscription : 30/03/2016
Age : 18
Localisation : Quelque part ...

http://www.perdu.com

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par eagle_fire78 le Mar 23 Aoû - 18:37

N'est ce pas un problème de majuscule avec le B de Botania.
Ok j'avoue j'ai cédé
avatar
eagle_fire78

Messages : 69
Date d'inscription : 30/03/2016
Age : 18
Localisation : Quelque part ...

http://www.perdu.com

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par skypop le Mar 23 Aoû - 20:24

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.
avatar
skypop

Messages : 95
Date d'inscription : 25/07/2016

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par Tonitch8 le Mar 23 Aoû - 22:18

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 Very Happy 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 Very Happy

Tonitch8

Messages : 2
Date d'inscription : 30/03/2016

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par Tonitch8 le Mar 23 Aoû - 22:54

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... Evil or Very Mad Evil or Very Mad Evil or Very Mad

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

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par skypop le Mar 23 Aoû - 23:53

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.
avatar
skypop

Messages : 95
Date d'inscription : 25/07/2016

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par skypop le Ven 26 Aoû - 19:24

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 :
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 test sera donc un boolean, true ou false selon que le mouvement ait pu être executé
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.

avatar
skypop

Messages : 95
Date d'inscription : 25/07/2016

Revenir en haut Aller en bas

Re: petit "blême avec les turtle...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum