Copyright (c) James A. Storer

Stacking Cups Problem 2

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: 35
######################################################################

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#15. Move C:
  3 3 3 3 3 3 3 2 2 2 2 2    
  3 1 1 1     3 2       2    
  3 1   1     3 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      

#16. Move 2:
  3 3 3 3 3 3 3   2 2 2 2 2  
  3 1 1 1     3   2       2  
  3 1   1     3   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      

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

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

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

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

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

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

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

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

#25. Move B:
      3 3 3 3 3 3 3 2 2 2 2 2
B     3 B   1 1 1 3 2       2
B     3 B   1   1 3 2       2
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

#26. Move A:
      3 3 3 3 3 3 3 2 2 2 2 2
B     3 B   1 1 1 3 2       2
B     3 B   1   1 3 2       2
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

#27. Move C:
      3 3 3 3 3 3 3 2 2 2 2 2
B     3 B   1 1 1 3 2       2
B     3 B   1   1 3 2       2
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 C    

#28. Move 1:
      3 3 3 3 3 3 3 2 2 2 2 2
B     3 B         3 2 1 1 1 2
B     3 B         3 2 1   1 2
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

#29. Move C:
      3 3 3 3 3 3 3 2 2 2 2 2
B     3 B         3 2 1 1 1 2
B     3 B         3 2 1   1 2
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          

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

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

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

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

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

#35. Move 2:
                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