Copyright (c) James A. Storer

Stacking Cups Problem 1

Generalized rectilinear movement is computed.
One move is pushing a single piece with one finger,
where that piece may push or drag other pieces with it.
A second finger may NOT be used to aid movement,
prevent a piece from being dragged to far, etc.

######################################################################
Generalized Rectilinear Steps: 31
######################################################################

#0:
                3 3 3 3 3 3 3
                3   A   A   3
  2 2 2 2 2     3 B A   A B 3
  2 1 1 1 2       B A A A B  
C 2 1   1 2 C     B B B B B  
C   1   1   C                
C C C C C C C                

#1. Move 2:
2 2 2 2 2       3 3 3 3 3 3 3
2       2       3   A   A   3
2       2       3 B A   A B 3
    1 1 1         B A A A B  
C   1   1   C     B B B B B  
C   1   1   C                
C C C C C C C                

#2. Move 3:
2 2 2 2 2 3 3 3 3 3 3 3      
2       2 3           3      
2       2 3           3      
      1 1 1         A   A    
  C   1   1   C   B A   A B  
  C   1   1   C   B A A A B  
  C C C C C C C   B B B B B  


#3. Move 1:
2 2 2 2 2 3 3 3 3 3 3 3      
2       2 3     1 1 1 3      
2       2 3     1   1 3      
                1   1 A   A  
      C           C B A   A B
      C           C B A A A B
      C C C C C C C B B B B B

#4. Move C:
2 2 2 2 2 3 3 3 3 3 3 3      
2 C     2 3   C 1 1 1 3      
2 C     2 3   C 1   1 3      
  C C C C C C C 1   1 A   A  
                    B A   A B
                    B A A A B
                    B B B B B

#5. Move 3:
2 2 2 2 2   3 3 3 3 3 3 3    
2 C     2   3 C 1 1 1   3    
2 C     2   3 C 1   1   3    
  C C C C C C C 1   1 A   A  
                    B A   A B
                    B A A A B
                    B B B B B

#6. Move A:
2 2 2 2 2   3 3 3 3 3 3 3    
2 C     2   3 C 1 1 1 A 3 A  
2 C     2   3 C 1   1 A 3 A  
  C C C C C C C 1   1 A A A  
                    B       B
                    B       B
                    B B B B B

#7. Move B:
2 2 2 2 2   3 3 3 3 3 3 3    
2 C     2   3 C 1 1 1 A 3 A  
2 C     2   3 C 1   1 A 3 A  
  C C C C C C C 1   1 A A A  
B       B                    
B       B                    
B B B B B                    

#8. Move A:
2 2 2 2 2   3 3 3 3 3 3 3    
2 C     2   3 C 1 1 1   3    
2 C     2   3 C 1   1   3    
  C C C C C C C 1   1        
B       B A   A              
B       B A   A              
B B B B B A A A              

#9. Move 2:
      2 2 2 2 2 3 3 3 3 3 3 3
      2 C     2 3   C 1 1 1 3
      2 C     2 3   C 1   1 3
        C C C C C C C 1   1  
B       B A   A              
B       B A   A              
B B B B B A A A              

#10. Move 1:
      2 2 2 2 2 3 3 3 3 3 3 3
      2 C     2 3   C       3
      2 C     2 3   C       3
        C C C C C C C        
B       B A   A         1 1 1
B       B A   A         1   1
B B B B B A A A         1   1

#11. Move C:
      2 2 2 2 2 3 3 3 3 3 3 3
      2   C   2 3     C     3
      2   C   2 3     C     3
          C C C C C C C      
B       B A   A         1 1 1
B       B A   A         1   1
B B B B B A A A         1   1

#12. Move B:
      2 2 2 2 2 3 3 3 3 3 3 3
B     2 B C   2 3     C     3
B     2 B C   2 3     C     3
B B B B B C C C C C C C      
          A   A         1 1 1
          A   A         1   1
          A A A         1   1

#13. Move A:
      2 2 2 2 2 3 3 3 3 3 3 3
B     2 B C   2 3     C     3
B     2 B C   2 3     C     3
B B B B B C C C C C C C      
  A   A                 1 1 1
  A   A                 1   1
  A A A                 1   1

#14. Move C:
      2 2 2 2 2 3 3 3 3 3 3 3
B     2 B     2 3           3
B     2 B     2 3           3
B B B B B                    
  A   A C           C   1 1 1
  A   A C           C   1   1
  A A A C C C C C C C   1   1

