# Hopscotch (programming language)

Hopscotch is a visual programming language developed by Hopscotch Technologies, designed to allow young or beginner programmers to develop simple projects. Its simple UI allows its users to drag and drop blocks to create scripts that can be played when activated. The use of the language is through an iPad or iPhone supporting Hopscotch.

## Software development

The idea sprang from an existing programming tool, Scratch, where the user drags blocks to create a script. The developers of Hopscotch wanted to take a step back from Scratch, making it slightly easier to grasp and use the concepts. Hopscotch's notion of events, and rules combining conditions with actions, is similar to AgentSheets.
Hopscotch includes basic programming blocks and functionalities such as variables, sprites (called objects) and text objects, as well as features considered more advanced such as self-variables, maths functions and more.

## Editor

The Hopscotch app uses a block-based programming UI. Most code blocks can have numeric, text, or math inputs, allowing for both static and dynamic outputs. The editor work area is based on a grid divided into X and Y coordinates.

### Editor history

The Hopscotch Editor is available on iPhone and iPad. The iPhone version only supported viewing projects until early 2016, when an update supporting editing and account functionality was released. The Hopscotch iPhone projects play in an iPhone format even on the iPad and web player. A version for Android is not planned for release (as of 2021).

### Event blocks

Event blocks are conditional triggers that activate when a specific set of parameters is reached, triggering any associated Code blocks within the activated Event block. As of September 26, 2023, Hopscotch contains 40 Event blocks, including interactions, comparisons, and collision detection.

### Code blocks

Code blocks are individual actions triggered upon the activation of Event blocks, activated in descending order. Code blocks fall into six categories: Abilities, Movement, Looks & Sounds, Drawing, Variables, and Controls. Abilities are containers for Code blocks, creating a function which can be duplicated and reused within a project. Movement blocks control the positioning and rotation of objects. Looks & Sounds blocks control the scale and appearance of objects, text manipulation, sound playback, and transparency of objects. Drawing blocks paint preset colors to the background layer of a project, with additional options for stroke width and RGB/HSB support for custom colors. Variable blocks handle data storage and modification, with support for strings and numerical inputs. Control blocks provide miscellaneous functionality, such as if/else conditionals, message passing, and waiting a set amount of time.

## Player
### In-app player

The Hopscotch player activates the blocks in the scripts upon activation of their individual triggers.

### Webplayer

The player is also available on the web (known as the "Webplayer"). The web player brings Hopscotch projects to almost any browser. It is designed to work the same as the in-app player, though it has a different coding layout than the app. The web version of a project is only accessible via its unique link that is formatted like this: https://c.gethopscotch.com/p/project ID
Both the in-app and the web player are written in JavaScript.
There is also currently a version being developed as of 2024 for easier access to Hopscotch through a computer.

## Subscription

Currently, there is a Hopscotch subscription. It costs $79.99 a year or $9.99 a month. The subscription allows access to adding photos or drawings, 30 “seeds” (the form of Hopscotch currency) a month, custom avatars, user variables, and more. In order to make an account, you must purchase the subscription to post or create a draft. Teacher accounts do not need the subscription, nor does signing up through the Webplayer.

## Hopscotch Forum

The Hopscotch Forum is the official online forum for Hopscotch, for users to discuss Hopscotch projects, programming, and view update information for changes made to the Hopscotch app. Users may also host or participate in Competitions or Events, and collaborate on projects.

## Languages

Supported languages: English, Simplified Chinese, Spanish.