import java.awt.*;
import java.awt.image.*;

public class CPuzzleElement extends Canvas
{
	private Merkmale....

	public CPuzzleElement(Image _img)
	{
		Initialisierung ...	
		makeImages();
		ArrayPointer auf null setzen (Speicher freigeben)...
	}

	protected void grab(Image img, int pix[]) // Image in Array umwandeln
	{
		PixelGrabber grabber = new PixelGrabber(img, 0, 0,m_width, m_height, pix, 0, m_width);
		try
		{
			grabber.grabPixels();
		}
		catch (InterruptedException e)
		{
			System.err.println("Error: "+e);
		}
	}

	protected Image doImage(int[] pix)  // Array in Image umwandeln
	{
		return createImage(new MemoryImageSource(m_width, m_height,pix, 0, m_width));
	}

	protected void makeImages()
	{
		grab(m_Element[0], m_OldImageArray);
		int k = 0;
		for(int i = 0; i < m_width; i++)
		{
			for(int j = m_height-1; j > -1; j--)
			{
				m_NewImageArray1[k] = m_OldImageArray[j*m_width +i];
				m_NewImageArray2[(m_height-j-1)*m_width + (m_width-i-1)] = m_OldImageArray[j*m_width +i];
				m_NewImageArray3[(m_width*m_height-1)-k++] = m_OldImageArray[j*m_width +i];
			}
		}
		m_Element[1] = doImage(m_NewImageArray1);
		m_Element[2] = doImage(m_NewImageArray2);
		m_Element[3] = doImage(m_NewImageArray3);
	}

	public Image getElement(int i)
	{
		return m_Element[i];
	}
}