This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.

#1 2009-09-07 18:27:46

big-bang
Scratcher
Registered: 2008-02-21
Posts: 1000+

Project Summaries

This is a place to show off project summaries.

...What's that? You've never heard of project summaries?! It's easy to get them. Just shift-click (yes, shift-click. don't think I'm saying that just because I'm on a Mac and can't right-click.) on the File menu in Scratch after opening a project. Then select "Get Project Summary". Save it wherever you like (I made a folder for them) and then open the document. Copy all the text, and you're ready to post it here!

Here's the summary for a project I never released. Enjoy!

Code:

Project: Art-O-Matic
Author: big-bang
Scratch: 1.3 (release of 2-Sep-08)
Notes:

History:
    2008-12-20 09:32:07    save    Art-O-Matic        
    2008-12-20 09:32:26    save    Art-O-Matic        
    2008-12-20 09:32:54    save    Art-O-Matic        
    2008-12-20 09:33:17    save    Art-O-Matic        
    2008-12-20 09:34:24    save    Art-O-Matic        
    2008-12-20 11:23:02    save    Art-O-Matic        
    2009-3-5 09:11:37    save    Art-O-Matic        

Totals: 
    Sprites: 1
    Stacks: 2
    Unique costumes: 2
    Unique sounds: 1
--------
Sprite: Stage
  Costumes (1):
    background1 (480x360)
  Sounds (1):
    pop (0:00:00)
  No stacks.
--------
Sprite: Sprite1
  Costumes (1):
    costume1 (1x1)
  Sounds (0):
  Stacks (2):
    when green flag clicked
        go to x: 0 y: 0
        clear
        pen down
        forever  
            repeat 25  
                turn  (Degree) degrees
                move 2 steps
                change pen color by 1
                if on edge, bounce
            repeat 25  
                turn  (Degree) degrees
                move 2 steps
                change pen color by 1
                if on edge, bounce
    end

    when green flag clicked
        forever  
            set "Degree" to (pick random 2 to 10)
            wait 1 secs
    end

--------

http://i47.tinypic.com/6edrbm.jpghttp://i45.tinypic.com/dw9hmw.jpghttp://i50.tinypic.com/f28tvn.jpghttp://i45.tinypic.com/ruwaop.jpg

Offline

 

#2 2009-09-07 18:33:22

The-Whiz
Scratcher
Registered: 2007-07-09
Posts: 1000+

Re: Project Summaries

You seem to have found a text-based scratch...

Code:

Project: ScratchText 2.1.1
Author: The-Whiz
Scratch: 1.4 of 30-Jun-09
Notes:
    ScratchText is back!
    
    Done in this version:
    Added > and < as booleans.
    Now tells what percent loaded it is.
    
    Thanks to Paddle2See, who let me use his Calculator. Without that, none of this would be possible.
    
    See http://scratch.mit.edu/forums/viewtopic.php?pid=181827#p181827 for commands.
    
    Also, you can type
    load Math (or) Names (or) Slots
    (enter)
    run
    (enter)
    
    To run a sample program.
    
    The slowness IS NOT lag, this requires so much processing power that it is hard for Scratch to run quickly. Don't be alarmed if it is very slow.

History:
    2009-6-28 14:54:41    save    ScratchText 2.0.1 [Alpha]        
    2009-6-28 15:30:31    save    ScratchText 2.0.1 [Alpha]        
    2009-6-28 15:42:47    save    ScratchText 2.0.1 [Alpha]        
    2009-6-29 13:56:40    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:00:46    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:08:25    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:52:06    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:56:34    save    ScratchText 2.0.1 [Alpha]        
    2009-7-10 17:02:55    share    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-10 17:03:10    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    The-Whiz
    2009-7-10 17:04:22    share    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-10 17:08:07    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-10 17:35:09    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-10 18:26:58    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-10 22:07:38    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-10 22:07:42    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 07:44:31    share    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-11 07:49:18    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-11 08:56:32    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-11 12:15:48    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:00:44    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:07:26    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:07:48    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:18:14    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:37:32    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 15:05:35    save    ScratchText 2.0.1 [Alpha 1.2]        
    2009-8-7 14:22:35    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 14:59:30    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 15:48:13    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 18:21:01    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 18:32:46    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 19:07:33    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 09:34:06    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 10:58:32    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 11:28:15    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 12:36:30    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:36:51    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:41:22    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:43:02    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:44:37    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:47:01    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:50:10    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:56:00    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:59:47    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 13:04:10    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:52:50    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:53:25    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:56:18    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:58:44    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:02:22    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:03:54    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:09:15    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:14:14    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:21:18    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:26:28    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:26:47    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 18:19:46    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 18:23:42    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 19:08:07    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 19:09:44    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-9 09:10:02    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-9 09:41:52    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-13 10:07:44    share    ScratchText 2.1 [Alpha 1.1]    The-Whiz    
    2009-8-13 10:08:03    save    ScratchText 2.1 [Alpha 1.1]    The-Whiz    
    2009-8-16 09:00:26    save    ScratchText 2.1 [Alpha 1.2]        
    2009-8-16 09:44:21    share    ScratchText 2.1 [Alpha 2] TEST    The-Whiz    
    2009-8-16 09:46:00    share    ScratchText 2.1 [Alpha 2] TEST    The-Whiz    
    2009-8-16 12:14:08    share    ScratchText 2.1 [Alpha 2] TEST    The-Whiz    
    2009-8-16 14:05:24    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:09:36    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:19:11    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:22:23    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:25:20    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:29:32    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:32:26    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:34:39    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:38:21    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:39:12    save    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 16:52:46    save    ScratchText 2.1 [Alpha 2]        
    2009-8-16 16:53:00    save    ScratchText 2.1 [Alpha 2]        
    2009-8-16 16:54:41    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 17:03:17    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 17:03:57    save    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-23 19:11:51    save    ScratchText 2.1        
    2009-8-23 19:25:46    save    ScratchText 2.1        
    2009-8-23 19:27:04    share    ScratchText 2.1    The-Whiz    
    2009-8-23 19:27:59    save    ScratchText 2.1    The-Whiz    
    2009-8-27 17:09:33    save    ScratchText 2.2        
    2009-8-27 17:16:09    share    ScratchText 2.1.1    The-Whiz    
    2009-8-27 17:16:42    save    ScratchText 2.1.1    The-Whiz    
    2009-8-27 18:28:37    share    ScratchText 2.1.1    The-Whiz    
    2009-8-27 18:28:58    save    ScratchText 2.1.1    The-Whiz    
    2009-8-28 16:19:55    save    ScratchText 2.1.1        

Totals: 
    Sprites: 2
    Stacks: 35
    Unique costumes: 4
    Unique sounds: 2
