Difference between revisions of "Turtle.forward"

From ComputerCraft Wiki
Jump to: navigation, search
(CETHXYvF)
(Undo revision 3056 by 184.107.42.43 (talk))
Line 1: Line 1:
admin가 말하길문과 식에 차이랍니다.문이란 statement라고 하는데 말하자면 양념입니다. 식은 exirosspen이라고 하는데 이는 주인공입니다.if, for, while과 같은 문은 결국 식을 조직화하고 원하는 방향으로 사용하기 위한 보조입니다. 진짜 주인공-메모리에 값을 넣거나 읽어드리는-인 식이 핵심적인 알고리즘이죠.if구문은 문으로서 처리되는 반면 삼항연산자는 식으로 평가됩니다. 즉 삼항연산자의 결과는 값이 됩니다. 하지만 if구문의 결과는 없습니다. if구문을 통해 내부의 식을 실행시키는게 목표죠. 따라서 이 둘을 혼용해서는 안됩니다.참고로 루비 등의 근대적인 완전 함수 철학을 도입한 언어의 경우는 모든 문이 식으로 처리하게 만드는 경우도 많습니다.이론은 이정도로 하고 간단히 말해 o?{}:n++은 내부적으로 더 많은 식을 요구합니다.var result:*;result = o ? {} : n++;로 식의 결과를 받기 위한 지역변수와 할당을 자동으로 컴파일러가 추가하게 되며 참인 경우도 아무일도 하지 않는것이 아니라 {}를 통해 스택구역을 하나 더 생성하게 됩니다.따라서 위의 if가 문으로 작동하여 n++라는 식을 하나 처리한것보다 훨씬 많은 일을 하게 되죠.
+
{{Function
 +
|name=turtle.forward
 +
|api=turtle
 +
|returns=[[boolean]] whether the turtle succeeded in moving forward
 +
|addon=ComputerCraft
 +
|desc=Attempts to move the turtle forward.
 +
|examples=
 +
{{Example
 +
|desc=Tries to move the turtle forward and outputs whether it worked or not.
 +
|code=if turtle.forward() then
 +
  [[print]] ("Turtle moved forward.")
 +
else
 +
  [[print]] ("Turtle didn't move forward.")
 +
end
 +
|output= Turtle moved forward. or Turtle didn't move forward.
 +
}}
 +
{{Example
 +
|desc=Tries to move the turtle forward x number of times. X is specified by the user and if the turtle can't move forward it will break the block infront of it.
 +
|code=Arg = (...) -- gets the parameters from the user
 +
if Arg ~= nil then
 +
  Arg = [[tonumber]] (Arg) -- make it a number
 +
  a = 1
 +
  while a <= Arg do
 +
  if not turtle.forward() then
 +
    [[turtle.dig]]()
 +
    turtle.forward()
 +
  end
 +
  a = a + 1
 +
  end
 +
else
 +
  [[print]] ("Missing parameter.")
 +
end
 +
|output= Either the turtle moving the specified amount of times or missing parameter.
 +
}}
 +
{{Example
 +
|desc=Digs until the turtle can move forward.
 +
|code=while not turtle.forward() do
 +
  [[turtle.dig]]()
 +
end
 +
|output= The turtle moves forward.
 +
}}
 +
}}

Revision as of 03:28, 21 September 2012

Grid Redstone.png  Function turtle.forward
Attempts to move the turtle forward.
Syntax turtle.forward()
Returns boolean whether the turtle succeeded in moving forward
Part of ComputerCraft
API turtle

Examples

Grid paper.png  Example
Tries to move the turtle forward and outputs whether it worked or not.
Code
if turtle.forward() then
 print ("Turtle moved forward.")
else
 print ("Turtle didn't move forward.")
end
Output Turtle moved forward. or Turtle didn't move forward.



Grid paper.png  Example
Tries to move the turtle forward x number of times. X is specified by the user and if the turtle can't move forward it will break the block infront of it.
Code
Arg = (...) -- gets the parameters from the user
if Arg ~= nil then
 Arg = tonumber (Arg) -- make it a number
 a = 1
 while a <= Arg do
  if not turtle.forward() then
   turtle.dig()
   turtle.forward()
  end
 a = a + 1
 end
else
 print ("Missing parameter.")
end
Output Either the turtle moving the specified amount of times or missing parameter.



Grid paper.png  Example
Digs until the turtle can move forward.
Code
while not turtle.forward() do
 turtle.dig()
end
Output The turtle moves forward.