#15. Move 1:
      2 2 2 2 2 3 3 3 3 3 3 3
B     2 B     2 3     1 1 1 3
B     2 B     2 3     1   1 3
B B B B B             1   1  
  A   A C           C        
  A   A C           C        
  A A A C C C C C C C        

#16. Move A:
      2 2 2 2 2 3 3 3 3 3 3 3
B     2 B     2 3     1 1 1 3
B     2 B     2 3     1   1 3
B B B B B             1   1  
          A   A C           C
          A   A C           C
          A A A C C C C C C C

#17. Move 2:
              2 3 3 3 3 3 3 3
              2 3     1 1 1 3
              2 3     1   1 3
    2 2 2 2 2         1   1  
B   2   B A 2 A C           C
B   2   B A 2 A C           C
B B B B B A A A C C C C C C C

#18. Move A:
  2 2 2 2 2     3 3 3 3 3 3 3
  2     A 2 A   3     1 1 1 3
  2     A 2 A   3     1   1 3
        A A A         1   1  
B       B       C           C
B       B       C           C
B B B B B       C C C C C C C

#19. Move B:
  2 2 2 2 2     3 3 3 3 3 3 3
  2     A 2 A   3     1 1 1 3
  2     A 2 A   3     1   1 3
        A A A         1   1  
      B       B C           C
      B       B C           C
      B B B B B C C C C C C C

#20. Move A:
  2 2 2 2 2     3 3 3 3 3 3 3
  2       2     3     1 1 1 3
  2       2     3     1   1 3
  A   A               1   1  
B A   A B       C           C
B A A A B       C           C
B B B B B       C C C C C C C

#21. Move 2:
    2 2 2 2 2   3 3 3 3 3 3 3
    2       2   3     1 1 1 3
    2       2   3     1   1 3
  A   A               1   1  
B A   A B       C           C
B A A A B       C           C
B B B B B       C C C C C C C

#22. Move B:
    2 2 2 2 2   3 3 3 3 3 3 3
  A 2 A     2   3     1 1 1 3
  A 2 A     2   3     1   1 3
  A A A               1   1  
      B       B C           C
      B       B C           C
      B B B B B C C C C C C C

#23. Move 2:
                3 3 3 3 3 3 3
                3     1 1 1 3
                3     1   1 3
  2 2 2 2 2           1   1  
A 2 A B   2   B C           C
A 2 A B   2   B C           C
A A A B B B B B C C C C C C C

#24. Move 3:
3 3 3 3 3 3 3                
3           3                
3           3                
  2 2 2 2 2       1 1 1      
A 2 A B   2   B C 1   1     C
A 2 A B   2   B C 1   1     C
A A A B B B B B C C C C C C C

#25. Move 1:
3 3 3 3 3 3 3                
3           3           1 1 1
3           3           1   1
  2 2 2 2 2             1   1
A 2 A B   2   B C           C
A 2 A B   2   B C           C
A A A B B B B B C C C C C C C

#26. Move 2:
          3 3 3 3 3 3 3      
          3 2 2 2 2 2 3 1 1 1
          3 2       2 3 1   1
            2       2   1   1
A   A B       B C           C
A   A B       B C           C
A A A B B B B B C C C C C C C

#27. Move A:
  A   A   3 3 3 3 3 3 3      
  A   A   3 2 2 2 2 2 3 1 1 1
  A A A   3 2       2 3 1   1
            2       2   1   1
      B       B C           C
      B       B C           C
      B B B B B C C C C C C C

#28. Move B:
  A   A   3 3 3 3 3 3 3      
B A   A B 3 2 2 2 2 2 3 1 1 1
B A A A B 3 2       2 3 1   1
B B B B B   2       2   1   1
                C           C
                C           C
                C C C C C C C

#29. Move C:
  A   A   3 3 3 3 3 3 3      
B A   A B 3 2 2 2 2 2 3 1 1 1
B A A A B 3 2       2 3 1   1
B B B B B   2       2   1   1
C           C                
C           C                
C C C C C C C                

#30. Move 1:
  A   A         3 3 3 3 3 3 3
B A   A B       3 2 2 2 2 2 3
B A A A B       3 2 1 1 1 2 3
B B B B B         2 1   1 2  
C           C       1   1    
C           C                
C C C C C C C                

#31. Move A:
                3 3 3 3 3 3 3
                3 2 2 2 2 2 3
    A   A       3 2 1 1 1 2 3
  B A   A B       2 1   1 2  
C B A A A B C       1   1    
C B B B B B C                
C C C C C C C