# Sokoban Level 3k

Sokoban Level 3k is one of the new possible maps for Sokoban in variants of NetHack. It may appear as a second level map for Sokoban in UnNetHack and GruntHack. It has 11 boulders and 10 holes, leaving 1 spare boulder.

Like all Sokoban levels in UnNetHack and GruntHack, this level may be flipped horizontally or vertically.

``` ----            0 boulder
|..|  --------- ^ hole
|..---->|.....| > starting position/downstairs
|.0..0..|.....| < upstairs
|0.-0.0.|.....| + door
|.....-.|..<..|
|.00000.|.....|
|0..|...|.....|
--.------|.....|
|..----------+--
|..^^^^^^^^^^.|
---------------
```

## Strategy

The following solution may not be very fast or organized. Improvements welcome. Like all Sokoban levels it can be solved without making any boulders 'stick'.

All boulders are replaced by letters so they can be referred to. Moving the boulders is shortened to r for right, l for left, u for up, d for down. An asterisk is used to denote the last move filled a hole (and thus removed the boulder from the game). So "N ddrr*" means move boulder N two times down and two times to the right into a hole.

First, make your way into the middle and push the first boulder into a hole:

``` ----            B l
|..|  --------- K dddr*
|..----@|.....|
|.A..B..|.....|
|C.-D.E.|.....|
|.....-.|..<..|
|.FGHIJ.|.....|
|K..|...|.....|
--.------|.....|
|..----------+--
|..^^^^^^^^^^.|
---------------
```

Break into the top-left chamber to deal with the next boulder:

``` ----            A u
|..|  --------- C dddd ddrr*
|..---->|.....|
|.A.B...|.....|
|C.-D.E.|.....|
|.....-.|..<..|
|.FGHIJ.|.....|
|...|...|.....|
--.------|.....|
|..----------+--
|.@.^^^^^^^^^.|
---------------
```

Dealing with boulder B requires pushing boulder A back the other way:

``` ----            A dd
|..|  --------- B llld dddd ddrr r*
|.A---->|.....|
|...B...|.....|
|..-D.E.|.....|
|.....-.|..<..|
|.FGHIJ.|.....|
|...|...|.....|
--.------|.....|
|..----------+--
|..@.^^^^^^^^.|
---------------
```

The next few boulders can now be dealt with:

``` ----            A dl__ ___ dddd drrr r*
|..|  --------- D dlll ___ dddd drrr rr*
|..---->|.....| E lldl ll_ dddd drrr rrr*
|.......|.....|
|.A-D.E.|.....|
|.....-.|..<..|
|.FGHIJ.|.....|
|...|...|.....|
--.------|.....|
|..----------+--
|...@.^^^^^^^.|
---------------
```

The row formation of boulders can now be broken:

``` ----            G u
|..|  --------- F lddd drrr rrrr*
|..---->|.....| G lldd dddr rrrr rrr*
|.......|.....| I u
|..-....|.....| H llld dddr rrrr rrrr*
|.....-.|..<..| J llll lddd drrr rrrr rrr*
|.FGHIJ.|.....|
|...|...|.....|
--.------|.....|
|..----------+--
|......@.^^^^.|
---------------
```

The level is now complete.

``` ----
|..|  ---------
|..---->|.....|
|.......|.....|
|..-....|.....|
|....I-.|..<..|
|.......|.....|
|...|...|.....|
--.------|.....|
|..----------+--
|..........@..|
---------------
```

## Next level

### UnNetHack

In UnNetHack, the stairs up leads to the final level of Sokoban:

### GruntHack

In GruntHack, the stairs up leads to the third level of Sokoban: