<commit_before># Guide to _Unblocker_

## Contents

Note: These links do not work in the mobile version of the GitHub site.

[Installing the app](#installing-the-app)

[The _Unblock Me_ game](#the-unblock-me-game)

[Using the app](#using-the-app)

[How the program works](#how-the-program-works)

* [Domain & UI models](#domain--ui-models)

* [Scanning the image](#scanning-the-image)

* [Solving the puzzle](#solving-the-puzzle)

* [User interface](#user-interface)

[Observations](#observations)

[Future additions](#future-additions)

## Installing the app 

I wrote _Unblocker_ in order to get some experience in Swift programmming, and also to discover what resources in time and memory are required to solve the _Unblock Me_ puzzle.  I have posted the code on GitHub because I thought other programmers might find it interesting. I have not submitted the app to the App Store.

In order to install the app:

*  On the [Unblocker home page](https://github.com/cameronpit/Unblocker) click _Clone or download_, then _Download ZIP_.
*  Download the file to an empty folder on your Mac and unZIP it.
*  Open the resulting project in Xcode (version 8 or later).
*  Build and run.

[Contents](#contents)

## The _Unblock Me_ game

<img align="right" alt="Puzzle B-7764" src="images/Puzzle-B-7764.png">

[_Unblock Me_](http://itunes.apple.com/us/app/unblock-me/id315021242?mt=8) is a puzzle app by [Kiragames](http://www.kiragames.com/). 
The puzzle consists of a “board” whose size is 6 units by 6 units.  The board can be thought of as being divided into 36 squares or “tiles,” where each tile is 1 unit by 1 unit. On the board are some blocks.  The size of each block, expressed as "width x height",  is either 2x1 or 3x1 or 1x2 or 1x3.  “Horizontal” blocks (2x1 or 3x1) can only move left or right, and “vertical” blocks (1x2 or 1x3) can only move up or down.  A block can never overlap or pass through another block, and must stay completely on the board.

There is one special 2x1 block in the third\* row called the “prisoner” which is colored differently from the other blocks. The object of the puzzle is to move the prisoner to the right end of its row so that it can escape through the “escape chute,” which is an opening in the board adjacent to the right end of the prisoner’s row. <commit_msg>Fix typo<commit_after># Guide to _Unblocker_

## Contents

Note: These links do not work in the mobile version of the GitHub site.

[Installing the app](#installing-the-app)

[The _Unblock Me_ game](#the-unblock-me-game)

[Using the app](#using-the-app)

[How the program works](#how-the-program-works)

* [Domain & UI models](#domain--ui-models)

* [Scanning the image](#scanning-the-image)

* [Solving the puzzle](#solving-the-puzzle)

* [User interface](#user-interface)

[Observations](#observations)

[Future additions](#future-additions)

## Installing the app 

I wrote _Unblocker_ in order to get some experience in Swift programming, and also to discover what resources in time and memory are required to solve the _Unblock Me_ puzzle.  I have posted the code on GitHub because I thought other programmers might find it interesting. I have not submitted the app to the App Store.

In order to install the app:

*  On the [Unblocker home page](https://github.com/cameronpit/Unblocker) click _Clone or download_, then _Download ZIP_.
*  Download the file to an empty folder on your Mac and unZIP it.
*  Open the resulting project in Xcode (version 8 or later).
*  Build and run.

[Contents](#contents)

## The _Unblock Me_ game

<img align="right" alt="Puzzle B-7764" src="images/Puzzle-B-7764.png">

[_Unblock Me_](http://itunes.apple.com/us/app/unblock-me/id315021242?mt=8) is a puzzle app by [Kiragames](http://www.kiragames.com/). 
The puzzle consists of a “board” whose size is 6 units by 6 units.  The board can be thought of as being divided into 36 squares or “tiles,” where each tile is 1 unit by 1 unit. On the board are some blocks.  The size of each block, expressed as "width x height",  is either 2x1 or 3x1 or 1x2 or 1x3.  “Horizontal” blocks (2x1 or 3x1) can only move left or right, and “vertical” blocks (1x2 or 1x3) can only move up or down.  A block can never overlap or pass through another block, and must stay completely on the board.

There is one special 2x1 block in the third\* row called the “prisoner” which is colored differently from the other blocks. The object of the puzzle is to move the prisoner to the right end of its row so that it can escape through the “escape chute,” which is an opening in the board adjacent to the right end of the prisoner’s row. 
{'fraction_non_alphanumeric': 0.08470894874022589, 'fraction_numerical': 0.018679409209383144, 'mean_word_length': 4.232954545454546, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6022431', 'n_tokens_mistral': 1462, 'n_tokens_neox': 1371, 'n_words': 667}