--------
Sprite: Stage
  Costumes (2):
    background1 (480x360)
    background2 (480x360)
  Sounds (1):
    pop (0:00:00)
  Stacks (25):
    when I receive "endif"
        set "Go?" to "1"
    end

    when I receive "else"
        set "ifs encountered" to "0"
        repeat until (((item (Line) of "Run_commands" ) = ">endif") and ((ifs encountered) = "0"))  
            change "Line" by 1
            repeat (length of (item (Line) of "Run_commands" ))  
                change "Var" by 1
                if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                    if ((space?) = "0") 
                        set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                    set "space?" to "1"
            if ((edit_funtion) = ">if") 
                change "ifs encountered" by 1
            if ((edit_funtion) = ">endif") 
                change "ifs encountered" by -1
            if ((Line) > (length of "Run_commands" )) 
                set "if error?" to "1"
                set "Go?" to "1"
                stop script
            if ((Line) > (length of "Run_commands" )) 
                set "if error?" to "1"
                set "Go?" to "1"
                stop script
        set "Go?" to "1"
    end

    when I receive "if_end"
        set "ifs encountered" to "0"
        if ((operator (=,<,>)) = "=") 
            if ((Var) = (Var2)) else 
            else
                repeat until (((item (Line) of "Run_commands" ) = ">else") and ((ifs encountered) = "0"))  
                    change "Line" by 1
                    set "Var" to "0"
                    set "edit_funtion" to ""
                    set "space?" to "0"
                    repeat (length of (item (Line) of "Run_commands" ))  
                        change "Var" by 1
                        if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                            if ((space?) = "0") 
                                set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                        if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                            set "space?" to "1"
                    if ((edit_funtion) = ">if") 
                        change "ifs encountered" by 1
                    if ((edit_funtion) = ">endif") 
                        change "ifs encountered" by -1
                    if ((Line) > (length of "Run_commands" )) 
                        set "if error?" to "1"
                        set "Go?" to "1"
                        stop script
        if ((operator (=,<,>)) = ">") 
            if ((Var) < (Var2)) else 
            else
                repeat until (((item (Line) of "Run_commands" ) = ">else") and ((ifs encountered) = "0"))  
                    change "Line" by 1
                    set "Var" to "0"
                    set "edit_funtion" to ""
                    set "space?" to "0"
                    repeat (length of (item (Line) of "Run_commands" ))  
                        change "Var" by 1
                        if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                            if ((space?) = "0") 
                                set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                        if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                            set "space?" to "1"
                    if ((edit_funtion) = ">if") 
                        change "ifs encountered" by 1
                    if ((edit_funtion) = ">endif") 
                        change "ifs encountered" by -1
                    if ((Line) > (length of "Run_commands" )) 
                        set "if error?" to "1"
                        set "Go?" to "1"
                        stop script
        if ((operator (=,<,>)) = "<") 
            if ((Var) > (Var2)) else 
            else
                repeat until (((item (Line) of "Run_commands" ) = ">else") and ((ifs encountered) = "0"))  
                    change "Line" by 1
                    set "Var" to "0"
                    set "edit_funtion" to ""
                    set "space?" to "0"
                    repeat (length of (item (Line) of "Run_commands" ))  
                        change "Var" by 1
                        if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                            if ((space?) = "0") 
                                set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                        if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                            set "space?" to "1"
                    if ((edit_funtion) = ">if") 
                        change "ifs encountered" by 1
                    if ((edit_funtion) = ">endif") 
                        change "ifs encountered" by -1
                    if ((Line) > (length of "Run_commands" )) 
                        set "if error?" to "1"
                        set "Go?" to "1"
                        stop script
        set "Go?" to "1"
    end

    when I receive "if2"
        if ((item "1" of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "if_end"
                stop script
            else
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "calculator (Thanks Paddle2See!)"
        else
            set "Var" to ""
            repeat until ((length of "Command_running" ) = "0")  
                if (not ((length of "Command_running" ) = "0")) 
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
            broadcast "calculator (Thanks Paddle2See!)"
        set "done calculating" to "0"
        wait until ((done calculating) = "1")
        broadcast "if_end"
    end

    when I receive "if"
        if ((item "1" of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat until ((item 1 of "Command_running" ) = "=")  
                    if (not ((item 1 of "Command_running" ) = "=")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                delete 1 of "Command_running"
                set "Var2" to (Var)
                broadcast "if2"
                stop script
            else
                set "Var" to ""
                repeat until (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))  
                    if (not (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                set "operator (=,<,>)" to (item 1 of "Command_running" )
                delete 1 of "Command_running"
                broadcast "calculator (Thanks Paddle2See!)"
        else
            set "Var" to ""
            repeat until (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))  
                if (not (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))) 
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                delete 1 of "Command_running"
            set "operator (=,<,>)" to (item 1 of "Command_running" )
            delete 1 of "Command_running"
            broadcast "calculator (Thanks Paddle2See!)"
        set "done calculating" to "0"
        wait until ((done calculating) = "1")
        set "Var2" to (Var)
        broadcast "if2"
    end

    when I receive "set"
        set "Var2" to ""
        repeat until ((item 1 of "Command_running" ) = "=")  
            if (not ((item 1 of "Command_running" ) = "=")) 
                set "Var2" to (join (Var2) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        delete 1 of "Command_running"
        if ((item "1" of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "set_end"
                stop script
            else
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "calculator (Thanks Paddle2See!)"
        else
            set "Var" to ""
            repeat until ((length of "Command_running" ) = "0")  
                if (not ((length of "Command_running" ) = "0")) 
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
            broadcast "calculator (Thanks Paddle2See!)"
        set "done calculating" to "0"
        wait until ((done calculating) = "1")
        broadcast "set_end"
    end

    when I receive "set2"
        add (Var2) to "Variables"
        add (Var) to "VarValues"
        set "Go?" to "1"
    end

    when I receive "input2"
        add (Var) to "Variables"
        add (answer) to "VarValues"
        set "Go?" to "1"
    end

    when I receive "set1"
        replace item (var4) of "VarValues" with (Var)
        set "Go?" to "1"
    end

    when I receive "input1"
        replace item (Var2) of "VarValues" with (answer)
        set "Go?" to "1"
    end

    when I receive "Run"
        set "if error?" to "0"
        set "joined" to "0"
        set "Line" to "0"
        forever  
            change "Line" by 1
            if ((Line) > (length of "Run_commands" )) 
                broadcast "end error"
                stop script
            delete "all" of "Command_running"
            set "Var" to "0"
            repeat (length of (item (Line) of "Run_commands" ))  
                change "Var" by 1
                add (letter (Var) of (item (Line) of "Run_commands" )) to "Command_running"
            delete 1 of "Command_running"
            if ((item "last" of "Command_running" ) = ";") 
                delete "last" of "Command_running"
            if ((letter (length of (item ((Line) - 1) of "Run_commands" )) of (item ((Line) - 1) of "Run_commands" )) = ";") 
                set "joined" to "1"
            set "Command" to ""
            if ( "Command_running" contains " ") else 
                repeat until ((item 1 of "Command_running" ) = " ")  
                    set "Command" to (join (Command) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                delete 1 of "Command_running"
            else
                repeat until ((length of "Command_running" ) = "0")  
                    set "Command" to (join (Command) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
            if ( "Valid_commands" contains (Command)) else 
                broadcast (Command)
                set "Go?" to "0"
                wait until ((Go?) = "1")
            else
                broadcast "error"
                stop script
            if ((stop program?) = "1") 
                broadcast "break"
                stop script
            if ((if error?) = "1") 
                broadcast "if error"
                stop script
            if ((Running) = "0") 
                stop script
    end

    when green flag clicked
        delete "all" of "Console"
        add "ScratchText 2.1.1" to "Console"
        add "Release Date of August 27,2009" to "Console"
        add "By The-Whiz" to "Console"
        ask "Press enter to continue..." and wait
        delete 1 of "Console"
        delete 1 of "Console"
        delete 1 of "Console"
        forever  
            ask "Input command" and wait
            add (answer) to "Console"
            if ((answer) = "run") 
                delete "all" of "real_program"
                delete "last" of "Console"
                repeat (length of "Console" )  
                    add (item 1 of "Console" ) to "real_program"
                    delete 1 of "Console"
                delete "all" of "Run_commands"
                set "Var" to "0"
                repeat (length of "real_program" )  
                    change "Var" by 1
                    if ((letter 1 of (item (Var) of "real_program" )) = ">") 
                        add (item (Var) of "real_program" ) to "Run_commands"
                set "stop program?" to "0"
                broadcast "Run"
                set "Running" to "1"
                wait until ((Running) = "0")
            set "Var" to "0"
            set "edit_funtion" to ""
            set "space?" to "0"
            repeat (length of (answer))  
                change "Var" by 1
                if (not ((letter (Var) of (answer)) = " ")) 
                    if ((space?) = "0") 
                        set "edit_funtion" to (join (edit_funtion) (letter (Var) of (answer)))
                if ((letter (Var) of (answer)) = " ") 
                    set "space?" to "1"
            if ( "Valid_commands" contains (edit_funtion)) 
                if (((length of (answer)) - (length of (edit_funtion))) > "0") 
                    delete "all" of "Command_running"
                    set "Var" to ((length of (edit_funtion)) + 1)
                    repeat (((length of (answer)) - (length of (edit_funtion))) - 1)  
                        change "Var" by 1
                        add (letter (Var) of (answer)) to "Command_running"
                    broadcast (edit_funtion)
                    set "Go?" to "0"
                    wait until ((Go?) = "1")
            if ((edit_funtion) = "new") 
                ask "Sure? (Y/N)" and wait
                if ((answer) = "Y") 
                    delete "all" of "Console"
            if ((edit_funtion) = "save") 
                set "Var" to "5"
                set "Var2" to ""
                repeat ((length of (answer)) - 5)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                delete "last" of "Console"
                if ( "Program" contains (Var2)) 
                    set "Var" to "0"
                    repeat until (not ( "Program" contains (Var2)))  
                        if ((item (Var) of "Program" ) = (Var2)) else 
                            delete (Var) of "Program"
                            delete (Var) of "ProgramCommand"
                        else
                            change "Var" by 1
                set "Var" to "0"
                repeat (length of "Console" )  
                    change "Var" by 1
                    add (Var2) to "Program"
                    add (item (Var) of "Console" ) to "ProgramCommand"
                add (join (join "saved as "" (Var2)) """) to "Console"
                ask "Press enter to continue" and wait
                delete "last" of "Console"
            if ((edit_funtion) = "load") 
                set "Var2" to ""
                set "Var" to "5"
                repeat ((length of (answer)) - 5)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                delete "all" of "Console"
                add "Loading" to "Console"
                if ( "Program" contains (Var2)) else 
                    set "Var" to "0"
                    repeat until ((item (Var) of "Program" ) = (Var2))  
                        change "Var" by 1
                        replace item 1 of "Console" with (join "Loading " (join ((round (((Var) / (length of "Program" )) * 10000)) / 100) "%"))
                    repeat until ((Var) = ((length of "Program" ) + 1))  
                        if ((item (Var) of "Program" ) = (Var2)) 
                            add (item (Var) of "ProgramCommand" ) to "Console"
                        change "Var" by 1
                        replace item 1 of "Console" with (join "Loading " (join ((round (((Var) / (length of "Program" )) * 10000)) / 100) "%"))
                    delete 1 of "Console"
                    add (join (join """ (Var2)) "" has been loaded.") to "Console"
                    ask "Press enter to continue" and wait
                    delete "last" of "Console"
                else
                    add "No such file." to "Console"
                    ask "Press enter to continue" and wait
                    delete "last" of "Console"
            if ((edit_funtion) = "delete") 
                set "Var2" to ""
                set "Var" to "7"
                repeat ((length of (answer)) - 7)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                delete (Var2) of "Console"
                delete "last" of "Console"
            if ((edit_funtion) = "edit") 
                set "Var2" to ""
                set "Var" to "5"
                repeat ((length of (answer)) - 5)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                ask (join (join "Editing " (Var2)) "; Input command. Enter "Undo" to null action.") and wait
                if (not ((answer) = "undo")) 
                    replace item (Var2) of "Console" with (answer)
                delete "last" of "Console"
            if ((edit_funtion) = "insert") 
                set "Var2" to ""
                set "Var" to "7"
                repeat ((length of (answer)) - 7)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                ask (join (join "Inserting at " (Var2)) "; Input command. Enter "Undo" to null action.") and wait
                if (not ((answer) = "undo")) 
                    insert (answer) at (Var2) of "Console"
                delete "last" of "Console"
    end

    when I receive "print"
        if ((item 1 of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat (length of "Command_running" )  
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                if ((joined) = "1") else 
                    replace item "last" of "Console" with (join (item "last" of "Console" ) (Var))
                else
                    add (Var) to "Console"
                set "joined" to "0"
                set "Go?" to "1"
            else
                broadcast "print2"
        else
            broadcast "print2"
    end

    when I receive "error"
        add (join (join "Error in line " (Line)) ": Unrecognized command") to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end

    when I receive "print2"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        set "done calculating" to "0"
        broadcast "calculator (Thanks Paddle2See!)"
        wait until ((done calculating) = "1")
        if ((joined) = "1") else 
            replace item "last" of "Console" with (join (item "last" of "Console" ) (Var))
        else
            add (Var) to "Console"
        set "joined" to "0"
        set "Go?" to "1"
    end

    when I receive "wait"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        wait (Var) secs
        set "Go?" to "1"
    end

    when I receive "set_end"
        set "var4" to "0"
        forever  
            if ((item (var4) of "Variables" ) = (Var2)) 
                broadcast "set1"
                stop script
            if ((var4) = (length of "Variables" )) 
                broadcast "set2"
                stop script
            change "var4" by 1
    end

    when I receive "input"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        if ((joined) = "1") else 
            replace item "last" of "Console" with (join (item "last" of "Console" ) "?")
        else
            add "?" to "Console"
        set "joined" to "0"
        ask "Enter input:" and wait
        set "Var2" to "0"
        forever  
            if ((item (Var2) of "Variables" ) = (Var)) 
                broadcast "input1"
                stop script
            if ((Var2) = (length of "Variables" )) 
                broadcast "input2"
                stop script
            change "Var2" by 1
    end

    when I receive "goto"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        set "done calculating" to "0"
        broadcast "calculator (Thanks Paddle2See!)"
        wait until ((done calculating) = "1")
        set "Line" to ((Var) - 1)
        set "Go?" to "1"
    end

    when green flag clicked
        forever  
            if ((key "q" pressed?) and ((key "u" pressed?) and ((key "i" pressed?) and (key "t" pressed?)))) 
                set "Go?" to "1"
                set "stop program?" to "1"
    end

    when I receive "break"
        add (join "Break in line " (Line)) to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end

    when I receive "clear"
        delete "all" of "Console"
        set "Go?" to "1"
    end

    when I receive "end"
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Running" to "0"
        set "Go?" to "1"
    end

    when I receive "if error"
        add "Uncomplete IF!" to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end

    when I receive "end error"
        add "Program end not specified!" to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end
--------
Sprite: Calculator
  Costumes (1):
    costume1 (13x14)
  Sounds (0):
  Stacks (7):
    when I receive "calculator (Thanks Paddle2See!)"
        set "Input Line" to (Var)
        broadcast "Parse Line into Infix Fields" and wait
        broadcast "Substitute Constants" and wait
        broadcast "Translate Infix to Postfix" and wait
        broadcast "Evaluate Postfix Expression" and wait
    end

    when I receive "Evaluate Postfix Expression"
        repeat until ((length of "Postfix" ) < "2")  
            set "I1" to "2"
            set "Field" to (item (I1) of "Postfix" )
            repeat until ((( "Op High" contains (Field)) or ( "Op Medium" contains (Field))) or (( "Op Low" contains (Field)) or ( "Functions" contains (Field))))  
                change "I1" by 1
                set "Field" to (item (I1) of "Postfix" )
            if (not ( "Functions" contains (Field))) 
                set "A" to (item ((I1) - 2) of "Postfix" )
            set "B" to (item ((I1) - 1) of "Postfix" )
            set "Op" to (item (I1) of "Postfix" )
            if ((Op) = "+") else 
                replace item ((I1) - 2) of "Postfix" with ((A) + (B))
            else
                if ((Op) = "-") else 
                    replace item ((I1) - 2) of "Postfix" with ((A) - (B))
                else
                    if ((Op) = "*") else 
                        replace item ((I1) - 2) of "Postfix" with ((A) * (B))
                    else
                        if ((Op) = "/") else 
                            replace item ((I1) - 2) of "Postfix" with ((A) / (B))
                        else
                            if ((Op) = "^") else 
                                replace item ((I1) - 2) of "Postfix" with ( "10 ^" of ((B) * ( "log" of (A))))
                            else
                                if ((Op) = "sin") else 
                                    replace item ((I1) - 1) of "Postfix" with ( "sin" of (B))
                                else
                                    if ((Op) = "cos") else 
                                        replace item ((I1) - 1) of "Postfix" with ( "cos" of (B))
                                    else
                                        if ((Op) = "tan") else 
                                            replace item ((I1) - 1) of "Postfix" with ( "tan" of (B))
                                        else
                                            if ((Op) = "asin") else 
                                                replace item ((I1) - 1) of "Postfix" with ( "asin" of (B))
                                            else
                                                if ((Op) = "acos") else 
                                                    replace item ((I1) - 1) of "Postfix" with ( "acos" of (B))
                                                else
                                                    if ((Op) = "atan") else 
                                                        replace item ((I1) - 1) of "Postfix" with ( "atan" of (B))
                                                    else
                                                        if ((Op) = "sqrt") else 
                                                            replace item ((I1) - 1) of "Postfix" with ( "sqrt" of (B))
                                                        else
                                                            if ((Op) = "%") else 
                                                                replace item ((I1) - 1) of "Postfix" with (0 - (B))
                                                            else
                                                                add (join (join "Unrecognized Operator '" (Op)) (join "' in line " (Line))) to "Console"
            if ( "Functions" contains (Field)) else 
                delete (I1) of "Postfix"
            else
                delete ((I1) - 1) of "Postfix"
                delete ((I1) - 1) of "Postfix"
        set "Var" to (item 1 of "Postfix" )
        set "done calculating" to "1"
    end

    when green flag clicked
        hide
    end

    when I receive "Parse Line into Infix Fields"
        delete "all" of "Infix"
        set "L1" to (length of (Input Line))
        set "Unary Operator" to "1"
        set "Field" to ""
        set "I1" to "1"
        repeat (L1)  
            set "Character" to (letter (I1) of (Input Line))
            if (((( "Op High" contains (Character)) or ( "Op Medium" contains (Character))) or (( "Op Low" contains (Character)) or ( "Paren" contains (Character)))) or ((Character) = " ")) else 
                if (((Unary Operator) = "1") and ((Character) = "-")) 
                    set "Character" to "%"
                if ((( "Op High" contains (Character)) or ( "Op Medium" contains (Character))) or (( "Op Low" contains (Character)) or ((Character) = "("))) else 
                    set "Unary Operator" to "1"
                else
                    set "Unary Operator" to "0"
                if ((length of (Field)) > "0") 
                    add (Field) to "Infix"
                    set "Field" to ""
                if (not ((Character) = " ")) 
                    add (Character) to "Infix"
            else
                if (not ((Character) = " ")) 
                    set "Unary Operator" to "0"
                    set "Field" to (join (Field) (Character))
            change "I1" by 1
        if ((length of (Field)) > "0") 
            add (Field) to "Infix"
    end

    when I receive "Translate Infix to Postfix"
        delete "all" of "Postfix"
        delete "all" of "Translation Stack"
        set "I1" to "1"
        repeat (length of "Infix" )  
            set "Field" to (item (I1) of "Infix" )
            if (((( "Op High" contains (Field)) or ( "Op Medium" contains (Field))) or (( "Op Low" contains (Field)) or ( "Paren" contains (Field)))) or ( "Functions" contains (Field))) else 
                broadcast "Process Operators and Functions" and wait
            else
                add (Field) to "Postfix"
            change "I1" by 1
        repeat (length of "Translation Stack" )  
            add (item (length of "Translation Stack" ) of "Translation Stack" ) to "Postfix"
            delete "last" of "Translation Stack"
    end

    when I receive "Process Operators and Functions"
        if ((Field) = "(") else 
            add (Field) to "Translation Stack"
        else
            if ((Field) = ")") else 
                repeat until ((item (length of "Translation Stack" ) of "Translation Stack" ) = "(")  
                    add (item (length of "Translation Stack" ) of "Translation Stack" ) to "Postfix"
                    delete "last" of "Translation Stack"
                delete "last" of "Translation Stack"
            else
                set "Move Required" to "1"
                repeat until ((Move Required) = "0")  
                    set "Top Op" to (item (length of "Translation Stack" ) of "Translation Stack" )
                    set "Move Required" to "0"
                    if (( "Op Low" contains (Field)) and (( "Op Low" contains (Top Op)) or (( "Op Medium" contains (Top Op)) or ( "Op High" contains (Top Op))))) 
                        set "Move Required" to "1"
                    if (( "Op Medium" contains (Field)) and (( "Op Medium" contains (Top Op)) or ( "Op High" contains (Top Op)))) 
                        set "Move Required" to "1"
                    if (( "Op High" contains (Field)) and ( "Op High" contains (Top Op))) 
                        set "Move Required" to "1"
                    if ((( "Op Low" contains (Field)) or (( "Op Medium" contains (Field)) or ( "Op High" contains (Field)))) and ( "Functions" contains (Top Op))) 
                        set "Move Required" to "1"
                    if ((Move Required) = "1") 
                        add (Top Op) to "Postfix"
                        delete "last" of "Translation Stack"
                        if ((length of "Translation Stack" ) < "1") 
                            set "Move Required" to "0"
                add (Field) to "Translation Stack"
    end

    when I receive "Substitute Constants"
        replace item 1 of "VarValues" with (pick random (item 2 of "VarValues" ) to (item 3 of "VarValues" ))
        set "I1" to "1"
        repeat (length of "Infix" )  
            if ( "Variables" contains (item (I1) of "Infix" )) 
                set "J1" to "1"
                repeat until ((item (I1) of "Infix" ) = (item (J1) of "Variables" ))  
                    change "J1" by 1
                replace item (I1) of "Infix" with (item (J1) of "VarValues" )
            change "I1" by 1
    end
--------
Sprite: Sprite1
  Costumes (1):
    costume3 (480x360)
  Sounds (1):
    meow (0:00:01)
  Stacks (1):
    when green flag clicked
        go back 1 layers
    end

--------

Offline

 

#3 2009-09-07 21:31:46

illusionist
Retired Community Moderator
Registered: 2008-07-02
Posts: 1000+

Re: Project Summaries

The-Whiz wrote:

You seem to have found a text-based scratch...

Code:

Project: ScratchText 2.1.1
Author: The-Whiz
Scratch: 1.4 of 30-Jun-09
Notes:
    ScratchText is back!
    
    Done in this version:
    Added > and < as booleans.
    Now tells what percent loaded it is.
    
    Thanks to Paddle2See, who let me use his Calculator. Without that, none of this would be possible.
    
    See http://scratch.mit.edu/forums/viewtopic.php?pid=181827#p181827 for commands.
    
    Also, you can type
    load Math (or) Names (or) Slots
    (enter)
    run
    (enter)
    
    To run a sample program.
    
    The slowness IS NOT lag, this requires so much processing power that it is hard for Scratch to run quickly. Don't be alarmed if it is very slow.

History:
    2009-6-28 14:54:41    save    ScratchText 2.0.1 [Alpha]        
    2009-6-28 15:30:31    save    ScratchText 2.0.1 [Alpha]        
    2009-6-28 15:42:47    save    ScratchText 2.0.1 [Alpha]        
    2009-6-29 13:56:40    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:00:46    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:08:25    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:52:06    save    ScratchText 2.0.1 [Alpha]        
    2009-6-30 08:56:34    save    ScratchText 2.0.1 [Alpha]        
    2009-7-10 17:02:55    share    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-10 17:03:10    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    The-Whiz
    2009-7-10 17:04:22    share    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-10 17:08:07    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-10 17:35:09    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-10 18:26:58    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-10 22:07:38    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-10 22:07:42    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 07:44:31    share    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-11 07:49:18    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-11 08:56:32    save    ScratchText 2.0.1 [Alpha 1.0]    The-Whiz    
    2009-7-11 12:15:48    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:00:44    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:07:26    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:07:48    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:18:14    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 13:37:32    save    ScratchText 2.0.1 [Alpha 1.0]        
    2009-7-11 15:05:35    save    ScratchText 2.0.1 [Alpha 1.2]        
    2009-8-7 14:22:35    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 14:59:30    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 15:48:13    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 18:21:01    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 18:32:46    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-7 19:07:33    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 09:34:06    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 10:58:32    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 11:28:15    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-8 12:36:30    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:36:51    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:41:22    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:43:02    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:44:37    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:47:01    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:50:10    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:56:00    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 12:59:47    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 13:04:10    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:52:50    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:53:25    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:56:18    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 15:58:44    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:02:22    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:03:54    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:09:15    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:14:14    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:21:18    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:26:28    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 16:26:47    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 18:19:46    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 18:23:42    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 19:08:07    share    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-8 19:09:44    save    ScratchText 2.1 [Alpha 1.0]    The-Whiz    
    2009-8-9 09:10:02    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-9 09:41:52    save    ScratchText 2.1 [Alpha 1.0]        
    2009-8-13 10:07:44    share    ScratchText 2.1 [Alpha 1.1]    The-Whiz    
    2009-8-13 10:08:03    save    ScratchText 2.1 [Alpha 1.1]    The-Whiz    
    2009-8-16 09:00:26    save    ScratchText 2.1 [Alpha 1.2]        
    2009-8-16 09:44:21    share    ScratchText 2.1 [Alpha 2] TEST    The-Whiz    
    2009-8-16 09:46:00    share    ScratchText 2.1 [Alpha 2] TEST    The-Whiz    
    2009-8-16 12:14:08    share    ScratchText 2.1 [Alpha 2] TEST    The-Whiz    
    2009-8-16 14:05:24    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:09:36    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:19:11    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:22:23    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:25:20    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:29:32    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:32:26    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:34:39    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:38:21    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 14:39:12    save    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 16:52:46    save    ScratchText 2.1 [Alpha 2]        
    2009-8-16 16:53:00    save    ScratchText 2.1 [Alpha 2]        
    2009-8-16 16:54:41    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 17:03:17    share    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-16 17:03:57    save    ScratchText 2.1 [Alpha 2]    The-Whiz    
    2009-8-23 19:11:51    save    ScratchText 2.1        
    2009-8-23 19:25:46    save    ScratchText 2.1        
    2009-8-23 19:27:04    share    ScratchText 2.1    The-Whiz    
    2009-8-23 19:27:59    save    ScratchText 2.1    The-Whiz    
    2009-8-27 17:09:33    save    ScratchText 2.2        
    2009-8-27 17:16:09    share    ScratchText 2.1.1    The-Whiz    
    2009-8-27 17:16:42    save    ScratchText 2.1.1    The-Whiz    
    2009-8-27 18:28:37    share    ScratchText 2.1.1    The-Whiz    
    2009-8-27 18:28:58    save    ScratchText 2.1.1    The-Whiz    
    2009-8-28 16:19:55    save    ScratchText 2.1.1        

Totals: 
    Sprites: 2
    Stacks: 35
    Unique costumes: 4
    Unique sounds: 2
--------
Sprite: Stage
  Costumes (2):
    background1 (480x360)
    background2 (480x360)
  Sounds (1):
    pop (0:00:00)
  Stacks (25):
    when I receive "endif"
        set "Go?" to "1"
    end

    when I receive "else"
        set "ifs encountered" to "0"
        repeat until (((item (Line) of "Run_commands" ) = ">endif") and ((ifs encountered) = "0"))  
            change "Line" by 1
            repeat (length of (item (Line) of "Run_commands" ))  
                change "Var" by 1
                if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                    if ((space?) = "0") 
                        set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                    set "space?" to "1"
            if ((edit_funtion) = ">if") 
                change "ifs encountered" by 1
            if ((edit_funtion) = ">endif") 
                change "ifs encountered" by -1
            if ((Line) > (length of "Run_commands" )) 
                set "if error?" to "1"
                set "Go?" to "1"
                stop script
            if ((Line) > (length of "Run_commands" )) 
                set "if error?" to "1"
                set "Go?" to "1"
                stop script
        set "Go?" to "1"
    end

    when I receive "if_end"
        set "ifs encountered" to "0"
        if ((operator (=,<,>)) = "=") 
            if ((Var) = (Var2)) else 
            else
                repeat until (((item (Line) of "Run_commands" ) = ">else") and ((ifs encountered) = "0"))  
                    change "Line" by 1
                    set "Var" to "0"
                    set "edit_funtion" to ""
                    set "space?" to "0"
                    repeat (length of (item (Line) of "Run_commands" ))  
                        change "Var" by 1
                        if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                            if ((space?) = "0") 
                                set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                        if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                            set "space?" to "1"
                    if ((edit_funtion) = ">if") 
                        change "ifs encountered" by 1
                    if ((edit_funtion) = ">endif") 
                        change "ifs encountered" by -1
                    if ((Line) > (length of "Run_commands" )) 
                        set "if error?" to "1"
                        set "Go?" to "1"
                        stop script
        if ((operator (=,<,>)) = ">") 
            if ((Var) < (Var2)) else 
            else
                repeat until (((item (Line) of "Run_commands" ) = ">else") and ((ifs encountered) = "0"))  
                    change "Line" by 1
                    set "Var" to "0"
                    set "edit_funtion" to ""
                    set "space?" to "0"
                    repeat (length of (item (Line) of "Run_commands" ))  
                        change "Var" by 1
                        if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                            if ((space?) = "0") 
                                set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                        if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                            set "space?" to "1"
                    if ((edit_funtion) = ">if") 
                        change "ifs encountered" by 1
                    if ((edit_funtion) = ">endif") 
                        change "ifs encountered" by -1
                    if ((Line) > (length of "Run_commands" )) 
                        set "if error?" to "1"
                        set "Go?" to "1"
                        stop script
        if ((operator (=,<,>)) = "<") 
            if ((Var) > (Var2)) else 
            else
                repeat until (((item (Line) of "Run_commands" ) = ">else") and ((ifs encountered) = "0"))  
                    change "Line" by 1
                    set "Var" to "0"
                    set "edit_funtion" to ""
                    set "space?" to "0"
                    repeat (length of (item (Line) of "Run_commands" ))  
                        change "Var" by 1
                        if (not ((letter (Var) of (item (Line) of "Run_commands" )) = " ")) 
                            if ((space?) = "0") 
                                set "edit_funtion" to (join (edit_funtion) (letter (Var) of (item (Line) of "Run_commands" )))
                        if ((letter (Var) of (item (Line) of "Run_commands" )) = " ") 
                            set "space?" to "1"
                    if ((edit_funtion) = ">if") 
                        change "ifs encountered" by 1
                    if ((edit_funtion) = ">endif") 
                        change "ifs encountered" by -1
                    if ((Line) > (length of "Run_commands" )) 
                        set "if error?" to "1"
                        set "Go?" to "1"
                        stop script
        set "Go?" to "1"
    end

    when I receive "if2"
        if ((item "1" of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "if_end"
                stop script
            else
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "calculator (Thanks Paddle2See!)"
        else
            set "Var" to ""
            repeat until ((length of "Command_running" ) = "0")  
                if (not ((length of "Command_running" ) = "0")) 
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
            broadcast "calculator (Thanks Paddle2See!)"
        set "done calculating" to "0"
        wait until ((done calculating) = "1")
        broadcast "if_end"
    end

    when I receive "if"
        if ((item "1" of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat until ((item 1 of "Command_running" ) = "=")  
                    if (not ((item 1 of "Command_running" ) = "=")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                delete 1 of "Command_running"
                set "Var2" to (Var)
                broadcast "if2"
                stop script
            else
                set "Var" to ""
                repeat until (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))  
                    if (not (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                set "operator (=,<,>)" to (item 1 of "Command_running" )
                delete 1 of "Command_running"
                broadcast "calculator (Thanks Paddle2See!)"
        else
            set "Var" to ""
            repeat until (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))  
                if (not (((item 1 of "Command_running" ) = "=") or (((item 1 of "Command_running" ) = "<") or ((item 1 of "Command_running" ) = ">")))) 
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                delete 1 of "Command_running"
            set "operator (=,<,>)" to (item 1 of "Command_running" )
            delete 1 of "Command_running"
            broadcast "calculator (Thanks Paddle2See!)"
        set "done calculating" to "0"
        wait until ((done calculating) = "1")
        set "Var2" to (Var)
        broadcast "if2"
    end

    when I receive "set"
        set "Var2" to ""
        repeat until ((item 1 of "Command_running" ) = "=")  
            if (not ((item 1 of "Command_running" ) = "=")) 
                set "Var2" to (join (Var2) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        delete 1 of "Command_running"
        if ((item "1" of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "set_end"
                stop script
            else
                set "Var" to ""
                repeat until ((length of "Command_running" ) = "0")  
                    if (not ((length of "Command_running" ) = "0")) 
                        set "Var" to (join (Var) (item 1 of "Command_running" ))
                        delete 1 of "Command_running"
                broadcast "calculator (Thanks Paddle2See!)"
        else
            set "Var" to ""
            repeat until ((length of "Command_running" ) = "0")  
                if (not ((length of "Command_running" ) = "0")) 
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
            broadcast "calculator (Thanks Paddle2See!)"
        set "done calculating" to "0"
        wait until ((done calculating) = "1")
        broadcast "set_end"
    end

    when I receive "set2"
        add (Var2) to "Variables"
        add (Var) to "VarValues"
        set "Go?" to "1"
    end

    when I receive "input2"
        add (Var) to "Variables"
        add (answer) to "VarValues"
        set "Go?" to "1"
    end

    when I receive "set1"
        replace item (var4) of "VarValues" with (Var)
        set "Go?" to "1"
    end

    when I receive "input1"
        replace item (Var2) of "VarValues" with (answer)
        set "Go?" to "1"
    end

    when I receive "Run"
        set "if error?" to "0"
        set "joined" to "0"
        set "Line" to "0"
        forever  
            change "Line" by 1
            if ((Line) > (length of "Run_commands" )) 
                broadcast "end error"
                stop script
            delete "all" of "Command_running"
            set "Var" to "0"
            repeat (length of (item (Line) of "Run_commands" ))  
                change "Var" by 1
                add (letter (Var) of (item (Line) of "Run_commands" )) to "Command_running"
            delete 1 of "Command_running"
            if ((item "last" of "Command_running" ) = ";") 
                delete "last" of "Command_running"
            if ((letter (length of (item ((Line) - 1) of "Run_commands" )) of (item ((Line) - 1) of "Run_commands" )) = ";") 
                set "joined" to "1"
            set "Command" to ""
            if ( "Command_running" contains " ") else 
                repeat until ((item 1 of "Command_running" ) = " ")  
                    set "Command" to (join (Command) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                delete 1 of "Command_running"
            else
                repeat until ((length of "Command_running" ) = "0")  
                    set "Command" to (join (Command) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
            if ( "Valid_commands" contains (Command)) else 
                broadcast (Command)
                set "Go?" to "0"
                wait until ((Go?) = "1")
            else
                broadcast "error"
                stop script
            if ((stop program?) = "1") 
                broadcast "break"
                stop script
            if ((if error?) = "1") 
                broadcast "if error"
                stop script
            if ((Running) = "0") 
                stop script
    end

    when green flag clicked
        delete "all" of "Console"
        add "ScratchText 2.1.1" to "Console"
        add "Release Date of August 27,2009" to "Console"
        add "By The-Whiz" to "Console"
        ask "Press enter to continue..." and wait
        delete 1 of "Console"
        delete 1 of "Console"
        delete 1 of "Console"
        forever  
            ask "Input command" and wait
            add (answer) to "Console"
            if ((answer) = "run") 
                delete "all" of "real_program"
                delete "last" of "Console"
                repeat (length of "Console" )  
                    add (item 1 of "Console" ) to "real_program"
                    delete 1 of "Console"
                delete "all" of "Run_commands"
                set "Var" to "0"
                repeat (length of "real_program" )  
                    change "Var" by 1
                    if ((letter 1 of (item (Var) of "real_program" )) = ">") 
                        add (item (Var) of "real_program" ) to "Run_commands"
                set "stop program?" to "0"
                broadcast "Run"
                set "Running" to "1"
                wait until ((Running) = "0")
            set "Var" to "0"
            set "edit_funtion" to ""
            set "space?" to "0"
            repeat (length of (answer))  
                change "Var" by 1
                if (not ((letter (Var) of (answer)) = " ")) 
                    if ((space?) = "0") 
                        set "edit_funtion" to (join (edit_funtion) (letter (Var) of (answer)))
                if ((letter (Var) of (answer)) = " ") 
                    set "space?" to "1"
            if ( "Valid_commands" contains (edit_funtion)) 
                if (((length of (answer)) - (length of (edit_funtion))) > "0") 
                    delete "all" of "Command_running"
                    set "Var" to ((length of (edit_funtion)) + 1)
                    repeat (((length of (answer)) - (length of (edit_funtion))) - 1)  
                        change "Var" by 1
                        add (letter (Var) of (answer)) to "Command_running"
                    broadcast (edit_funtion)
                    set "Go?" to "0"
                    wait until ((Go?) = "1")
            if ((edit_funtion) = "new") 
                ask "Sure? (Y/N)" and wait
                if ((answer) = "Y") 
                    delete "all" of "Console"
            if ((edit_funtion) = "save") 
                set "Var" to "5"
                set "Var2" to ""
                repeat ((length of (answer)) - 5)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                delete "last" of "Console"
                if ( "Program" contains (Var2)) 
                    set "Var" to "0"
                    repeat until (not ( "Program" contains (Var2)))  
                        if ((item (Var) of "Program" ) = (Var2)) else 
                            delete (Var) of "Program"
                            delete (Var) of "ProgramCommand"
                        else
                            change "Var" by 1
                set "Var" to "0"
                repeat (length of "Console" )  
                    change "Var" by 1
                    add (Var2) to "Program"
                    add (item (Var) of "Console" ) to "ProgramCommand"
                add (join (join "saved as "" (Var2)) """) to "Console"
                ask "Press enter to continue" and wait
                delete "last" of "Console"
            if ((edit_funtion) = "load") 
                set "Var2" to ""
                set "Var" to "5"
                repeat ((length of (answer)) - 5)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                delete "all" of "Console"
                add "Loading" to "Console"
                if ( "Program" contains (Var2)) else 
                    set "Var" to "0"
                    repeat until ((item (Var) of "Program" ) = (Var2))  
                        change "Var" by 1
                        replace item 1 of "Console" with (join "Loading " (join ((round (((Var) / (length of "Program" )) * 10000)) / 100) "%"))
                    repeat until ((Var) = ((length of "Program" ) + 1))  
                        if ((item (Var) of "Program" ) = (Var2)) 
                            add (item (Var) of "ProgramCommand" ) to "Console"
                        change "Var" by 1
                        replace item 1 of "Console" with (join "Loading " (join ((round (((Var) / (length of "Program" )) * 10000)) / 100) "%"))
                    delete 1 of "Console"
                    add (join (join """ (Var2)) "" has been loaded.") to "Console"
                    ask "Press enter to continue" and wait
                    delete "last" of "Console"
                else
                    add "No such file." to "Console"
                    ask "Press enter to continue" and wait
                    delete "last" of "Console"
            if ((edit_funtion) = "delete") 
                set "Var2" to ""
                set "Var" to "7"
                repeat ((length of (answer)) - 7)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                delete (Var2) of "Console"
                delete "last" of "Console"
            if ((edit_funtion) = "edit") 
                set "Var2" to ""
                set "Var" to "5"
                repeat ((length of (answer)) - 5)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                ask (join (join "Editing " (Var2)) "; Input command. Enter "Undo" to null action.") and wait
                if (not ((answer) = "undo")) 
                    replace item (Var2) of "Console" with (answer)
                delete "last" of "Console"
            if ((edit_funtion) = "insert") 
                set "Var2" to ""
                set "Var" to "7"
                repeat ((length of (answer)) - 7)  
                    change "Var" by 1
                    set "Var2" to (join (Var2) (letter (Var) of (answer)))
                ask (join (join "Inserting at " (Var2)) "; Input command. Enter "Undo" to null action.") and wait
                if (not ((answer) = "undo")) 
                    insert (answer) at (Var2) of "Console"
                delete "last" of "Console"
    end

    when I receive "print"
        if ((item 1 of "Command_running" ) = """) else 
            if ((item "last" of "Command_running" ) = """) else 
                delete 1 of "Command_running"
                delete "last" of "Command_running"
                set "Var" to ""
                repeat (length of "Command_running" )  
                    set "Var" to (join (Var) (item 1 of "Command_running" ))
                    delete 1 of "Command_running"
                if ((joined) = "1") else 
                    replace item "last" of "Console" with (join (item "last" of "Console" ) (Var))
                else
                    add (Var) to "Console"
                set "joined" to "0"
                set "Go?" to "1"
            else
                broadcast "print2"
        else
            broadcast "print2"
    end

    when I receive "error"
        add (join (join "Error in line " (Line)) ": Unrecognized command") to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end

    when I receive "print2"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        set "done calculating" to "0"
        broadcast "calculator (Thanks Paddle2See!)"
        wait until ((done calculating) = "1")
        if ((joined) = "1") else 
            replace item "last" of "Console" with (join (item "last" of "Console" ) (Var))
        else
            add (Var) to "Console"
        set "joined" to "0"
        set "Go?" to "1"
    end

    when I receive "wait"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        wait (Var) secs
        set "Go?" to "1"
    end

    when I receive "set_end"
        set "var4" to "0"
        forever  
            if ((item (var4) of "Variables" ) = (Var2)) 
                broadcast "set1"
                stop script
            if ((var4) = (length of "Variables" )) 
                broadcast "set2"
                stop script
            change "var4" by 1
    end

    when I receive "input"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        if ((joined) = "1") else 
            replace item "last" of "Console" with (join (item "last" of "Console" ) "?")
        else
            add "?" to "Console"
        set "joined" to "0"
        ask "Enter input:" and wait
        set "Var2" to "0"
        forever  
            if ((item (Var2) of "Variables" ) = (Var)) 
                broadcast "input1"
                stop script
            if ((Var2) = (length of "Variables" )) 
                broadcast "input2"
                stop script
            change "Var2" by 1
    end

    when I receive "goto"
        set "Var" to ""
        repeat (length of "Command_running" )  
            set "Var" to (join (Var) (item 1 of "Command_running" ))
            delete 1 of "Command_running"
        set "done calculating" to "0"
        broadcast "calculator (Thanks Paddle2See!)"
        wait until ((done calculating) = "1")
        set "Line" to ((Var) - 1)
        set "Go?" to "1"
    end

    when green flag clicked
        forever  
            if ((key "q" pressed?) and ((key "u" pressed?) and ((key "i" pressed?) and (key "t" pressed?)))) 
                set "Go?" to "1"
                set "stop program?" to "1"
    end

    when I receive "break"
        add (join "Break in line " (Line)) to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end

    when I receive "clear"
        delete "all" of "Console"
        set "Go?" to "1"
    end

    when I receive "end"
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Running" to "0"
        set "Go?" to "1"
    end

    when I receive "if error"
        add "Uncomplete IF!" to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end

    when I receive "end error"
        add "Program end not specified!" to "Console"
        ask "Press enter to continue." and wait
        delete "all" of "Console"
        repeat (length of "real_program" )  
            add (item 1 of "real_program" ) to "Console"
            delete 1 of "real_program"
        set "Go?" to "1"
        set "Running" to "0"
    end
--------
Sprite: Calculator
  Costumes (1):
    costume1 (13x14)
  Sounds (0):
  Stacks (7):
    when I receive "calculator (Thanks Paddle2See!)"
        set "Input Line" to (Var)
        broadcast "Parse Line into Infix Fields" and wait
        broadcast "Substitute Constants" and wait
        broadcast "Translate Infix to Postfix" and wait
        broadcast "Evaluate Postfix Expression" and wait
    end

    when I receive "Evaluate Postfix Expression"
        repeat until ((length of "Postfix" ) < "2")  
            set "I1" to "2"
            set "Field" to (item (I1) of "Postfix" )
            repeat until ((( "Op High" contains (Field)) or ( "Op Medium" contains (Field))) or (( "Op Low" contains (Field)) or ( "Functions" contains (Field))))  
                change "I1" by 1
                set "Field" to (item (I1) of "Postfix" )
            if (not ( "Functions" contains (Field))) 
                set "A" to (item ((I1) - 2) of "Postfix" )
            set "B" to (item ((I1) - 1) of "Postfix" )
            set "Op" to (item (I1) of "Postfix" )
            if ((Op) = "+") else 
                replace item ((I1) - 2) of "Postfix" with ((A) + (B))
            else
                if ((Op) = "-") else 
                    replace item ((I1) - 2) of "Postfix" with ((A) - (B))
                else
                    if ((Op) = "*") else 
                        replace item ((I1) - 2) of "Postfix" with ((A) * (B))
                    else
                        if ((Op) = "/") else 
                            replace item ((I1) - 2) of "Postfix" with ((A) / (B))
                        else
                            if ((Op) = "^") else 
                                replace item ((I1) - 2) of "Postfix" with ( "10 ^" of ((B) * ( "log" of (A))))
                            else
                                if ((Op) = "sin") else 
                                    replace item ((I1) - 1) of "Postfix" with ( "sin" of (B))
                                else
                                    if ((Op) = "cos") else 
                                        replace item ((I1) - 1) of "Postfix" with ( "cos" of (B))
                                    else
                                        if ((Op) = "tan") else 
                                            replace item ((I1) - 1) of "Postfix" with ( "tan" of (B))
                                        else
                                            if ((Op) = "asin") else 
                                                replace item ((I1) - 1) of "Postfix" with ( "asin" of (B))
                                            else
                                                if ((Op) = "acos") else 
                                                    replace item ((I1) - 1) of "Postfix" with ( "acos" of (B))
                                                else
                                                    if ((Op) = "atan") else 
                                                        replace item ((I1) - 1) of "Postfix" with ( "atan" of (B))
                                                    else
                                                        if ((Op) = "sqrt") else 
                                                            replace item ((I1) - 1) of "Postfix" with ( "sqrt" of (B))
                                                        else
                                                            if ((Op) = "%") else 
                                                                replace item ((I1) - 1) of "Postfix" with (0 - (B))
                                                            else
                                                                add (join (join "Unrecognized Operator '" (Op)) (join "' in line " (Line))) to "Console"
            if ( "Functions" contains (Field)) else 
                delete (I1) of "Postfix"
            else
                delete ((I1) - 1) of "Postfix"
                delete ((I1) - 1) of "Postfix"
        set "Var" to (item 1 of "Postfix" )
        set "done calculating" to "1"
    end

    when green flag clicked
        hide
    end

    when I receive "Parse Line into Infix Fields"
        delete "all" of "Infix"
        set "L1" to (length of (Input Line))
        set "Unary Operator" to "1"
        set "Field" to ""
        set "I1" to "1"
        repeat (L1)  
            set "Character" to (letter (I1) of (Input Line))
            if (((( "Op High" contains (Character)) or ( "Op Medium" contains (Character))) or (( "Op Low" contains (Character)) or ( "Paren" contains (Character)))) or ((Character) = " ")) else 
                if (((Unary Operator) = "1") and ((Character) = "-")) 
                    set "Character" to "%"
                if ((( "Op High" contains (Character)) or ( "Op Medium" contains (Character))) or (( "Op Low" contains (Character)) or ((Character) = "("))) else 
                    set "Unary Operator" to "1"
                else
                    set "Unary Operator" to "0"
                if ((length of (Field)) > "0") 
                    add (Field) to "Infix"
                    set "Field" to ""
                if (not ((Character) = " ")) 
                    add (Character) to "Infix"
            else
                if (not ((Character) = " ")) 
                    set "Unary Operator" to "0"
                    set "Field" to (join (Field) (Character))
            change "I1" by 1
        if ((length of (Field)) > "0") 
            add (Field) to "Infix"
    end

    when I receive "Translate Infix to Postfix"
        delete "all" of "Postfix"
        delete "all" of "Translation Stack"
        set "I1" to "1"
        repeat (length of "Infix" )  
            set "Field" to (item (I1) of "Infix" )
            if (((( "Op High" contains (Field)) or ( "Op Medium" contains (Field))) or (( "Op Low" contains (Field)) or ( "Paren" contains (Field)))) or ( "Functions" contains (Field))) else 
                broadcast "Process Operators and Functions" and wait
            else
                add (Field) to "Postfix"
            change "I1" by 1
        repeat (length of "Translation Stack" )  
            add (item (length of "Translation Stack" ) of "Translation Stack" ) to "Postfix"
            delete "last" of "Translation Stack"
    end

    when I receive "Process Operators and Functions"
        if ((Field) = "(") else 
            add (Field) to "Translation Stack"
        else
            if ((Field) = ")") else 
                repeat until ((item (length of "Translation Stack" ) of "Translation Stack" ) = "(")  
                    add (item (length of "Translation Stack" ) of "Translation Stack" ) to "Postfix"
                    delete "last" of "Translation Stack"
                delete "last" of "Translation Stack"
            else
                set "Move Required" to "1"
                repeat until ((Move Required) = "0")  
                    set "Top Op" to (item (length of "Translation Stack" ) of "Translation Stack" )
                    set "Move Required" to "0"
                    if (( "Op Low" contains (Field)) and (( "Op Low" contains (Top Op)) or (( "Op Medium" contains (Top Op)) or ( "Op High" contains (Top Op))))) 
                        set "Move Required" to "1"
                    if (( "Op Medium" contains (Field)) and (( "Op Medium" contains (Top Op)) or ( "Op High" contains (Top Op)))) 
                        set "Move Required" to "1"
                    if (( "Op High" contains (Field)) and ( "Op High" contains (Top Op))) 
                        set "Move Required" to "1"
                    if ((( "Op Low" contains (Field)) or (( "Op Medium" contains (Field)) or ( "Op High" contains (Field)))) and ( "Functions" contains (Top Op))) 
                        set "Move Required" to "1"
                    if ((Move Required) = "1") 
                        add (Top Op) to "Postfix"
                        delete "last" of "Translation Stack"
                        if ((length of "Translation Stack" ) < "1") 
                            set "Move Required" to "0"
                add (Field) to "Translation Stack"
    end

    when I receive "Substitute Constants"
        replace item 1 of "VarValues" with (pick random (item 2 of "VarValues" ) to (item 3 of "VarValues" ))
        set "I1" to "1"
        repeat (length of "Infix" )  
            if ( "Variables" contains (item (I1) of "Infix" )) 
                set "J1" to "1"
                repeat until ((item (I1) of "Infix" ) = (item (J1) of "Variables" ))  
                    change "J1" by 1
                replace item (I1) of "Infix" with (item (J1) of "VarValues" )
            change "I1" by 1
    end
--------
Sprite: Sprite1
  Costumes (1):
    costume3 (480x360)
  Sounds (1):
    meow (0:00:01)
  Stacks (1):
    when green flag clicked
        go back 1 layers
    end

--------

A bit easier than my code...


http://i.imgur.com/8LX1NrV.png

Offline

 

#4 2009-09-07 21:48:11

weswesrock
Scratcher
Registered: 2009-06-25
Posts: 500+

Re: Project Summaries

This is awesome (how do you do that "code" thing?)

weswesrock wrote:

Project: Find the Door!
Author: weswesrock
Scratch: 1.4 of 30-Jun-09
Notes:
    ~~~*STORY*~~~
   
    You are a robot, and you're trying to escape the factory you were built in so the company can't sell you.
     
   
    +++ INSTRUCTIONS +++
   
    Use the arrow keys to move in every direction (you'll scroll in every direction also) and find the door.
   
    On your way, you will reach fake doors, water (you're water proof, it just slows you down), and padlocks with keys (there are fake keys as well).
   
    There are ten levels and I used lists to save your progress so when you press the green flag (or have saved it on your computer), You will return to the level you were last in.
   
   
    I know it's laggy, but that's because all the actions are in one script (the second script is just the music, if you don't believe me download it).
   
    *LOVE IT IF YOU WANT MORE LEVELS!*
   
    I'd REALLY appreciate input for future levels because this is NOT the final version.
   
   
    ===REMIX NOTES===
   
    Ask in a comment if you want to remix.

History:
    2009-9-6 09:52:01    save    Find the Door!        weswesrock
    2009-9-6 13:08:46    save    Find the Door!       
    2009-9-6 13:14:50    save    Find the Door!       
    2009-9-6 13:59:04    save    Find the Door!       
    2009-9-6 13:59:10    save    Find the Door!       
    2009-9-6 16:32:30    save    Find the Door!       
    2009-9-6 16:32:34    save    Find the Door!       
    2009-9-6 19:51:57    save    Find the Door!       
    2009-9-6 20:27:33    save    Find the Door!       
    2009-9-6 20:27:44    save    Find the Door!       
    2009-9-7 09:42:09    save    Find the Door!       
    2009-9-7 09:59:44    save    Find the Door!       
    2009-9-7 10:08:37    save    Find the Door!       
    2009-9-7 10:08:52    save    Find the Door!       
    2009-9-7 11:11:24    save    Find the Door!       
    2009-9-7 11:21:54    save    Find the Door!       
    2009-9-7 11:35:35    save    Find the Door!       
    2009-9-7 11:42:18    save    Find the Door!       
    2009-9-7 11:44:57    save    Find the Door!       
    2009-9-7 11:46:28    save    Find the Door!       
    2009-9-7 11:46:45    save    Find the Door!       
    2009-9-7 11:47:02    save    Find the Door!       
    2009-9-7 13:00:37    save    Find the Door!       
    2009-9-7 13:09:59    save    Find the Door!       
    2009-9-7 13:10:11    save    Find the Door!       
    2009-9-7 16:25:54    share    Find the Door!    weswesrock   
    2009-9-7 16:26:41    save    Find the Door!    weswesrock   
    2009-9-7 18:43:47    save    Find the Door!       

Totals:
    Sprites: 1
    Stacks: 3
    Unique costumes: 18
    Unique sounds: 4
--------
Sprite: Stage
  Costumes (1):
    robot (480x360)
  Sounds (0):
  No stacks.
--------
Sprite: terrain
  Costumes (17):
    Title (480x360)
    terrain1 (480x360)
    terrain2 (480x360)
    terrain3 (480x360)
    terrain4 (480x360)
    terrain5 (480x360)
    terrain6 (480x360)
    terrain6unlocked (480x360)
    terrain7 (480x360)
    terrain7unlocked (480x360)
    terrain8 (480x360)
    terrain8unlocked (480x360)
    terrain9 (480x360)
    terrain10 (480x360)
    terrain10unlocked (480x360)
    WIN!!! (480x360)
    LOVE IT (496x374)
  Sounds (4):
    Techno1 (0:00:15)
    ComputerBeeps1 (0:00:01)
    Techno (0:00:08)
    Chord (0:00:02)
  Stacks (2):
    when green flag clicked
        hide variable "TIME:"
        switch to costume "Title"
        set size to 100%
        go to x: 0 y: 0
        play drum 37 for 0.2 beats
        wait 3 secs
        play sound "ComputerBeeps1"
        set "pixelate" effect to 100
        repeat 10 
            change "pixelate" effect by -10
        set size to 200%
        set "ghost" effect to 15
        if ((length of "savelevel" ) = "0") else
            switch to costume "terrain1"
        else
            switch to costume (savelevel)
        go to x: 15 y: 0
        show variable "TIME:"
        reset timer
        forever 
            set "TIME:" to (timer)
            if (key "up arrow" pressed?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change y by -7
                else
                    change y by -10
            set "TIME:" to (timer)
            if (color c[000008] is touching c[FF9400]?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change y by 7
                else
                    change y by 10
            set "TIME:" to (timer)
            if (key "down arrow" pressed?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change y by 15
                else
                    change y by 10
            set "TIME:" to (timer)
            if (color c[000008] is touching c[00FF52]?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change y by -15
                else
                    change y by -10
            set "TIME:" to (timer)
            if (key "right arrow" pressed?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change x by -7
                else
                    change x by -10
            set "TIME:" to (timer)
            if (color c[000008] is touching c[FFFF00]?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change x by 7
                else
                    change x by 10
            set "TIME:" to (timer)
            if (key "left arrow" pressed?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change x by 7
                else
                    change x by 10
            set "TIME:" to (timer)
            if (color c[000008] is touching c[FF0000]?)
                if (color c[00FFFF] is touching c[636363]?) else
                    change x by -7
                else
                    if (color c[000008] is touching c[FF0000]?)
                        change x by -10
            set "TIME:" to (timer)
            if (color c[FFFF9C] is touching c[636363]?)
                next costume
                play sound "Chord"
            set "TIME:" to (timer)
            if (color c[633900] is touching c[636363]?)
                if ((costume #) = "15") else
                    go to x: 0 y: 0
                    switch to costume "WIN!!!"
                    set size to 100%
                    wait 3 secs
                    switch to costume "LOVE IT"
                    stop all
                else
                    next costume
                    if ((length of "savelevel" ) = "0") else
                        insert (costume #) at "1" of "savelevel"
                    else
                        replace item 1 of "savelevel" with (costume #)
                    go to x: 15 y: 0
                    play sound "ComputerBeeps1"
                    set "pixelate" effect to 100
                    repeat 10 
                        change "pixelate" effect by -10
                        set "TIME:" to (timer)
    end

    when green flag clicked
        forever 
            repeat 3 
                play sound "Techno1" until done
                set instrument to 120
                play note 64 for 0.5 beats
            repeat 2 
                play sound "Techno" until done
    end

--------

Last edited by weswesrock (2009-09-07 21:49:57)

Offline

 

#5 2009-09-08 00:32:30

Larry828
Scratcher
Registered: 2007-05-30
Posts: 100+

Re: Project Summaries

What incredibly useful information to have!  This is the first I've heard of it.  Up to this point I've had to make screen captures of crucial scripts and print them out.  Not very efficient.  And now we have the creation dates, name changes for the projects, all sorts of things that are valuable.  ---- Thanks for telling us how to find this information!!   smile

Offline

 

#6 2009-09-08 01:59:24

Chrischb
Scratcher
Registered: 2008-07-24
Posts: 1000+

Re: Project Summaries

Wow! This is really neat!


I fall: It's a tragedy. You fall: It's comedy.
Hmph enjoy your fall - I get a lovely spring... without pans of new leaves.

Offline

 

#7 2009-09-08 03:22:51

Jonathanpb
Scratcher
Registered: 2008-07-25
Posts: 1000+

Re: Project Summaries

Thank you for your awesome topic big-bang! This is really cool!


"Human beings... must have action; and they will make it if they cannot find it.
-Charlotte Brontë

Offline

 

#8 2009-09-08 11:57:30

jacool
Scratcher
Registered: 2008-01-25
Posts: 1000+

Re: Project Summaries

Text-based scratch is like pseudocode  smile


http://i571.photobucket.com/albums/ss159/JacobKar/svensktiger-1.png

Offline

 

#9 2009-09-08 12:00:08

jacool
Scratcher
Registered: 2008-01-25
Posts: 1000+

Re: Project Summaries

Here's the summary for my newest project  smile  In swedish Scratch

Code:

Project: Simple 3D extruder V2
Author: jacool
Scratch: 1.4 of 30-Jun-09
Notes:
    Instructions:
    1 First place out the first vertex.
    2 Then click to place out more.
    3 Press space to extrude
    NOTE: You don't have to make the last line to the first vertex, it will be done automaticly.
    When it's extruded you can make another one, go to step 1.
    Toggle between draw mode and single vertex mode by pressing the D button.
    Change the length of the current mesh with the up/down arrows.
    Change the color with right/left arrows.
    
    Hope you enjoy :)

History:
    2009-9-4 15:05:04    save    3dextruder        
    2009-9-4 15:07:58    share    Simple 3D extruder    jacool    
    2009-9-4 15:53:25    save    Simple 3D extruder    jacool    jacool
    2009-9-7 15:51:09    save    Simple 3D extruder2        
    2009-9-7 15:51:18    save    Simple 3D extruder2        
    2009-9-7 15:57:40    share    Simple 3D extruder V2    jacool    
    2009-9-7 16:00:08    save    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:00:33    share    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:10:11    share    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:17:14    save    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:18:14    share    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:27:47    save    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:28:11    save    Simple 3D extruder V2    jacool    jacool
    2009-9-7 16:28:19    share    Simple 3D extruder V2    jacool    jacool
    2009-9-7 17:00:21    save    Simple 3D extruder V2    jacool    jacool
    2009-9-7 17:00:26    save    Simple 3D extruder V2    jacool    jacool

Totals: 
    Sprites: 4
    Stacks: 16
    Unique costumes: 4
    Unique sounds: 1
--------
Sprite: Scen
  Costumes (1):
    bakgrund1 (480x360)
  Sounds (1):
    pop (0:00:00)
  Stacks (4):
    when down arrow key pressed
        ändra "Length" med -1
    end

    when up arrow key pressed
        ändra "Length" med 1
    end

    when d key pressed
        om ((Draw) = "1") annars 
            sätt "Draw" till "0"
        else
            sätt "Draw" till "1"
    end

    when green flag clicked
        för alltid  
            om ( "pil höger" nedtryckt?) 
                ändra "Color value" med 1
            om ( "pil vänster" nedtryckt?) 
                ändra "Color value" med -1
    end
--------
Sprite: Sprite2
  Costumes (1):
    klädsel1 (1x1)
  Sounds (0):
  Stacks (4):
    when I receive "end"
        göm
        sätt "Color value" till "0"
        sätt "Vertex" till "1"
        penna upp
        vänta tills (musknappen?)
        vänta 0.1 sekunder
        gå till x: ("1" i "X" ) y: ("1" i "Y" )
        penna ned
        för alltid  
            gå till x: ("last" i "X" ) y: ("last" i "Y" )
    end

    when space key pressed
        penna ned
        gå till x: (1 i "X" ) y: (1 i "Y" )
        lägg till (x-läge) till "X"
        lägg till (y-läge) till "Y"
    end

    when green flag clicked
        radera
        för alltid  
            sätt pennans färg till (Color value)
    end

    when green flag clicked
        sända "end"
    end
--------
Sprite: Sprite4
  Costumes (1):
    klädsel1 (39x36)
  Sounds (0):
  Stacks (1):
    when green flag clicked
        för alltid  
            sätt "färg" effekten till (Color value)
    end
--------
Sprite: Sprite1
  Costumes (1):
    klädsel1 (5x5)
  Sounds (0):
  Stacks (4):
    when I receive "end"
        sätt "Draw" till "0"
        sätt "Length" till "50"
        ta bort "all" i "X"
        ta bort "all" i "Y"
        för alltid  
            gå till s[musmarkör]
    end

    when green flag clicked
        sända "end"
    end

    when I receive "end"
        vänta 0.1 sekunder
        för alltid om (musknappen?)  
            stämpla
            lägg till (x-läge) till "X"
            lägg till (y-läge) till "Y"
            om ((Draw) = "0") 
                vänta tills (inte (musknappen?))
            vänta 0.1 sekunder
    end

    when green flag clicked
    end
--------
Sprite: Sprite3
  Costumes (1):
    klädsel1 (1x1)
  Sounds (0):
  Stacks (3):
    when green flag clicked
        göm
        för alltid  
            sätt pennans färg till (Color value)
    end

    when space key pressed
        repetera (längd på "X" )  
            penna upp
            gå till x: ((Vertex) i "X" ) y: ((Vertex) i "Y" )
            penna ned
            gå till x: (((Vertex) i "X" ) + (Length)) y: (((Vertex) i "Y" ) + (Length))
            lägg till (x-läge) till "X"
            lägg till (y-läge) till "Y"
            penna upp
            ändra "Vertex" med 1
        sända "end"
    end

    when green flag clicked
        sända "end"
    end

--------

Last edited by jacool (2009-09-08 12:01:30)


http://i571.photobucket.com/albums/ss159/JacobKar/svensktiger-1.png

Offline

 

#10 2009-09-08 18:55:05

big-bang
Scratcher
Registered: 2008-02-21
Posts: 1000+

Re: Project Summaries

Jonathanpb wrote:

Thank you for your awesome topic big-bang! This is really cool!

Thank you!


http://i47.tinypic.com/6edrbm.jpghttp://i45.tinypic.com/dw9hmw.jpghttp://i50.tinypic.com/f28tvn.jpghttp://i45.tinypic.com/ruwaop.jpg

Offline

 

Board footer