DocumentInQuestion.png This page's contents needs to be merged into List of Scratch Modifications, as per the discussion here. (June 2024)
SandCastleIcon.png This article has links to websites or programs outside of Scratch and Wikipedia. Remember to stay safe while using the internet, as we cannot guarantee the safety of other websites.
Explore
Explore Logo.gif
Current Version 3.4.1
Operating Systems Windows, Mac OS X, and Linux (the latter two are image-only)
Developer(s) powerpoint56, jueschnei (Windows installed version)
Open source? Yes
Programming language Squeak
Released? Yes
Compatible with Scratch 1.4
Official Website http://explore-programming.weebly.com and https://explore4.weebly.com
Forum Topic topic:8314
Active Yes

Explore[1] is a Scratch Modification created by powerpoint56 based on Scratch 1.4. Its main purpose is to improve Scratch by allowing the user to "explore" in such ways as using the Internet, file manipulation, etc.

New Blocks

Explore has 210+ new blocks as well as 6 new categories: Connect, Objects, Program, More, Strings and Files.

These blocks are as of version 3.4.

Motion

point to x:(0) y:(0):: motion // points towards the given coordinates

if touching [mouse-pointer v] bounce::motion // makes the sprite bounce when touching a specific sprite

set rotation style to [normal v]:: motion // sets the rotation style for the sprite

set rotation center to x:(10) y:(10):: motion // sets the rotation center of the sprite to a specific coordinate

toggle draggable:: motion //  toggles whether a sprite can be dragged in the player

snap to grid x:(10) y:(10):: motion // snaps the sprite to a specific coordinate

<draggable:: motion> // reports true if sprite is draggable in player

(rotation style:: motion) // reports the rotation style for the sprite

Control

while <>{
}:: control c block // c-block that acts as the opposite of 'repeat until <>'

launch{
}:: control c block // c block that starts a script but continues right on to the next with no delay

stop all and press green flag:: control cap // cap block which stop all scripts and restarts the project

stop scripts of [ v]:: control // stops a specific sprite's scripts

stop broadcast [ v]:: control // stops a specific broadcast

Looks

(number of costumes:: looks) // reports the amount of costumes

(name of costume (1):: looks) // reports the name of a costume

delete costume (10):: looks // deletes specified costume

add costume from [paint new v]:: looks // adds a new costume from specified location

<camera open?:: looks> // reports if the computer's camera (webcam) is available

close camera:: looks // closes the user's computer's camera

add costume from [url v] []:: looks // adds a new costume from specified location

(last said/thought:: looks) // reports what the sprite last said or thought

(graphic effect [color v]:: looks) // reports the specified graphic effect amount

apply graphic effects to costume:: looks

change [size v] by ():: looks // changes the size, stretch, or vertical stretch of a sprite by a certain amount

set [size v] to ():: looks // sets the size, stretch or vertical stretch of a sprite

([size v]:: looks) // reports the size, stretch, or vertical stretch of a sprite

<showing?:: looks> // reports if a sprite is showing

go to layer (1):: looks // sends the sprite to the specified layer

(height:: looks) // reports the height of the sprite

(width:: looks) // reports the width of the sprite

flip horizontal:: looks // flips the sprite horizontally

flip vertical:: looks // flips the sprite vertically

Sensing

