# Rubik's cube translation

Discussion in 'Python' started by castironpi@gmail.com, Mar 31, 2008.

1. ### Guest

How do I get a Rubik's cube translation out of this:

>>> a= numpy.array([[0,1,2],[3,4,5],[6,7,8]])
>>> a

array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> a[:,0],a[:,1],a[:,2] #no good

(array([0, 3, 6]), array([1, 4, 7]), array([2, 5, 8]))
>>>

I need [[ 6, 3, 0 ], [ 7, 4, 1 ], [ 8, 5, 2 ]].

>>> c= numpy.array([[ 6, 3, 0 ], [ 7, 4, 1 ], [ 8, 5, 2 ]])
>>> c

array([[6, 3, 0],
[7, 4, 1],
[8, 5, 2]])

, Mar 31, 2008

2. ### Tim LeslieGuest

On Mon, Mar 31, 2008 at 12:24 PM, <> wrote:
> How do I get a Rubik's cube translation out of this:
>
> >>> a= numpy.array([[0,1,2],[3,4,5],[6,7,8]])
> >>> a

> array([[0, 1, 2],
> [3, 4, 5],
> [6, 7, 8]])
> >>> a[:,0],a[:,1],a[:,2] #no good

> (array([0, 3, 6]), array([1, 4, 7]), array([2, 5, 8]))
> >>>

>
> I need [[ 6, 3, 0 ], [ 7, 4, 1 ], [ 8, 5, 2 ]].
>
> >>> c= numpy.array([[ 6, 3, 0 ], [ 7, 4, 1 ], [ 8, 5, 2 ]])
> >>> c

> array([[6, 3, 0],
> [7, 4, 1],
> [8, 5, 2]])

In [10]: numpy.rot90(a, 3)
Out[10]:
array([[6, 3, 0],
[7, 4, 1],
[8, 5, 2]])

Tim

Tim Leslie, Mar 31, 2008

3. ### Guest

On Mar 30, 9:48 pm, "Tim Leslie" <> wrote:
> On Mon, Mar 31, 2008 at 12:24 PM,  <> wrote:
> > How do I get a Rubik's cube translation out of this:

>
> >  >>> a= numpy.array([[0,1,2],[3,4,5],[6,7,8]])
> >  >>> a
> >  array([[0, 1, 2],
> >        [3, 4, 5],
> >        [6, 7, 8]])
> >  >>> a[:,0],a[:,1],a[:,2] #no good
> >  (array([0, 3, 6]), array([1, 4, 7]), array([2, 5, 8]))

>
> >  I need [[ 6, 3, 0 ], [ 7, 4, 1 ], [ 8, 5, 2 ]].

>
> >  >>> c= numpy.array([[ 6, 3, 0 ], [ 7, 4, 1 ], [ 8, 5, 2 ]])
> >  >>> c
> >  array([[6, 3, 0],
> >        [7, 4, 1],
> >        [8, 5, 2]])

>
> In [10]: numpy.rot90(a, 3)
> Out[10]:
> array([[6, 3, 0],
>        [7, 4, 1],
>        [8, 5, 2]])
>
> Tim

What if this is connected:

>>> D

array([[1, 2, 3],
[4, 5, 6],
[6, 7, 8]])
>>> E

array([[6, 7, 8],
[0, 0, 0],
[0, 0, 0]])

-->

>>> D

array([[1, 2, 3],
[4, 5, 6],
[6, 7, 8]])
>>> E

array([[6, 7, 8],
[0, 0, 0],
[0, 0, 0]])
>>> numpy.rot90( D )

array([[3, 6, 8],
[2, 5, 7],
[1, 4, 6]])
-->
>>> E

array([[1, 4, 6],
[0, 0, 0],
[0, 0, 0]])

?

, Mar 31, 2008
4. ### Tim RobertsGuest

wrote:
>
>What if this is connected:
>
>>>> D

>array([[1, 2, 3],
> [4, 5, 6],
> [6, 7, 8]])
>>>> E

>array([[6, 7, 8],
> [0, 0, 0],
> [0, 0, 0]])
>
>-->
>
>>>> D

>array([[1, 2, 3],
> [4, 5, 6],
> [6, 7, 8]])
>>>> E

>array([[6, 7, 8],
> [0, 0, 0],
> [0, 0, 0]])
>>>> numpy.rot90( D )

>array([[3, 6, 8],
> [2, 5, 7],
> [1, 4, 6]])
>-->
>>>> E

>array([[1, 4, 6],
> [0, 0, 0],
> [0, 0, 0]])
>
>?

If you don't want changes to D to affect E, then you need to disconnect
them when you create them. If you create D and E so that they contain
references to the same lists, then this kind of thing will happen.
--
Tim Roberts,
Providenza & Boekelheide, Inc.

Tim Roberts, Apr 1, 2008
5. ### Guest

On Apr 1, 1:00 am, Tim Roberts <> wrote:
> wrote:
>
> >What if this is connected:

>
> >>>> D

> >array([[1, 2, 3],
> >       [4, 5, 6],
> >       [6, 7, 8]])
> >>>> E

> >array([[6, 7, 8],
> >       [0, 0, 0],
> >       [0, 0, 0]])

>
> >-->

>
> >>>> D

> >array([[1, 2, 3],
> >       [4, 5, 6],
> >       [6, 7, 8]])
> >>>> E

> >array([[6, 7, 8],
> >       [0, 0, 0],
> >       [0, 0, 0]])
> >>>> numpy.rot90( D )

> >array([[3, 6, 8],
> >       [2, 5, 7],
> >       [1, 4, 6]])
> >-->
> >>>> E

> >array([[1, 4, 6],
> >       [0, 0, 0],
> >       [0, 0, 0]])

>
> >?

>
> If you don't want changes to D to affect E, then you need to disconnect
> them when you create them.  If you create D and E so that they contain
> references to the same lists, then this kind of thing will happen.

Basically, I need to change both D row 3 and E row 1 at the same time.

, Apr 1, 2008