HeffeD Posted February 2, 2009 Posted February 2, 2009 Pretty neat! I remember playing with Logo way back when. I wouldn't be surprised if I still have the manual and floppy kicking around somewhere. I remember being blown away by how easy it was to do certain things in Logo.
James Posted February 2, 2009 Author Posted February 2, 2009 HeffeD said: Pretty neat! I remember playing with Logo way back when. I wouldn't be surprised if I still have the manual and floppy kicking around somewhere. I remember being blown away by how easy it was to do certain things in Logo.Thanks HeffeD Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
James Posted February 2, 2009 Author Posted February 2, 2009 Latest code with TURN thanks to Manadar, see first post Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
FireFox Posted February 2, 2009 Posted February 2, 2009 @JamesBrooks CODE CLEAR COLOR 0x0000FF TURN -90 FORWARD 200 COLOR 0x0000FF TURN 125 FORWARD 350 COLOR 0x0000FF TURN 110 FORWARD 350 COLOR 0x0000FF TURN 125 FORWARD 50 COLOR 0x0000FF TURN 55 FORWARD 260 COLOR 0x0000FF TURN -110 FORWARD 220 COLOR 0x0000FF TURN -125 FORWARD 230 COLOR 0x0000FF TURN 55 FORWARD 41 COLOR 0x0000FF TURN 125 FORWARD 130 Enjoy Cheers, FireFox
Andreik Posted February 2, 2009 Posted February 2, 2009 Romanian flag expandcollapse popupCLEAR SIZE 20 COLOR 0x804000 FORWARD 200 TURN -90 COLOR 0x0000FF SIZE 20 FORWARD 75 TURN -90 FORWARD 15 TURN -90 FORWARD 75 TURN 90 FORWARD 15 TURN 90 FORWARD 75 TURN -90 FORWARD 15 TURN -90 FORWARD 75 TURN 180 FORWARD 85 WAIT 1000 COLOR 0xFFFF00 FORWARD 75 TURN 90 FORWARD 15 TURN 90 FORWARD 75 TURN -90 FORWARD 15 TURN -90 FORWARD 75 TURN 90 FORWARD 15 TURN 90 FORWARD 75 TURN 180 FORWARD 85 WAIT 1000 COLOR 0xFF0000 FORWARD 50 TURN -90 FORWARD 15 TURN -90 FORWARD 50 TURN 90 FORWARD 15 TURN 90 FORWARD 50 TURN -90 FORWARD 15 TURN -90 FORWARD 50 TURN 90 SIZE 1 FORWARD 10 COLOR 0xFFFFFF FORWARD 30 WAIT 1000
Andreik Posted February 2, 2009 Posted February 2, 2009 @JamesBrooks Would be nice to add a function to move the turtle without draw.
FireFox Posted February 2, 2009 Posted February 2, 2009 this code is smaller for autoit logo : CODE CLEAR SIZE 30 COLOR 0x0000FF TURN -90 FORWARD 200 SIZE 30 COLOR 0x0000FF TURN 125 FORWARD 350 SIZE 30 COLOR 0x0000FF TURN 110 FORWARD 350 SIZE 30 COLOR 0x0000FF TURN 125 FORWARD 200 Cheers, FireFox.
James Posted February 2, 2009 Author Posted February 2, 2009 Great examples guys!! I am going to add PENUP and PENDOWN so they won't effect the position. Maybe X or Y actually. Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
FireFox Posted February 2, 2009 Posted February 2, 2009 @JamesBrooks It would be nice (if possible) to put color in the square (or something else) drown Cheers, FireFox.
James Posted February 2, 2009 Author Posted February 2, 2009 (edited) PENUP and PENDOWN are now added FireFox said: It would be nice (if possible) to put color in the square (or something else) drown smile.gifFILL, hmm. I would need to create labels to define shapes, then colour that in. Edited February 2, 2009 by JamesBrooks Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
jvanegmond Posted February 2, 2009 Posted February 2, 2009 A log of all actions made, so you could reproduce the effect while you're actually only writing small bits at a time. github.com/jvanegmond
AzKay Posted February 2, 2009 Posted February 2, 2009 Oshi- I remember seeing this like; 7 years ago or something. I think in primary school on mac, I dont know. I know ive seen it. # MY LOVE FOR YOU... IS LIKE A TRUCK- #
James Posted February 2, 2009 Author Posted February 2, 2009 Manadar said: A log of all actions made, so you could reproduce the effect while you're actually only writing small bits at a time.Who is that too? AzKay said: Oshi- I remember seeing this like; 7 years ago or something. I think in primary school on mac, I dont know.I know ive seen it.Yeah you probably have seen it Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
AzKay Posted February 2, 2009 Posted February 2, 2009 Ill try it when I get home tomorrow. # MY LOVE FOR YOU... IS LIKE A TRUCK- #
James Posted February 2, 2009 Author Posted February 2, 2009 AzKay said: Ill try it when I get home tomorrow.Ok cool Screenshot of Firefox first code: Cool huh! Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
AzKay Posted February 2, 2009 Posted February 2, 2009 Epic. Cant wait to try it ;3 # MY LOVE FOR YOU... IS LIKE A TRUCK- #
James Posted February 2, 2009 Author Posted February 2, 2009 CODE #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <String.au3> #include <Array.au3> Global $arrDic[7] = ["FORWARD", "COLOR", "CLEAR", "WAIT", "DO", "SIZE", "TURN"] Global $arrCols[4][2] = [["BLACK", "0x000000"],["RED", "0xFF0000"],["BLUE", "0x0000FF"],["GREEN", "0x00FF00"]] Global $turtle = @ScriptDir & '\turtle.gif', $Count = 0, $picDraw Global Const $Pi = 3.14159265358979323846264338328 Global $oldX = 228, $oldY = 300, $oldA = 90, $penColor = 0x000000, $penSize = 1 Global Const $degToRad = $Pi / 180 $guiMain = GUICreate("A3 LOGO Interpreter", 474, 445) GUICtrlCreateGroup("", 8, 336, 457, 105) $strCmd = GUICtrlCreateEdit("", 16, 352, 377, 81, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL,$ES_AUTOHSCROLL)) $btnRun = GUICtrlCreateButton("&Run", 400, 352, 57, 81, 0) GUICtrlCreateGroup("", -99, -99, 1, 1) $picDraw = GUICtrlCreateGraphic(8, 8, 457, 330) GUICtrlSetBkColor(-1, 0xFFFFFF) GUICtrlSetGraphic(-1, $GUI_GR_MOVE, $oldX, $oldY) $picTurt = GUICtrlCreatePic($turtle, 228, 300, 20, 24) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $btnRun Command() EndSwitch WEnd Func Turtle($x, $y, $color = $penColor, $size = $penSize) GUICtrlSetGraphic($picDraw, $GUI_GR_MOVE, $oldX, $oldY) GUICtrlSetGraphic($picDraw, $GUI_GR_PENSIZE, $size) GUICtrlSetGraphic($picDraw, $GUI_GR_COLOR, $color) GUICtrlSetGraphic($picDraw, $GUI_GR_LINE, $x, $y) GUICtrlSetGraphic($picDraw, $GUI_GR_REFRESH) $oldY = $y $oldX = $x GUICtrlSetPos($picTurt, $x, $y) EndFunc ;==>Turtle Func Command() $Line = StringSplit(StringStripCR(GUICtrlRead($strCmd)), @LF) For $i = 1 To $Line[0] If $Line[$i] = "" Then ContinueLoop EndIf If StringInStr($Line[$i], " ") Then $ThisThing = StringLeft($Line[$i], StringInStr($Line[$i], " ") - 1) Else $ThisThing = $Line[$i] EndIf Switch StringUpper($ThisThing) Case $arrDic[0]; FORWARD Call("FORWARD",$Line[$i]) Case $arrDic[1]; COLOR Call("COLOR",$Line[$i]) Case $arrDic[2]; CLEAR ClearGraphic() Case $arrDic[3]; WAIT Call("WAIT",$Line[$i]) Case $arrDic[4]; DO (Loop) Call("DoLoop",$Line[$i]) Case $arrDic[5]; SIZE Call("SIZE",$Line[$i]) Case $arrDic[6]; TURN Call("TURN",$Line[$i]) Case Else MsgBox(0, "LOGO", "Error: Unexpected command: " & $ThisThing) EndSwitch Next EndFunc ;==>Command Func FORWARD($Line) $ThisY = StringSplit($Line, " ") If IsArray($ThisY) Then Turtle($oldX + ( Cos($oldA * $degToRad) * $ThisY[2]) , $oldY - ( Sin($oldA * $degToRad) * $ThisY[2])) EndFunc Func Color($Line) $getPen = StringSplit($Line, " ") If IsArray($getPen) Then $penColor = $getPen[2] EndFunc Func WAIT($Line) $Time = StringSplit($Line, " ") If IsArray($Time) Then Sleep($Time[2]) EndFunc Func SIZE($Line) $getSize = StringSplit($Line, " ") If IsArray($getSize) Then $penSize = $getSize[2] EndFunc Func TURN($Line) $ThisTurn = StringSplit($Line, " ") If Not IsArray($ThisTurn) Then MsgBox(0, "LOGO", "Error: TURN requires a degree.") Else $oldA += Number($ThisTurn[2]) While ($oldA > 360) $oldA -= 360 WEnd While ($oldA < 0) $oldA += 360 WEnd ;Turtle($oldX - $ThisTurn[2], $oldY) EndIf EndFunc Func ClearGraphic() For $INDEX = 0 To $Count GUICtrlDelete($picDraw) GUICtrlCreateGraphic(8, 8, 457, 330) GUICtrlSetBkColor(-1, 0xFFFFFF) GUICtrlSetGraphic(-1, $GUI_GR_MOVE, $oldX, $oldY) $oldX = 228 $oldY = 300 $oldA = 90 Turtle(228, 300) Next $Count = 0 EndFunc ;==>ClearGraphic Func DoLoop($LINE) Local $WORK = _StringBetween($LINE,"[","]") Local $LOOP = StringLeft($LINE,StringInStr($LINE,"[")-2) Local $LOOPS = StringSplit($LOOP," ") If IsArray($LOOPS) Then Local $COMMANDS = StringSplit($WORK[0]," ",1) If IsArray($COMMANDS) Then For $INDEX = 1 To $LOOPS[2] For $COMMAND_INDEX = 1 To $COMMANDS[0] If StringLeft($COMMANDS[$COMMAND_INDEX],7) = "FORWARD" Then Call("FORWARD",$COMMANDS[$COMMAND_INDEX]) ElseIf StringLeft($COMMANDS[$COMMAND_INDEX],5) = "COLOR" Then Call("COLOR",$COMMANDS[$COMMAND_INDEX]) ElseIf StringLeft($COMMANDS[$COMMAND_INDEX],5) = "CLEAR" Then Call("ClearGraphic") ElseIf StringLeft($COMMANDS[$COMMAND_INDEX],4) = "WAIT" Then Call("WAIT",$COMMANDS[$COMMAND_INDEX]) ElseIf StringLeft($COMMANDS[$COMMAND_INDEX],4) = "SIZE" Then Call("SIZE",$COMMANDS[$COMMAND_INDEX]) ElseIf StringLeft($COMMANDS[$COMMAND_INDEX],4) = "TURN" Then Call("TURN",$COMMANDS[$COMMAND_INDEX]) EndIf Next Next EndIf EndIf EndFunc WOW, Andreik sent me this, DO loops work! Example: CLEAR COLOR 0xFFFFFF FORWARD 150 DO 4 [COLOR 0x0000FF FORWARD 50 TURN 90 WAIT 1000] Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
FireFox Posted February 2, 2009 Posted February 2, 2009 @JamesBrooks Its another way, but I prefer the first one... Cheers, FireFox.
James Posted February 2, 2009 Author Posted February 2, 2009 FireFox said: @JamesBrooksIts another way, but I prefer the first one...Cheers, FireFox.First option for PENUP/DOWN? Blog - Seriously epic web hosting - Twitter - GitHub - Cachet HQ
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now