(sprites I'm touching:: sensing) // reports a list of sprites the sprite is touching

(current [time v]:: sensing) // reports the specified item involving time

<[left v] mouse down?:: sensing> // reports if the specified part of the mouse is being pressed

(all keys pressed \(max. 4\):: sensing) // reports up to 4 keys that are being pressed

(key pressed:: sensing) // reports the last key pressed

(distance to x:(10) y:(10):: sensing) // reports the distance to the specified location

(pitch:: sensing) // reports the pitch of the sound from the microphone

Sound

play sec () to () of [ v]:: sound // plays a specified portion of a sound

stop sound [ v]:: sound // stops a specific sound

import sound from []::sound // imports a sound from a user's local files

record sound::sound // record a sound

(length of sound [pop v]:: sound) // reports the length of a sound

(my sounds:: sound) // reports a list of sounds

error beep:: sound // play's the user's computer's error sound

Operators

(() [ v] ():: operators) // performs an operation on two numbers

<true:: operators> // constant; reports true

<false ::operators> // constant; reports false

(if <> then [] else []:: operators) // if the boolean is true it reports the first item, otherwise it reports the second item

(round () to () places:: operators) // rounds a number to a specific decimal place

(constant [pi v]:: operators) // reports the selected constant

(ascii for [A]:: operators) // reports the ascii code of a letter

(ascii [65] as letter:: operators) // reports the letter for the ascii code specified

Pen

<pen down?:: pen> // reports true if the pen is down

(pen color:: pen) // reports the pen color

(pen color as rgb:: pen) // reports the RGB version of a color

(pen shade:: pen) // reports the pen shade

(pen size:: pen) // reports the pen size

stamp text [hi] at x: (0) y: (0) font: [Arial v] size: (10) color: [#FF0000]:: pen // stamps text at the given location and using the specified information

oval radius (80) by (50):: pen // creates an oval with a specified horizontal and vertical radius

rectangle radius (50) by (50):: pen // creates a rectangle with specificed side lengths

Variables

move [ v] to x (10) y (10):: variables // moves the variable monitor to a certain location

set [ v] color to [#FF0000]:: variables // changes a variable's monitor color

set [ v] style to [small v]:: variables // sets the type of monitor

(variable []:: variables) // reports the inputted variable's value

Lists

add list [] type [private v]:: list // creates a local or global list

delete private list [list v]:: list // deletes a specific list

(items (1) to (3) of [list v]:: list) // reports a specific range of items in a list

show list [list v] // shows a specific list monitor

hide list [list v] // hides a specific list monitor

set list blocks color to [#FF0000]:: list // sets the color of every list and list block to the given color

send collection [] to [list v]:: list // sets a list to a collection

(split [1,2,3] at [,]:: list) // splits the string at each specified spot and reports it

(join [list v] with [,]:: list) // joins the items in the list together using the specified character

(sort [collection] alphabetically/numerically:: list) // sorts a collection numerically/alphabetically

([mean v] of [list v]:: list) // reports the data specified about a list

([list v] replace all [this] with [this]:: list) // reports a collection with another list's item being replaced with a specific string

(place (1) that [this] is in [list v]:: list)

(times [this] is in [list v]:: list) // reports the amount of times a string is in a list

Strings (New Category)

(letters (1) to (5) of [hello world]:: #949400) // reports a specific part of the specified string

<[raincoat] [contains v] [coat]:: #949400> // compares two strings based on a specific criteria

([reverse v] [hello]:: #949400) // performs a change on a string

(newline:: #949400) // constant; reports a newline character

(line (1) of [multiline]:: #949400) // reports a specific line of a multiline string

(lines in [multiline]:: #949400) // reports the amount of lines in a multiline string

([multiline]:: #949400) // reports a multiline string as a single-line string

(replace letters (2) to (2) of [cut] with [a]:: #949400) // replaces a specific portion of a string with anotehr string

(replace every [u] with [a] in [cut]:: #949400) // replaces every instance of a string with another string in a string

(place (1) that [a] is in [apple]:: #949400)

(times [a] is in [raincoat]:: #949400) // reports the amount of times a specific string is in a string

(repeat [do] (2) times:: #949400) // joins a string with itself a specific amount of times

(word (2) of [hello world]:: #949400) // reports the nth word in a string

(words in [hello world]:: #949400) // reports the amount of words in a string

(censor string [bad word]:: #949400) // replaces any bad words with asterisks

Objects (New Category)

(clone me:: #ff8c00) // clones the sprite and reports its name

clone me and do {
}:: #ff8c00 // clones the sprite and has clone perform the task inside loop

<[ v] is a clone?:: #ff8c00> // reports if a specific sprite is a clone

(my parent:: #ff8c00) // reports the sprite's parent

(my clones:: #ff8c00) // reports the sprite's clones

delete sprite [ v]:: #ff8c00 // deletes a speicific sprite

set my name of [ v] to []:: #ff8c00 // renames a specific sprite

(name of [ v]:: #ff8c00) // reports the name of a specific sprite

make [ v] do {
}:: #ff8c00 // makes a specific sprite perform the task inside of the c block

(self:: #ff8c00)

(object [ v]:: #ff8c00)

(all sprites:: #ff8c00)

(stage:: #ff8c00)

export self to file []:: #ff8c00

Files (New Category)

(read file []:: #643f23) // reads a file from a specific path

<file [] exists?:: #643f23> // checks if a file exists in a specific path

(size of file [] \(KB\):: #643f23) // reports the size of a file in KBs from a specific path

(extension of file []:: #643f23) // reports the extension of a file in from a specific path

(directory for []:: #643f23)

(local name for []:: #643f23)

([files v] in folder []:: #643f23)

write [] to file []:: #643f23

export [costume1 v] to file []:: #643f23

make file/folder at []:: #643f23

delete file []:: #643f23

(dialog ask for file, title [] extention\(s\) [txt docx]:: #643f23)

(pick file path, title [], initial directory []:: #643f23)

(pick folder path, title [], initial directory []:: #643f23)

(file path [user v]:: #643f23)

Connect (New Category)

(read url []:: #39bf93) // reports the contents of the url

<internet connection:: #39bf93> // reports true if the user has internet connection

(http post to document [www.domain.com/]:: #39bf93)

open URL or file [http://google.com]:: #39bf93

(search [Google v] for []:: #39bf93)

(info for zipcode [02139]:: #39bf93)

(weather in days [1] in zipcode [02139]:: #39bf93)

add costume from Google map location: [Cambridge, Massachusetts] zoom: (18) width: (640) height: (640) type: [roadmap v]:: #39bf93

add costume from street-view map location: [Cambridge, Massachusetts] width: (640) height: (640) compass dir: (360) zoom: (90) vertical angle: (0):: #39bf93

set cloud var [] to []:: #39bf93

(get cloud var []:: #39bf93)

make cloud list []:: #39bf93

(cloud list []:: #39bf93)

add [thing] to c-list []:: #39bf93

delete (1) of c-list []:: #39bf93

delete all of c-list []:: #39bf93

insert [thing] at (1) of c-list []:: #39bf93

replace (1) of c-list [] with [thing]:: #39bf93

(item (1) of c-list []:: #39bf93)

(items (1) to (3) of c-list []:: #39bf93)

(length of c-list []:: #39bf93)

transfer c-list [] to list [list v]:: #39bf93

transfer list [list v] to c-list []:: #39bf93

Program (New Category)

[enter v] presentation mode:: #003ae6

<presentation mode?:: #003ae6>

<using Explore?:: #003ae6>

set stepping speed to (0):: #003ae6

save project:: #003ae6

save project to []:: #003ae6

import sprite or project from []:: #003ae6

open project at []:: #003ae6

(system [project directory v]:: #003ae6)

(remaining memory:: #003ae6)

quit Explore:: #003ae6 cap

set cursor to [normal v]:: #003ae6

copy [] to clipboard:: #003ae6

(clipboard:: #003ae6)

run code [] in [Squeak v]:: #003ae6

(Squeak code []:: #003ae6)

host mesh:: #003ae6

join mesh []:: #003ae6

leave mesh:: #003ae6

(IP address:: #003ae6)

More (New Category)

(last dialog entry:: #000001)

dialog [Info] title [This is info]:: #000001

dialog of current costume title []:: #000001

<confirm [Are you sure?] with title [Question]:: #000001>

(ask [Do you agree?] with buttons [Yes, I agree] [No, I do not.] []:: #000001)

(ask [What's your name?] initial answer [John Doe]:: #000001)

(scrolling dialog text [] title [] editable <>:: #000001)

close dialogs:: #000001

<confirm []:: #000001>

inform []:: #000001

(fonts:: #000001)

(color at pixel x:(0) y:(0):: #000001)

(color r:(10) g:(10) b:(10):: #000001)

(color h:(10) s:(10) v:(10):: #000001)

([#FF0000] [hue v]:: #000001)

(color [#FF0000] lighter by:(10):: #000001)

(mix [#FF0000] and [#FF0000] with ratio (10):(10):: #000001)

<[#FF0000]=[#FF0000]:: #000001>

([#FF0000] negated:: #000001)

([#FF0000] as hex:: #000001)

(hex [] as color:: #000001)

Other Features

Explore has various new features, the most important being a new menu called "Explore". Other non-block improvements have been made in more recent versions.[2]

Explore menu

The Explore menu has the following options. Most of the options are updated using info from the cloud.

  • Check for updates: Checks for new versions of Explore.
  • Current Development: Discusses current development of Explore.
  • Explore community: Lists members who have signed up for the community (see Join community).
  • Find member: Finds a member in the community.
  • Join community: The Explore community is simply a group of people who use Explore. By clicking this button a user adds their username to the list.


The rest of the options open certain URLs.

New Plugins Feature

Explore 3.4 and later has a new feature called plugins. Plugins are change sets that developers can make to be added to Explore. People who use Explore can use the new Plugins menu to find plugins and install them to get special blocks/features.

Malware Protection

Explore, like most programming languages, has many useful features that can also be used to create viruses. There will be a malware protection feature in Explore 4.

Windows Installer

During development of Explore 3.3, jueschnei began working with powerpoint56, and created a new Windows Installer that is still in active development.

The installed version of Explore by jueschnei comes with many helpful new features. It automatically keeps Explore up to date, and has its own Explore2EXE converter. Recent development has been focused on the Explore Store, which will let users share and browse projects, plugins and more.

Future Development

There were plans for a version 4 of Explore. However, no update on this has been given since its announcement.

Images from Explore

See Also

References

  1. powerpoint56. (22/7/2013). "Explore, Scratch mod[title]" projects:11544873
  2. explore-programming.weebly.com/features.html
Cookies help us deliver our services. By using our services, you agree to our use of cookies.